

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. SDK API data Neptune (nama layanan`neptunedata`) menyediakan [ ExecuteOpenCypherQuery ](https://docs.aws.amazon.com/neptune/latest/data-api/API_ExecuteOpenCypherQuery.html) tindakan untuk mengirimkan kueri OpenCypher.

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

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


| Bahasa pemrograman | Referensi API neptunedata | 
| --- | --- | 
| C\+\+ | [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/) | 

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

Contoh berikut menunjukkan cara mengatur `neptunedata` klien, menjalankan kueri OpenCypher, dan mencetak hasilnya. Ganti {{YOUR\_NEPTUNE\_HOST}} dan {{YOUR\_NEPTUNE\_PORT}} dengan titik akhir dan port cluster Neptune DB Anda.

**Client-side batas waktu dan konfigurasi coba lagi**  
Batas waktu klien SDK mengontrol berapa lama * klien * menunggu respons. Itu tidak mengontrol berapa lama kueri berjalan di server. Jika waktu tunggu klien sebelum server selesai, kueri dapat terus berjalan di Neptune sementara klien tidak memiliki cara untuk mengambil hasilnya.  
Sebaiknya setel 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 pada cluster [ Neptune DB Anda](parameters.md#parameters-db-cluster-parameters-neptune_query_timeout). Ini memungkinkan Neptunus mengontrol kapan waktu kueri habis.  
Kami juga menyarankan untuk mengatur upaya coba ulang maksimum ke `1` (tidak ada percobaan ulang). Jika SDK mencoba lagi kueri yang masih berjalan di server, itu dapat menghasilkan operasi duplikat. Ini sangat penting untuk kueri mutasi, di mana percobaan ulang dapat menyebabkan penulisan duplikat yang tidak diinginkan.

------
#### [ Python ]

1. Ikuti petunjuk [ 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 [ penginst ](https://docs.aws.amazon.com//sdk-for-java/latest/developer-guide/setup.html) alan untuk mengatur AWS SDK untuk Java.

1. Gunakan kode berikut untuk mengatur`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 mengatur AWS SDK untuk 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`

------