View a markdown version of this page

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

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

È 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:

Gremlin AWS esempi SDK

Gli esempi seguenti mostrano come configurare un neptunedata client, eseguire una query Gremlin 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 gremlinExample.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}) ) # Use the untyped GraphSON v3 serializer for a cleaner JSON response. response = client.execute_gremlin_query( gremlinQuery='g.V().limit(1)', serializer='application/vnd.gremlin-v3.0+json;types=false' ) print(json.dumps(response['result'], indent=2))
  3. Esegui l'esempio: python gremlinExample.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 Gremlin 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.ExecuteGremlinQueryRequest; import software.amazon.awssdk.services.neptunedata.model.ExecuteGremlinQueryResponse; // 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(); // Use the untyped GraphSON v3 serializer for a cleaner JSON response. ExecuteGremlinQueryRequest request = ExecuteGremlinQueryRequest.builder() .gremlinQuery("g.V().limit(1)") .serializer("application/vnd.gremlin-v3.0+json;types=false") .build(); ExecuteGremlinQueryResponse response = client.executeGremlinQuery(request); System.out.println(response.result().toString());
JavaScript
  1. Segui le istruzioni di installazione per configurare l' AWS SDK per. JavaScript Installa il pacchetto client neptunedata:. npm install @aws-sdk/client-neptunedata

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

    import { NeptunedataClient, ExecuteGremlinQueryCommand } 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); // Use the untyped GraphSON v3 serializer for a cleaner JSON response. const input = { gremlinQuery: "g.V().limit(1)", serializer: "application/vnd.gremlin-v3.0+json;types=false" }; const command = new ExecuteGremlinQueryCommand(input); const response = await client.send(command); console.log(JSON.stringify(response, null, 2));
  3. Esegui l'esempio: node gremlinExample.js