

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

# Contoh: Memuat Data ke Instans DB Neptune
<a name="bulk-load-data"></a>

Contoh ini menunjukkan cara memuat data ke Amazon Neptune. Kecuali dinyatakan lain, Anda harus mengikuti langkah-langkah dari instans Amazon Elastic Compute Cloud (Amazon EC2) di Amazon Virtual Private Cloud (VPC) yang sama dengan instans DB Neptune Anda.

## Prasyarat untuk Contoh Pemuatan Data
<a name="bulk-load-tutorial-prereqs"></a>

Sebelum memulai, Anda harus memiliki hal-hal berikut:
+ Instans DB Neptune.

  Untuk informasi tentang meluncurkan instans DB Neptune, lihat [Membuat cluster Amazon Neptunus](get-started-create-cluster.md).
+ Bucket Amazon Simple Storage Service (Amazon S3) tempat file data akan diletakkan.

  Anda dapat menggunakan bucket yang ada. Jika Anda tidak memiliki bucket S3, lihat [Buat Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) di *[Panduan Memulai Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)*.
+ Grafik data untuk dimuat, dalam salah satu format yang didukung oleh loader Neptune:

  Jika Anda menggunakan Gremlin untuk menanyakan grafik Anda, Neptunus dapat memuat data dalam format comma-separated-values (`CSV`), seperti yang dijelaskan dalam. [Format data muat Gremlin](bulk-load-tutorial-format-gremlin.md)

  Jika Anda menggunakan OpenCypher untuk menanyakan grafik Anda, Neptunus juga dapat memuat data dalam format khusus OpenCypher, seperti yang dijelaskan dalam. `CSV` [Muat format untuk data OpenCypher](bulk-load-tutorial-format-opencypher.md)

  Jika Anda menggunakan SPARQL, Neptune dapat memuat data dalam sejumlah format RDF, seperti yang dijelaskan di [Format data beban RDF](bulk-load-tutorial-format-rdf.md).
+ IAM role untuk instans DB Neptune menganggap bahwa memiliki kebijakan IAM yang memungkinkan akses ke file data dalam bucket S3. Kebijakan harus memberikan izin Baca dan Daftar.

   Untuk informasi tentang membuat peran yang memiliki akses ke Amazon S3 dan kemudian mengaitkannya dengan klaster Neptune, lihat [Prasyarat: IAM role dan Akses Amazon S3](bulk-load-tutorial-IAM.md).
**catatan**  
API `Load` Neptune membutuhkan akses baca ke file data saja. Kebijakan IAM tidak perlu mengizinkan akses tulis atau akses ke seluruh bucket.
+ VPC Endpoint Amazon S3. Untuk informasi selengkapnya, lihat bagian [Membuat VPC Endpoint Amazon S3](#bulk-load-prereqs-s3).

### Membuat VPC Endpoint Amazon S3
<a name="bulk-load-prereqs-s3"></a>

Neptune loader membutuhkan VPC Endpoint untuk Amazon S3.

**Untuk menyiapkan akses untuk Amazon S3**

1. Masuk ke Konsol Manajemen AWS dan buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Pada panel navigasi kiri, pilih **Titik Akhir**.

1. Pilih **Buat Titik Akhir**.

1. Pilih **Nama Layanan** `com.amazonaws.region.s3`.
**catatan**  
Jika Wilayah di sini salah, pastikan bahwa Wilayah konsol sudah benar.

1. Pilih VPC yang berisi instans DB Neptune Anda.

1. Pilih kotak centang di samping tabel rute yang terkait dengan subnet yang terkait dengan klaster Anda. Jika Anda hanya memiliki satu tabel rute, Anda harus memilih kotak itu.

1. Pilih **Buat Titik Akhir**.

Untuk informasi selengkapnya tentang membuat titik akhir, lihat [VPC Endpoint](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html#create-vpc-endpoint) dalam *Panduan Pengguna Amazon VPC*. Untuk informasi tentang keterbatasan VPC Endpoint, lihat [VPC Endpoint untuk Amazon S3](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html).

**Untuk memuat data ke dalam instans DB Neptune**

1. Salin file data ke bucket Amazon S3. Bucket S3 harus berada di AWS Region yang sama dengan cluster yang memuat data.

   Anda dapat menggunakan AWS CLI perintah berikut untuk menyalin file ke ember.
**catatan**  
Perintah ini tidak perlu dijalankan dari instans Amazon EC2.

   ```
   aws s3 cp data-file-name s3://bucket-name/object-key-name
   ```
**catatan**  
Di Amazon S3, sebuah **nama kunci objek** adalah seluruh jalur file, termasuk nama file.  
*Contoh:* Dalam perintah `aws s3 cp datafile.txt s3://examplebucket/mydirectory/datafile.txt`, nama kunci objeknya adalah **`mydirectory/datafile.txt`**.

   Atau, Anda dapat menggunakan file Konsol Manajemen AWS untuk mengunggah file ke bucket S3. Buka konsol Amazon S3 di [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/), dan pilih ember. Di sudut kiri atas, pilih **Unggah** untuk mengunggah file.

1. Dari jendela baris perintah, masukkan yang berikut ini untuk menjalankan pemuat Neptunus, menggunakan nilai yang benar untuk titik akhir, jalur Amazon S3, format, dan peran IAM ARN.

   `format`Parameter dapat berupa salah satu dari nilai berikut: `csv` untuk Gremlin, `opencypher` untuk OpenCypher, atau`ntriples`,,, dan untuk RDF. `nquads` `turtle` `rdfxml` Untuk informasi tentang parameter lain, lihat [Perintah Loader Neptune](load-api-reference-load.md).

   Untuk informasi tentang menemukan nama host instans DB Neptune Anda, lihat bagian [Menghubungkan ke Titik Akhir Amazon Neptune.](feature-overview-endpoints.md).

   Parameter Wilayah harus sesuai dengan Wilayah klaster dan bucket S3.

Amazon Neptunus tersedia di Wilayah berikut: AWS 
   + US East (N. Virginia):   `us-east-1`
   + AS Timur (Ohio): `us-east-2`
   + US West (N. California):   `us-west-1`
   + US West (Oregon):   `us-west-2`
   + Canada (Central):   `ca-central-1`
   + Kanada Barat (Calgary): `ca-west-1`
   + South America (São Paulo):   `sa-east-1`
   + Eropa (Stockholm): `eu-north-1`
   + Eropa (Spanyol): `eu-south-2`
   + Eropa (Irlandia): `eu-west-1`
   + Eropa (London): `eu-west-2`
   + Eropa (Paris): `eu-west-3`
   + Eropa (Frankfurt): `eu-central-1`
   + Timur Tengah (Bahrain): `me-south-1`
   + Timur Tengah (UEA): `me-central-1`
   + Israel (Tel Aviv): `il-central-1`
   + Afrika (Cape Town): `af-south-1`
   + Asia Pasifik (Hong Kong): `ap-east-1`
   + Asia Pacific (Tokyo):   `ap-northeast-1`
   + Asia Pasifik (Seoul): `ap-northeast-2`
   + Asia Pasifik (Osaka): `ap-northeast-3`
   + Asia Pacific (Singapore):   `ap-southeast-1`
   + Asia Pacific (Sydney):   `ap-southeast-2`
   + Asia Pasifik (Jakarta): `ap-southeast-3`
   + Asia Pasifik (Melbourne): `ap-southeast-4`
   + Asia Pasifik (Malaysia): `ap-southeast-5`
   + Asia Pasifik (Mumbai): `ap-south-1`
   + Asia Pasifik (Hyderabad): `ap-south-2`
   + Tiongkok (Beijing): `cn-north-1`
   + Tiongkok (Ningxia): `cn-northwest-1`
   + AWS GovCloud (AS-Barat): `us-gov-west-1`
   + AWS GovCloud (AS-Timur): `us-gov-east-1`

------
#### [ AWS CLI ]

   ```
   aws neptunedata start-loader-job \
     --endpoint-url https://your-neptune-endpoint:port \
     --source "s3://bucket-name/object-key-name" \
     --format "format" \
     --iam-role-arn "arn:aws:iam::account-id:role/role-name" \
     --s3-bucket-region "region" \
     --no-fail-on-error \
     --parallelism "MEDIUM" \
     --no-update-single-cardinality-properties \
     --queue-request \
     --dependencies "load_A_id" "load_B_id"
   ```

   Untuk informasi selengkapnya, lihat [start-loader-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/start-loader-job.html)di Referensi AWS CLI Perintah.

------
#### [ SDK ]

   ```
   import boto3
   from botocore.config import Config
   
   client = boto3.client(
       'neptunedata',
       endpoint_url='https://your-neptune-endpoint:port',
       config=Config(read_timeout=None, retries={'total_max_attempts': 1})
   )
   
   response = client.start_loader_job(
       source='s3://bucket-name/object-key-name',
       format='format',
       iamRoleArn='arn:aws:iam::account-id:role/role-name',
       s3BucketRegion='region',
       failOnError=False,
       parallelism='MEDIUM',
       updateSingleCardinalityProperties=False,
       queueRequest=True,
       dependencies=['load_A_id', 'load_B_id']
   )
   
   print(response)
   ```

------
#### [ awscurl ]

   ```
   awscurl https://your-neptune-endpoint:port/loader \
     --region us-east-1 \
     --service neptune-db \
     -X POST \
     -H 'Content-Type: application/json' \
     -d '{
           "source" : "s3://bucket-name/object-key-name",
           "format" : "format",
           "iamRoleArn" : "arn:aws:iam::account-id:role/role-name",
           "region" : "region",
           "failOnError" : "FALSE",
           "parallelism" : "MEDIUM",
           "updateSingleCardinalityProperties" : "FALSE",
           "queueRequest" : "TRUE",
           "dependencies" : ["load_A_id", "load_B_id"]
         }'
   ```

**catatan**  
Contoh ini mengasumsikan bahwa AWS kredenal Anda dikonfigurasi di lingkungan Anda. Ganti *us-east-1* dengan Wilayah cluster Neptunus Anda.

------
#### [ curl ]

   ```
   curl -X POST https://your-neptune-endpoint:port/loader \
     -H 'Content-Type: application/json' \
     -d '{
           "source" : "s3://bucket-name/object-key-name",
           "format" : "format",
           "iamRoleArn" : "arn:aws:iam::account-id:role/role-name",
           "region" : "region",
           "failOnError" : "FALSE",
           "parallelism" : "MEDIUM",
           "updateSingleCardinalityProperties" : "FALSE",
           "queueRequest" : "TRUE",
           "dependencies" : ["load_A_id", "load_B_id"]
         }'
   ```

------

   Untuk informasi tentang membuat dan mengaitkan IAM role dengan klaster Neptune, lihat [Prasyarat: IAM role dan Akses Amazon S3](bulk-load-tutorial-IAM.md).
**catatan**  
Lihat [Parameter Permintaan Loader Neptune](load-api-reference-load.md#load-api-reference-load-parameters)) untuk informasi detail tentang parameter permintaan pemuatan. Singkatnya:  
Parameter `source` menerima URI Amazon S3 yang menunjuk ke satu file atau folder. Jika Anda menentukan folder, Neptune memuat setiap file data dalam folder.  
Folder dapat berisi beberapa file vertex dan beberapa file edge.  
URI dapat berupa format berikut.  
`s3://bucket_name/object-key-name`
`https://s3.amazonaws.com/bucket_name/object-key-name`
`https://s3-us-east-1.amazonaws.com/bucket_name/object-key-name`
Parameter `format` dapat berupa salah satu dari hal berikut:  
Format CSV Gremlin (`csv`) untuk grafik properti Gremlin
OpenCypher CSV format (`opencypher`) untuk grafik properti OpenCypher
Format N -Triple (`ntriples`) untuk RDF/SPARQL
Format N-Quad (`nquads`) untuk RDF/SPARQL
Format RDF/XML (`rdfxml`) untuk RDF/SPARQL
Format Turtle (`turtle`) untuk RDF/SPARQL
Parameter `parallelism` opsional memungkinkan Anda membatasi jumlah utas yang digunakan dalam proses pemuatan massal. Anda dapat mengaturnya ke `LOW`, `MEDIUM`, `HIGH`, atau `OVERSUBSCRIBE`.  
Saat `updateSingleCardinalityProperties` diatur ke `"FALSE"`, loader mengembalikan kesalahan jika lebih dari satu nilai disediakan dalam file sumber yang dimuat untuk edge atau properti single-cardinality vertex.  
Mengatur `queueRequest` ke `"TRUE"` menyebabkan permintaan pemuatan ditempatkan dalam antrean jika sudah ada pekerjaan pemuatan yang berjalan.  
Parameter `dependencies` membuat eksekusi permintaan pemuatan dapat berubah pada penyelesaian satu pekerjaa pemuatan atau lebih yang berhasil yang telah ditempatkan dalam antrean.

1. Neptune loader mengembalikan pekerjaan `id` yang memungkinkan Anda untuk memeriksa status atau membatalkan proses pemuatan; misalnya:

   ```
   {
       "status" : "200 OK",
       "payload" : {
           "loadId" : "ef478d76-d9da-4d94-8ff1-08d9d4863aa5"
       }
   }
   ```

1. Masukkan hal berikut ini untuk mendapatkan status pemuatan dengan `loadId` dari **Langkah 3**:

------
#### [ AWS CLI ]

   ```
   aws neptunedata get-loader-job-status \
     --endpoint-url https://your-neptune-endpoint:port \
     --load-id ef478d76-d9da-4d94-8ff1-08d9d4863aa5
   ```

   Untuk informasi selengkapnya, lihat [get-loader-job-status](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/get-loader-job-status.html)di Referensi AWS CLI Perintah.

------
#### [ SDK ]

   ```
   import boto3
   from botocore.config import Config
   
   client = boto3.client(
       'neptunedata',
       endpoint_url='https://your-neptune-endpoint:port',
       config=Config(read_timeout=None, retries={'total_max_attempts': 1})
   )
   
   response = client.get_loader_job_status(
       loadId='ef478d76-d9da-4d94-8ff1-08d9d4863aa5'
   )
   
   print(response)
   ```

------
#### [ awscurl ]

   ```
   awscurl 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5' \
     --region us-east-1 \
     --service neptune-db
   ```

**catatan**  
Contoh ini mengasumsikan bahwa AWS kredenal Anda dikonfigurasi di lingkungan Anda. Ganti *us-east-1* dengan Wilayah cluster Neptunus Anda.

------
#### [ curl ]

   ```
   curl -G 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'
   ```

------

   Jika status pemuatan mencantumkan kesalahan, Anda dapat meminta status yang lebih rinci dan daftar kesalahan. Untuk informasi selengkapnya dan contoh tambahan, lihat [Neptunus Loader API Get-Status](load-api-reference-status.md).

1. (Opsional) Membatalkan pekerjaan `Load`.

   Masukkan hal berikut untuk `Delete` pekerjaan loader dengan pekerjaan `id` dari **Langkah 3**:

------
#### [ AWS CLI ]

   ```
   aws neptunedata cancel-loader-job \
     --endpoint-url https://your-neptune-endpoint:port \
     --load-id ef478d76-d9da-4d94-8ff1-08d9d4863aa5
   ```

   Untuk informasi selengkapnya, lihat [cancel-loader-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/cancel-loader-job.html)di Referensi AWS CLI Perintah.

------
#### [ SDK ]

   ```
   import boto3
   from botocore.config import Config
   
   client = boto3.client(
       'neptunedata',
       endpoint_url='https://your-neptune-endpoint:port',
       config=Config(read_timeout=None, retries={'total_max_attempts': 1})
   )
   
   response = client.cancel_loader_job(
       loadId='ef478d76-d9da-4d94-8ff1-08d9d4863aa5'
   )
   
   print(response)
   ```

------
#### [ awscurl ]

   ```
   awscurl 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5' \
     --region us-east-1 \
     --service neptune-db \
     -X DELETE
   ```

**catatan**  
Contoh ini mengasumsikan bahwa AWS kredenal Anda dikonfigurasi di lingkungan Anda. Ganti *us-east-1* dengan Wilayah cluster Neptunus Anda.

------
#### [ curl ]

   ```
   curl -X DELETE 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'
   ```

------

   Perintah `DELETE` mengembalikan kode HTTP `200 OK` setelah pembatalan berhasil.

   Data dari file dari pekerjaan pemuatan yang telah selesai melakukan pemuatan tidak di-rollback. Data tetap ada dalam instans DB Neptune.