View a markdown version of this page

Utilizzo di AWS SDK per eseguire query OpenCypher - 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 di AWS SDK per eseguire query OpenCypher

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

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

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

openCypher AWS esempi SDK

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

Client-side timeout e riprova la configurazione

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

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

Consigliamo inoltre di impostare il numero massimo di tentativi di ripetizione su 1 (nessun tentativo). Se l'SDK riprova una query ancora in esecuzione sul server, possono verificarsi operazioni 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 codice seguente:

    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 per Java.

  2. Usa il codice seguente per configurare unNeptunedataClient, 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 codice seguente:

    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