

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 OpenCypher
<a name="access-graph-opencypher-sdk"></a>

Dengan AWS SDK, Anda dapat menjalankan kueri OpenCypher terhadap grafik Neptunus Anda menggunakan bahasa pemrograman pilihan Anda. Neptunus data API SDK (`neptunedata`nama layanan) menyediakan tindakan untuk mengirimkan kueri [ExecuteOpenCypherQuery](https://docs.aws.amazon.com/neptune/latest/data-api/API_ExecuteOpenCypherQuery.html)OpenCypher.

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:


| Bahasa pemrograman | referensi API neptunedata | 
| --- | --- | 
| C\$1\$1 | [https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-neptunedata/html/annotated.html](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-neptunedata/html/annotated.html) | 
| Go | [https://docs.aws.amazon.com/sdk-for-go/api/service/neptunedata/](https://docs.aws.amazon.com/sdk-for-go/api/service/neptunedata/) | 
| Java | [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/neptunedata/package-summary.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/neptunedata/package-summary.html) | 
| JavaScript | [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-neptunedata/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-neptunedata/) | 
| Kotlin | [https://sdk.amazonaws.com/kotlin/api/latest/neptunedata/index.html](https://sdk.amazonaws.com/kotlin/api/latest/neptunedata/index.html) | 
| .NET | [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Neptunedata/NNeptunedata.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Neptunedata/NNeptunedata.html) | 
| PHP | [https://docs.aws.amazon.com/aws-sdk-php/v3/api/namespace-Aws.Neptunedata.html](https://docs.aws.amazon.com/aws-sdk-php/v3/api/namespace-Aws.Neptunedata.html) | 
| Python | [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/neptunedata.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/neptunedata.html) | 
| Ruby | [https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Neptunedata.html](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Neptunedata.html) | 
| Karat | [https://crates.io/crates/aws-sdk-neptunedata](https://crates.io/crates/aws-sdk-neptunedata) | 
| CLI | [https://docs.aws.amazon.com/cli/latest/reference/neptunedata/](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/) | 

## Contoh SDK OpenCypher AWS
<a name="access-graph-opencypher-sdk-examples"></a>

Contoh berikut menunjukkan cara menyiapkan `neptunedata` klien, menjalankan kueri OpenCypher, dan mencetak hasilnya. Ganti *YOUR\$1NEPTUNE\$1HOST* dan *YOUR\$1NEPTUNE\$1PORT* 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\$1query\$1timeout sisi server di cluster DB [Neptunus](parameters.md#parameters-db-cluster-parameters-neptune_query_timeout) 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](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) untuk menginstal Boto3.

1. Buat file bernama `openCypherExample.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})
   )
   
   response = client.execute_open_cypher_query(
       openCypherQuery='MATCH (n) RETURN n LIMIT 1'
   )
   
   print(json.dumps(response['results'], indent=2))
   ```

1. Jalankan contoh: `python openCypherExample.py`

------
#### [ Java ]

1. Ikuti [petunjuk penginstalan](https://docs.aws.amazon.com//sdk-for-java/latest/developer-guide/setup.html) untuk menyiapkan AWS SDK for Java.

1. Gunakan kode berikut untuk menyiapkan`NeptunedataClient`, menjalankan kueri OpenCypher, 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.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. Ikuti [petunjuk penginstalan](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/getting-started-nodejs.html) untuk menyiapkan AWS SDK. JavaScript Instal paket klien neptunedata:. `npm install @aws-sdk/client-neptunedata`

1. Buat file bernama `openCypherExample.js` dan tempel kode berikut:

   ```
   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));
   ```

1. Jalankan contoh: `node openCypherExample.js`

------