Menggunakan AWS SDK untuk menjalankan kueri Gremlin - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan AWS SDK untuk menjalankan kueri Gremlin

Dengan AWS SDK, Anda dapat menjalankan kueri Gremlin terhadap grafik Neptunus Anda menggunakan bahasa pemrograman pilihan Anda. Neptunus data API SDK (neptunedatanama layanan) menyediakan tindakan untuk mengirimkan kueri ExecuteGremlinQueryGremlin.

Anda harus menjalankan contoh ini dari instans Amazon EC2 di virtual private cloud (VPC) yang sama dengan cluster DB Neptunus Anda, atau dari lokasi yang memiliki konektivitas jaringan ke titik akhir cluster Anda.

Tautan langsung ke dokumentasi referensi API untuk neptunedata layanan di setiap bahasa SDK dapat ditemukan di bawah ini:

Contoh SDK Gremlin AWS

Contoh berikut menunjukkan cara menyiapkan neptunedata klien, menjalankan kueri Gremlin, dan mencetak hasilnya. Ganti YOUR_NEPTUNE_HOST dan YOUR_NEPTUNE_PORT dengan titik akhir dan port cluster DB Neptunus Anda.

Konfigurasi batas waktu sisi klien dan coba lagi

Batas waktu klien SDK mengontrol berapa lama klien menunggu respons. Itu tidak mengontrol berapa lama kueri berjalan di server. Jika waktu klien habis sebelum server selesai, kueri dapat terus berjalan di Neptunus sementara klien tidak memiliki cara untuk mengambil hasilnya.

Sebaiknya atur batas waktu baca sisi klien ke 0 (tanpa batas waktu) atau ke nilai yang setidaknya beberapa detik lebih lama dari pengaturan neptune_query_timeout sisi server di cluster DB Neptunus Anda. Ini memungkinkan Neptunus mengontrol saat waktu kueri habis.

Kami juga merekomendasikan pengaturan upaya coba ulang maksimum ke 1 (tidak ada percobaan ulang). Jika SDK mencoba ulang kueri yang masih berjalan di server, itu dapat menghasilkan operasi duplikat. Ini sangat penting untuk kueri mutasi, di mana percobaan lagi dapat menyebabkan duplikat penulisan yang tidak diinginkan.

Python
  1. 4. Ikuti instruksi instalasi untuk menginstal Boto3.

  2. Buat file bernama gremlinExample.py dan tempel kode berikut:

    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. Jalankan contoh: python gremlinExample.py

Java
  1. Ikuti petunjuk penginstalan untuk menyiapkan AWS SDK for Java.

  2. Gunakan kode berikut untuk menyiapkanNeptunedataClient, menjalankan kueri Gremlin, dan mencetak hasilnya:

    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. Ikuti petunjuk penginstalan untuk menyiapkan AWS SDK. JavaScript Instal paket klien neptunedata:. npm install @aws-sdk/client-neptunedata

  2. Buat file bernama gremlinExample.js dan tempel kode berikut:

    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. Jalankan contoh: node gremlinExample.js