Utilizzo dell'SDK per eseguire query OpenCypher AWS - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo dell'SDK per eseguire query OpenCypher AWS

Con l' AWS SDK, puoi eseguire query OpenCypher sul tuo grafico di Neptune utilizzando un linguaggio di programmazione a tua scelta. L'SDK Neptune data API (neptunedatanome del servizio) fornisce l'azione per ExecuteOpenCypherQueryl'invio di query OpenCypher.

È necessario eseguire questi esempi da un'istanza Amazon EC2 nello stesso cloud privato virtuale (VPC) del cluster Neptune DB o da una posizione che dispone di connettività di rete all'endpoint del cluster.

Di seguito sono disponibili collegamenti diretti alla documentazione di riferimento dell'API per il neptunedata servizio in ogni lingua SDK:

Esempi di OpenCypher AWS SDK

Gli esempi seguenti mostrano come configurare un neptunedata client, eseguire una query OpenCypher e stampare i risultati. Sostituisci YOUR_NEPTUNE_HOST e YOUR_NEPTUNE_PORT con l'endpoint e la porta del tuo cluster Neptune DB.

Timeout lato client e nuovo tentativo di configurazione

Il timeout del client SDK controlla per quanto tempo il client attende una risposta. Non controlla per quanto tempo viene eseguita la query sul server. Se il client scade prima del termine del server, la query può continuare a essere eseguita su Neptune mentre il client non ha modo di recuperare i risultati.

Ti consigliamo di impostare il timeout di lettura lato client su 0 (nessun timeout) o su un valore che sia almeno qualche secondo più lungo rispetto all'impostazione neptune_query_timeout lato server sul tuo cluster Neptune DB. Ciò consente a Neptune di controllare il timeout delle query.

Consigliamo inoltre di impostare il numero massimo di tentativi su 1 (nessun tentativo). Se l'SDK riprova a eseguire una query ancora in esecuzione sul server, le operazioni possono essere duplicate. Ciò è particolarmente importante per le query di mutazione, in cui un nuovo tentativo potrebbe causare scritture duplicate non intenzionali.

Python
  1. Segui le istruzioni di installazione per installare Boto3.

  2. Crea un file denominato openCypherExample.py e incolla il seguente codice:

    import boto3 import json from botocore.config import Config # Disable the client-side read timeout and retries so that # Neptune's server-side neptune_query_timeout controls query duration. client = boto3.client( 'neptunedata', endpoint_url=f'https://YOUR_NEPTUNE_HOST:YOUR_NEPTUNE_PORT', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.execute_open_cypher_query( openCypherQuery='MATCH (n) RETURN n LIMIT 1' ) print(json.dumps(response['results'], indent=2))
  3. Esegui l'esempio: python openCypherExample.py

Java
  1. Segui le istruzioni di installazione per configurare l' AWS SDK for Java.

  2. Usa il codice seguente per configurare unaNeptunedataClient, eseguire una query OpenCypher e stampare il risultato:

    import java.net.URI; import java.time.Duration; import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; import software.amazon.awssdk.core.retry.RetryPolicy; import software.amazon.awssdk.services.neptunedata.NeptunedataClient; import software.amazon.awssdk.services.neptunedata.model.ExecuteOpenCypherQueryRequest; import software.amazon.awssdk.services.neptunedata.model.ExecuteOpenCypherQueryResponse; // Disable the client-side timeout and retries so that // Neptune's server-side neptune_query_timeout controls query duration. NeptunedataClient client = NeptunedataClient.builder() .endpointOverride(URI.create("https://YOUR_NEPTUNE_HOST:YOUR_NEPTUNE_PORT")) .overrideConfiguration(ClientOverrideConfiguration.builder() .apiCallTimeout(Duration.ZERO) .retryPolicy(RetryPolicy.none()) .build()) .build(); ExecuteOpenCypherQueryRequest request = ExecuteOpenCypherQueryRequest.builder() .openCypherQuery("MATCH (n) RETURN n LIMIT 1") .build(); ExecuteOpenCypherQueryResponse response = client.executeOpenCypherQuery(request); System.out.println(response.results().toString());
JavaScript
  1. Segui le istruzioni di installazione per configurare l'SDK per. AWS JavaScript Installa il pacchetto client neptunedata:. npm install @aws-sdk/client-neptunedata

  2. Crea un file denominato openCypherExample.js e incolla il seguente codice:

    import { NeptunedataClient, ExecuteOpenCypherQueryCommand } from "@aws-sdk/client-neptunedata"; import { NodeHttpHandler } from "@smithy/node-http-handler"; const config = { endpoint: "https://YOUR_NEPTUNE_HOST:YOUR_NEPTUNE_PORT", // Disable the client-side request timeout so that // Neptune's server-side neptune_query_timeout controls query duration. requestHandler: new NodeHttpHandler({ requestTimeout: 0 }), maxAttempts: 1 }; const client = new NeptunedataClient(config); const input = { openCypherQuery: "MATCH (n) RETURN n LIMIT 1" }; const command = new ExecuteOpenCypherQueryCommand(input); const response = await client.send(command); console.log(JSON.stringify(response, null, 2));
  3. Esegui l'esempio: node openCypherExample.js