

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

# Memuat data ke Amazon Neptune
<a name="load-data"></a>

Ada beberapa cara berbeda untuk memuat data grafik ke Amazon Neptune:
+ Jika Anda hanya perlu memuat jumlah data yang relatif kecil, Anda dapat menggunakan kueri seperti `INSERT` pernyataan SPARQL atau Gremlin `mergeV` dan `mergeE` langkah-langkah. openCypher juga menyertakan dan klausa. `CREATE` `MERGE`
+ Anda dapat mengambil keuntungan dari [Bulk Loader Neptune](bulk-load.md) untuk menyerap sejumlah besar data yang berada di file eksternal. Perintah loader massal lebih cepat dan memiliki overhead kurang dari perintah bahasa kueri. Hal ini dioptimalkan untuk set data besar, dan mendukung baik data RDF (Resource Description Framework) maupun data Gremlin.
+ Anda dapat menggunakan AWS Database Migration Service (AWS DMS) untuk mengimpor data dari penyimpanan data lain (lihat[Menggunakan AWS Database Migration Service untuk memuat data ke Amazon Neptunus dari penyimpanan data yang berbeda](dms-neptune.md), dan [Panduan AWS Database Migration Service Pengguna](https://docs.aws.amazon.com/dms/latest/userguide/)).
+ Untuk kumpulan data yang lebih kecil dalam satu atau beberapa file Amazon S3, Anda dapat menggunakan fungsi pemuatan berbasis kueri untuk membaca dan memproses data secara langsung dalam kueri Anda. Lihat [Memuat data ke Amazon Neptunus menggunakan kueri](load-data-via-query.md) untuk detail selengkapnya.

**Topics**
+ [Menggunakan pemuat massal Amazon Neptunus untuk menelan data](bulk-load.md)
+ [Menggunakan AWS Database Migration Service untuk memuat data ke Amazon Neptunus dari penyimpanan data yang berbeda](dms-neptune.md)
+ [Memuat data ke Amazon Neptunus menggunakan kueri](load-data-via-query.md)

# Menggunakan pemuat massal Amazon Neptunus untuk menelan data
<a name="bulk-load"></a>

Amazon Neptunus menyediakan `Loader` perintah untuk memuat data dari file eksternal langsung ke cluster DB Neptunus. Anda dapat menggunakan perintah ini alih-alih mengeksekusi sejumlah besar pernyataan `INSERT`, langkah `addV` dan `addE`, atau panggilan API lainnya.

Perintah **Loader** Neptune lebih cepat, memiliki lebih sedikit overhead, dioptimalkan untuk dataset besar, dan mendukung data Gremlin dan data RDF (Resource Description Framework) yang digunakan oleh SPARQL.

Diagram berikut ini menunjukkan gambaran umum proses pemuatan.

![\[Diagram menunjukkan langkah-langkah dasar yang terlibat dalam memuat data ke Neptune.\]](http://docs.aws.amazon.com/id_id/neptune/latest/userguide/images/load-diagram.png)


Berikut adalah langkah-langkah proses pemuatan:

1. Salin file data ke bucket Amazon Simple Storage Service (Amazon S3).

1. Buat IAM role dengan akses Baca dan Daftar ke bucket.

1. Buat VPC Endpoint Amazon S3.

1. Mulai loader Neptune dengan mengirimkan permintaan melalui HTTP ke instans DB Neptune.

1. Instans DB Neptune mengasumsikan IAM role untuk memuat data dari bucket.

**catatan**  
Anda dapat memuat data terenkripsi dari Amazon S3 jika dienkripsi menggunakan Amazon `SSE-S3` S3 atau `SSE-KMS` mode, asalkan peran yang Anda gunakan untuk pemuatan massal memiliki akses ke objek Amazon S3, dan juga dalam kasus SSE-KMS, ke. `kms:decrypt` Neptunus kemudian dapat meniru kredensyal Anda dan mengeluarkan panggilan atas nama Anda. `s3:getObject`  
Namun, Neptune saat ini tidak mendukung pemuatan data yang dienkripsi menggunakan Mode `SSE-C`.

Bagian berikut memberikan petunjuk untuk mempersiapkan dan memuat data ke Neptune.

**Topics**
+ [Prasyarat: IAM role dan Akses Amazon S3](bulk-load-tutorial-IAM.md)
+ [Muat Format Data](bulk-load-tutorial-format.md)
+ [Contoh: Memuat Data ke Instans DB Neptune](bulk-load-data.md)
+ [Mengoptimalkan pemuatan massal Amazon Neptune](bulk-load-optimize.md)
+ [Referensi Loader Neptune](load-api-reference.md)

# Prasyarat: IAM role dan Akses Amazon S3
<a name="bulk-load-tutorial-IAM"></a>

Memuat data dari bucket Amazon Simple Storage Service (Amazon S3) memerlukan AWS Identity and Access Management peran (IAM) yang memiliki akses ke bucket. Amazon Neptune mengasumsikan peran ini untuk memuat data.

**catatan**  
Anda dapat memuat data terenkripsi dari Amazon S3 jika dienkripsi menggunakan Mode `SSE-S3` Amazon S3. Dalam hal ini, Neptune dapat meniru kredensial Anda dan mengeluarkan panggilan `s3:getObject` atas nama Anda.  
Anda juga dapat memuat data terenkripsi dari Amazon S3 yang dienkripsi menggunakan `SSE-KMS`, selama IAM role Anda mencakup izin yang diperlukan untuk mengakses AWS KMS. Tanpa AWS KMS izin yang tepat, operasi beban massal gagal dan mengembalikan `LOAD_FAILED` respons.  
Neptune saat ini tidak mendukung pemuatan data yang dienkripsi Amazon S3 menggunakan Mode `SSE-C`.

Bagian berikut menunjukkan cara menggunakan kebijakan IAM terkelola untuk membuat peran IAM untuk mengakses sumber daya Amazon S3, lalu melampirkan peran tersebut ke cluster Neptunus Anda.

**Topics**
+ [Membuat peran IAM untuk memungkinkan Amazon Neptunus mengakses sumber daya Amazon S3](bulk-load-tutorial-IAM-CreateRole.md)
+ [Menambahkan IAM role ke Klaster Amazon Neptune](bulk-load-tutorial-IAM-add-role-cluster.md)
+ [Membuat VPC Endpoint Amazon S3](bulk-load-tutorial-vpc.md)
+ [Merantai peran IAM di Amazon Neptunus](bulk-load-tutorial-chain-roles.md)

**catatan**  
Petunjuk ini mengharuskan Anda memiliki akses ke konsol IAM dan izin untuk mengelola peran dan kebijakan IAM. Untuk informasi [selengkapnya, lihat Izin untuk Bekerja di Konsol AWS Manajemen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions-required.html#Credentials-Permissions-overview-console) di *Panduan Pengguna IAM*.  
Konsol Amazon Neptune mengharuskan pengguna untuk memiliki izin IAM berikut untuk melampirkan peran ke klaster Neptune:  

```
iam:GetAccountSummary on resource: *
iam:ListAccountAliases on resource: *
iam:PassRole on resource: * with iam:PassedToService restricted to rds.amazonaws.com
```

# Membuat peran IAM untuk memungkinkan Amazon Neptunus mengakses sumber daya Amazon S3
<a name="bulk-load-tutorial-IAM-CreateRole"></a>

Gunakan kebijakan IAM `AmazonS3ReadOnlyAccess` terkelola untuk membuat peran IAM baru yang memungkinkan Amazon Neptunus mengakses sumber daya Amazon S3.

**Untuk membuat peran IAM baru yang memungkinkan akses Neptunus ke Amazon S3**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di panel navigasi, pilih **Peran**.

1. Pilih **Buat peran**.

1. Pada **layanan AWS **, pilih **S3**.

1. Pilih **Berikutnya: Izin**.

1. Gunakan kotak filter untuk memfilter berdasarkan istilah **S3** dan centang kotak di sebelah **ReadOnlyAccessAmazonS3**.
**catatan**  
Kebijakan ini memberikan izin `s3:Get*` dan `s3:List*` ke semua bucket. Langkah-langkah selanjutnya membatasi akses ke peran menggunakan kebijakan kepercayaan.  
Loader hanya membutuhkan izin `s3:Get*` dan `s3:List*` ke bucket tempat asal Anda memuat, sehingga Anda juga dapat membatasi izin ini dengan sumber daya Amazon S3.  
Jika bucket S3 Anda dienkripsi, Anda perlu menambahkan izin `kms:Decrypt`.

1. Pilih **Berikutnya: Tinjauan**.

1. Atur **Nama Peran** ke nama IAM role Anda, misalnya: `NeptuneLoadFromS3`. Anda juga dapat menambahkan nilai **Deskripsi Peran** opsional, seperti “Izinkan Neptune untuk mengakses sumber daya Amazon S3 atas nama Anda.”

1. Pilih **Buat Peran**.

1. Di panel navigasi, pilih **Peran**.

1. Di bidang **Cari**, masukkan nama peran yang Anda buat, dan pilih peran saat muncul di daftar.

1. Pilih tab **Hubungan Kepercayaan**, pilih **Edit hubungan kepercayaan**.

1. Di bidang teks, tempel kebijakan kepercayaan berikut.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "rds.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Pilih **Perbarui Kebijakan Kepercayaan**.

1. Selesaikan langkah-langkah dalam [Menambahkan IAM role ke Klaster Amazon Neptune](bulk-load-tutorial-IAM-add-role-cluster.md).

# Menambahkan IAM role ke Klaster Amazon Neptune
<a name="bulk-load-tutorial-IAM-add-role-cluster"></a>

Gunakan konsol untuk menambahkan IAM role ke klaster Amazon Neptune. Hal ini memungkinkan setiap instans DB Neptune di klaster untuk mengasumsikan peran dan beban dari Amazon S3.

**catatan**  
Konsol Amazon Neptune mengharuskan pengguna untuk memiliki izin IAM berikut untuk melampirkan peran ke klaster Neptune:  

```
iam:GetAccountSummary on resource: *
iam:ListAccountAliases on resource: *
iam:PassRole on resource: * with iam:PassedToService restricted to rds.amazonaws.com
```

**Untuk menambahkan IAM role ke klaster Amazon Neptune**

1. [Masuk ke Konsol AWS Manajemen, dan buka konsol Amazon Neptunus di rumah. https://console.aws.amazon.com/neptune/](https://console.aws.amazon.com/neptune/home)

1. Di panel navigasi, pilih **Basis data**.

1. Pilih pengenal cluster untuk cluster yang ingin Anda modifikasi.

1. Pilih tab **Konektivitas & Keamanan**.

1. Di bagian Peran IAM, pilih peran yang Anda buat di bagian sebelumnya.

1. Pilih **Tambahkan peran**.

1. Tunggu sampai IAM role menjadi dapat diakses ke klaster sebelum Anda menggunakannya.

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

Pemuat Neptunus memerlukan titik akhir VPC tipe Gateway 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. Di panel navigasi, pilih **Titik Akhir**.

1. Pilih **Buat Titik Akhir**.

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

1. Pilih VPC yang berisi instans DB Neptunus Anda (terdaftar untuk instans DB Anda di konsol Neptunus).

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).

**Langkah Berikutnya**  
Sekarang Anda telah memberikan akses ke bucket Amazon S3, Anda dapat mempersiapkan diri untuk memuat data. Untuk informasi tentang format yang didukung, lihat [Muat Format Data](bulk-load-tutorial-format.md).

# Merantai peran IAM di Amazon Neptunus
<a name="bulk-load-tutorial-chain-roles"></a>

**penting**  
Fitur lintas akun beban massal baru yang diperkenalkan dalam [rilis engine 1.2.1.0.R3](engine-releases-1.2.1.0.R3.md) yang memanfaatkan peran IAM rantai dalam beberapa kasus dapat menyebabkan Anda mengamati kinerja beban curah yang menurun. Akibatnya, peningkatan ke rilis mesin yang mendukung fitur ini telah ditangguhkan sementara hingga masalah ini teratasi.

Saat Anda melampirkan peran ke klaster, klaster Anda dapat mengambil peran tersebut untuk mendapatkan akses ke data yang disimpan di Amazon S3. Dimulai dengan [rilis mesin 1.2.1.0.R3](engine-releases-1.2.1.0.R3.md), jika peran tersebut tidak memiliki akses ke semua sumber daya yang Anda butuhkan, Anda dapat merantai satu atau beberapa peran tambahan yang dapat diasumsikan oleh klaster Anda untuk mendapatkan akses ke sumber daya lain. Setiap peran dalam rantai mengasumsikan peran berikutnya dalam rantai, sampai klaster Anda mengambil peran di akhir rantai.

Untuk peran rantai, Anda membangun hubungan kepercayaan di antara mereka. Misalnya, untuk berantai `RoleB``RoleA`, `RoleA` harus memiliki kebijakan izin yang memungkinkannya untuk berasumsi`RoleB`, dan `RoleB` harus memiliki kebijakan kepercayaan yang memungkinkannya meneruskan kembali izinnya. `RoleA` Untuk informasi selengkapnya, lihat [Menggunakan peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html).

Peran pertama dalam rantai harus dilampirkan ke cluster yang memuat data.

Peran pertama, dan setiap peran berikutnya yang mengasumsikan peran berikut dalam rantai, harus memiliki:
+ Kebijakan yang mencakup pernyataan spesifik dengan `Allow` efek pada `sts:AssumeRole` tindakan.
+ Nama Sumber Daya Amazon (ARN) dari peran berikutnya dalam suatu `Resource` elemen.

**catatan**  
Bucket Amazon S3 target harus berada di AWS Wilayah yang sama dengan cluster.

## Akses lintas akun menggunakan peran berantai
<a name="bulk-load-tutorial-chain-cross-account"></a>

Anda dapat memberikan akses lintas akun dengan merantai peran atau peran milik akun lain. Ketika klaster Anda sementara mengambil peran milik akun lain, klaster dapat memperoleh akses ke sumber daya di sana.

Misalnya, **Akun A** ingin mengakses data di bucket Amazon S3 milik **Akun** B:
+ **Akun A** membuat peran AWS layanan untuk Neptunus `RoleA` bernama dan menempelkannya ke cluster.
+ **Akun B** membuat peran bernama `RoleB` yang diizinkan untuk mengakses data dalam bucket **Akun B**.
+ **Akun A** melampirkan kebijakan izin yang memungkinkannya untuk `RoleA` berasumsi. `RoleB`
+ **Akun B** melampirkan kebijakan kepercayaan `RoleB` yang memungkinkannya meneruskan kembali izinnya. `RoleA`
+ Untuk mengakses data di bucket **Account B**, **Account A** menjalankan perintah loader menggunakan `iamRoleArn` parameter yang berantai `RoleA` dan`RoleB`. Selama durasi operasi loader, `RoleA` maka untuk sementara mengasumsikan `RoleB` untuk mengakses bucket Amazon S3 **di** Akun B.

![\[Diagram yang menggambarkan akses lintas akun menggunakan peran berantai\]](http://docs.aws.amazon.com/id_id/neptune/latest/userguide/images/cross-account-bulk-load.png)


Misalnya, `RoleA` akan memiliki kebijakan kepercayaan yang membangun hubungan kepercayaan dengan Neptunus:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
          "Service": "rds.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

`RoleA`juga akan memiliki kebijakan izin yang memungkinkannya untuk berasumsi`RoleB`, yang dimiliki oleh **Akun B**:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt1487639602000",
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/RoleB"
        }
    ]
}
```

------

Sebaliknya, `RoleB` akan memiliki kebijakan kepercayaan untuk membangun hubungan kepercayaan dengan`RoleA`:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/RoleA"
            }
        }
    ]
}
```

------

`RoleB`juga memerlukan izin untuk mengakses data di bucket Amazon S3 yang terletak di **Akun** B.

## Membuat titik akhir VPC AWS Security Token Service (STS)
<a name="bulk-load-tutorial-sts-endpoint"></a>

Pemuat Neptunus memerlukan titik akhir VPC saat Anda merantai peran IAM AWS STS untuk mengakses secara pribadi melalui alamat IP pribadi. AWS STS APIs Anda dapat terhubung langsung dari VPC Amazon ke AWS STS melalui VPC Endpoint VPC dengan cara yang aman dan terukur. Saat Anda menggunakan titik akhir VPC antarmuka, ini memberikan postur keamanan yang lebih baik karena Anda tidak perlu membuka firewall lalu lintas keluar. Ini juga memberikan manfaat lain menggunakan titik akhir Amazon VPC.

Saat menggunakan VPC Endpoint, lalu lintas ke AWS STS tidak mengirimkan melalui internet dan tidak pernah meninggalkan jaringan Amazon. VPC Anda terhubung dengan aman AWS STS tanpa risiko ketersediaan atau kendala bandwidth pada lalu lintas jaringan Anda. Untuk informasi selengkapnya, lihat [Menggunakan titik AWS STS akhir VPC antarmuka](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts_vpce.html).

**Untuk mengatur akses untuk AWS Security Token Service (STS)**

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. Di panel navigasi, pilih **Titik Akhir**.

1. Pilih **Buat Titik Akhir**.

1. Pilih **Nama Layanan**: `com.amazonaws.region.sts` untuk titik akhir tipe Antarmuka.

1. Pilih **VPC** yang berisi instans DB Neptunus dan instans EC2 Anda.

1. Pilih kotak centang di sebelah subnet tempat instans EC2 Anda hadir. Anda tidak dapat memilih beberapa subnet dari Availability Zone yang sama.

1. Untuk jenis alamat IP, pilih dari opsi berikut:
   + **IPv4**— Tetapkan IPv4 alamat ke antarmuka jaringan titik akhir Anda. Opsi ini didukung hanya jika semua subnet yang dipilih memiliki rentang IPv4 alamat.
   + **IPv6**— Tetapkan IPv6 alamat ke antarmuka jaringan titik akhir Anda. Opsi ini didukung hanya jika semua subnet yang dipilih adalah subnet IPv6 -only.
   + **Dualstack** — Tetapkan keduanya IPv4 dan IPv6 alamat ke antarmuka jaringan endpoint Anda. Opsi ini didukung hanya jika semua subnet yang dipilih memiliki rentang keduanya IPv4 dan IPv6 alamat.

1. Untuk **grup Keamanan**, pilih grup keamanan yang akan diasosiasikan dengan antarmuka jaringan titik akhir untuk titik akhir VPC. Anda harus memilih semua grup keamanan yang dilampirkan ke instans DB Neptunus dan instans EC2 Anda.

1. Untuk **Kebijakan**, pilih **Akses penuh** untuk mengizinkan semua operasi oleh semua prinsipal di semua sumber daya melalui titik akhir VPC. Jika tidak, pilih **Kustom** untuk melampirkan kebijakan titik akhir VPC yang mengontrol izin yang dimiliki kepala sekolah untuk melakukan tindakan pada sumber daya melalui titik akhir VPC. Opsi ini hanya tersedia jika layanan mendukung kebijakan titik akhir VPC. Untuk informasi selengkapnya, lihat [Kebijakan Endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html).

1. (*Opsional*) Untuk menambahkan tag, pilih **Tambahkan tag baru** dan masukkan kunci tag dan nilai tag yang Anda inginkan.

1. Pilih **Buat titik akhir**.

Untuk informasi tentang membuat titik akhir, lihat Titik Akhir [VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) di Panduan Pengguna Amazon VPC. Harap dicatat bahwa Amazon STS VPC Endpoint adalah prasyarat yang diperlukan untuk rantai peran IAM.

Sekarang setelah Anda memberikan akses ke AWS STS titik akhir, Anda dapat mempersiapkan untuk memuat data. Untuk informasi tentang format yang didukung, lihat [Memuat Format Data](bulk-load-tutorial-format.md).

## Merantai peran dalam perintah loader
<a name="bulk-load-tutorial-loader-chain"></a>

Anda dapat menentukan rantai peran saat menjalankan perintah loader dengan menyertakan daftar peran yang dipisahkan koma ARNs dalam parameter. `iamRoleArn`

Meskipun sebagian besar Anda hanya perlu memiliki dua peran dalam sebuah rantai, tentu saja mungkin untuk menyatukan tiga atau lebih. Misalnya, perintah loader ini merantai tiga peran:

```
curl -X POST https://localhost:8182/loader \
  -H 'Content-Type: application/json' \
  -d '{
        "source" : "s3://(the target bucket name)/(the target date file name)",
        "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)",
        "format" : "csv",
        "region" : "us-east-1"
      }'
```

# Muat Format Data
<a name="bulk-load-tutorial-format"></a>

Amazon `Load` Neptunus API mendukung pemuatan data dalam berbagai format.

**Format beban grafik properti**

Data yang dimuat dalam salah satu format grafik properti berikut kemudian dapat ditanyakan menggunakan Gremlin dan OpenCypher:
+ [Format data muat Gremlin](bulk-load-tutorial-format-gremlin.md)(`csv`): format nilai yang dipisahkan koma (CSV).
+ [Format beban data OpenCypher (`opencypher`): format](bulk-load-tutorial-format-opencypher.md) nilai yang dipisahkan koma (CSV).

**Format beban RDF**

Untuk memuat data Resource Description Framework (RDF) yang Anda kueri menggunakan SPARQL, Anda dapat menggunakan salah satu format standar berikut seperti yang ditentukan oleh World Wide Web Consortium (W3C):
+ N-Triples (`ntriples`) dari spesifikasi di. [https://www.w3.org/TR/n-triples/](https://www.w3.org/TR/n-triples/)
+ N-Quads (`nquads`) dari spesifikasi di. [https://www.w3.org/TR/n-quads/](https://www.w3.org/TR/n-quads/)
+ RDF/XML (`rdfxml`) dari spesifikasi di. [https://www.w3.org/TR/rdf-syntax-grammar/](https://www.w3.org/TR/rdf-syntax-grammar/)
+ Turtle (`turtle`) dari spesifikasi di[https://www.w3.org/TR/turtle/](https://www.w3.org/TR/turtle/).

**Memuat data harus menggunakan pengkodean UTF-8**

**penting**  
Semua file load-data harus dikodekan dalam bentuk UTF-8. Jika file tidak dikodekan UTF-8, Neptunus mencoba memuatnya sebagai UTF-8.

Untuk data N-Quad dan N-Triple yang mencakup karakter Unicode, urutan escape `\uxxxxx` didukung. Namun, Neptune tidak mendukung normalisasi. Jika ada nilai yang memerlukan normalisasi, itu tidak akan cocok byte-to-byte selama kueri. Untuk informasi selengkapnya tentang normalisasi, lihat halaman [Normalisasi](https://unicode.org/faq/normalization.html) di [Unicode.org](https://unicode.org).

Jika data Anda tidak dalam format yang didukung, Anda harus mengonversinya sebelum memuatnya.

[Alat untuk mengonversi GraphMl ke format CSV Neptunus tersedia di proyek Graph CSV pada. ML2 [GitHub](https://github.com/)](https://github.com/awslabs/amazon-neptune-tools/blob/master/graphml2csv/README.md)

## Dukungan kompresi untuk file load-data
<a name="bulk-load-tutorial-format-compression"></a>

Neptunus mendukung kompresi file `gzip` individual dalam atau format. `bzip2`

File terkompresi harus memiliki `.gz` atau `.bz2` ekstensi, dan harus berupa file teks tunggal yang dikodekan dalam format UTF-8. Anda dapat memuat banyak file, tetapi masing-masing harus berupa file teks terpisah`.gz`,`.bz2`, atau tidak terkompresi. Arsipkan file dengan ekstensi seperti `.tar``.tar.gz`,, dan tidak `.tgz` didukung.

Bagian berikut menjelaskan format secara lebih detail.

**Topics**
+ [Dukungan kompresi untuk file load-data](#bulk-load-tutorial-format-compression)
+ [Format data muat Gremlin](bulk-load-tutorial-format-gremlin.md)
+ [Muat format untuk data OpenCypher](bulk-load-tutorial-format-opencypher.md)
+ [Format data beban RDF](bulk-load-tutorial-format-rdf.md)

# Format data muat Gremlin
<a name="bulk-load-tutorial-format-gremlin"></a>

Untuk memuat data Apache TinkerPop Gremlin menggunakan format CSV, Anda harus menentukan simpul dan tepi dalam file terpisah.

Loader dapat memuat dari beberapa file vertex dan beberapa file edge dalam pekerjaan pemuatan tunggal.

Untuk setiap perintah pemuatan, rangkaian file yang akan dimuat harus dalam folder yang sama di bucket Amazon S3, dan Anda menentukan nama folder untuk parameter `source`. Nama file dan ekstensi nama file tidak penting.

Format CSV Amazon Neptune mengikuti spesifikasi dalam CSV RFC 4180. Untuk informasi selengkapnya, lihat [Format Umum dan Tipe MIME untuk File CSV](https://tools.ietf.org/html/rfc4180) di situs web Internet Engineering Task Force (IETF).

**catatan**  
Semua file harus dienkode dalam format UTF-8.

Setiap file memiliki baris header yang dipisahkan koma. Baris header terdiri dari kedua header kolom sistem dan header kolom properti.

## Header Kolom Sistem
<a name="bulk-load-tutorial-format-gremlin-systemheaders"></a>

Header kolom sistem yang diperlukan dan diizinkan berbeda untuk file vertex dan file edge.

Setiap kolom sistem hanya dapat muncul satu kali di header.

Semua label peka terhadap besar kecilnya huruf.

**Header Vertex**
+ `~id`- **Diperlukan**

  ID untuk vertex.
+ `~label`

  Label untuk vertex. Beberapa nilai label diperbolehkan, dipisahkan dengan titik koma (`;`).

  Jika tidak `~label` ada, TinkerPop berikan label dengan nilainya`vertex`, karena setiap simpul harus memiliki setidaknya satu label.

**Header tepi**
+ `~id`- **Diperlukan**

  ID untuk edge.
+ `~from`- **Diperlukan**

  ID vertex dari vertex *from*.
+ `~to`- **Diperlukan**

  ID vertex dari vertex *to*.
+ `~label`

  Label untuk edge. Edge hanya dapat memiliki satu label.

  Jika tidak `~label` ada, TinkerPop berikan label dengan nilainya`edge`, karena setiap tepi harus memiliki label.

## Header Kolom Properti
<a name="bulk-load-tutorial-format-gremlin-propheaders"></a>

Anda dapat menentukan kolom (`:`) untuk properti dengan menggunakan sintaks berikut. Nama jenis tidak peka dengan huruf besar/kecil. Perhatikan, bagaimanapun, bahwa jika titik dua muncul dalam nama properti, itu harus diloloskan dengan mendahuluinya dengan garis miring terbalik:. `\:`

```
propertyname:type
```

**catatan**  
Spasi, koma, carriage return, dan karakter baris baru tidak diperbolehkan di header kolom, sehingga nama properti tidak dapat menyertakan karakter ini.

Anda dapat menentukan kolom untuk jenis array dengan menambahkan `[]` ke jenisnya:

```
propertyname:type[]
```

**catatan**  
Properti edge hanya dapat memiliki satu nilai dan akan menyebabkan kesalahan jika jenis array yang ditentukan atau nilai kedua ditentukan.

Contoh berikut menunjukkan header kolom untuk properti bernama `age` dengan tipe `Int`.

```
age:Int
```

Setiap baris dalam file akan perlu memiliki integer dalam posisi itu atau dibiarkan kosong.

Array dari string diperbolehkan, tetapi string dalam array tidak dapat mencakup titik koma (`;`) kecuali ia di-escape menggunakan garis miring terbalik (seperti ini: `\;`).

**Menentukan Kardinalitas Kolom**

Header kolom dapat digunakan untuk menentukan *kardinalitas* untuk properti yang diidentifikasi oleh kolom. Hal ini memungkinkan loader massal untuk menghormati kardinalitas yang sama dengan cara yang kueri Gremlin lakukan.

Anda menentukan kardinalitas kolom seperti ini:

```
propertyname:type(cardinality)
```

*cardinality*Nilainya bisa berupa `single` atau`set`. Default-nya diasumsikan sebagai `set`, yang berarti bahwa kolom dapat menerima beberapa nilai. Dalam kasus file edge, kardinalitas selalu tunggal dan menentukan kardinalitas lainnya menyebabkan loader melempar pengecualian.

Jika kardinalitas `single`, loader melempar kesalahan jika nilai sebelumnya sudah ada ketika nilai dimuat, atau jika beberapa nilai dimuat. Perilaku ini dapat di-override sehingga nilai yang ada diganti ketika nilai baru dimuat dengan menggunakan bendera `updateSingleCardinalityProperties`. Lihat [Perintah Loader](load-api-reference-load.md).

Hal ini dimungkinkan untuk menggunakan pengaturan kardinalitas dengan tipe array, meskipun hal ini umumnya tidak diperlukan. Berikut adalah kombinasi yang mungkin:
+ `name:type` — kardinalitasnya adalah `set`, dan kontennya bernilai tunggal.
+ `name:type[]` — kardinalitasnya adalah `set`, dan kontennya multi-nilai.
+ `name:type(single)` — kardinalitasnya adalah `single`, dan kontennya bernilai tunggal.
+ `name:type(set)` — kardinalitasnya adalah `set`, yang sama dengan default, dan kontennya bernilai tunggal.
+ `name:type(set)[]` — kardinalitasnya adalah `set`, dan kontennya multi-nilai.
+ `name:type(single)[]` — ini bertentangan dan menyebabkan kesalahan dilempar.

Bagian berikut mencantumkan semua jenis data Gremlin yang tersedia.

## Jenis Data Gremlin
<a name="bulk-load-tutorial-format-gremlin-datatypes"></a>

Ini adalah daftar jenis properti yang diizinkan, dengan deskripsi masing-masing jenis.

**Bool (atau Boolean)**  
Menunjukkan bidang Boolean. Nilai yang diizinkan: `false`, `true`

**catatan**  
Nilai apa pun selain `true` akan diperlakukan sebagai false.

**Jenis Angka Utuh**  
Nilai-nilai di luar rentang yang didefinisikan menghasilkan kesalahan.


| 
| 
| Tipe | Kisaran | 
| --- |--- |
| Byte | -128 hingga 127 | 
| Pendek | -32768 ke 32767 | 
| Int | -2^31 hingga 2 ^ 31-1 | 
| Panjang | -2 ^ 63 hingga 2 ^ 63-1 | 

**Jenis Angka Desimal**  
Mendukung notasi desimal atau notasi ilmiah. Juga memungkinkan simbol seperti (\$1/-) Infinity atau NaN. INF tidak didukung.


| 
| 
| Tipe | Kisaran | 
| --- |--- |
| Desimal | Titik mengambang IEEE 754 32-bit | 
| Ganda | Titik mengambang IEEE 754 64-bit | 

Nilai float dan double yang terlalu panjang dimuat dan dibulatkan ke nilai terdekat untuk presisi 24-bit (float) dan 53-bit (double). Sebuah nilai tengah dibulatkan ke 0 untuk digit terakhir yang tersisa di tingkat bit.

**String**  
Tanda kutip adalah opsional. Koma, baris baru, dan karakter carriage return secara otomatis di-escape jika mereka termasuk dalam string yang diapit oleh tanda kutip ganda (`"`). *Contoh:* `"Hello, World"`

Untuk memasukkan tanda kutip dalam string bertanda kutip, Anda dapat meng-escape tanda kutip dengan menggunakan dua berturut-turut: *Contoh:* `"Hello ""World"""`

Array dari string diperbolehkan, tetapi string dalam array tidak dapat mencakup titik koma (`;`) kecuali ia di-escape menggunakan garis miring terbalik (seperti ini: `\;`).

Jika Anda ingin mengapit string dalam array dengan tanda kutip, Anda harus mengapit keseluruhan array dengan satu set tanda kutip. *Contoh:* `"String one; String 2; String 3"`

**Date**  
Tanggal Java dalam format ISO-8601. Mendukung format berikut:`yyyy-MM-dd`,`yyyy-MM-ddTHH:mm`,`yyyy-MM-ddTHH:mm:ss`,`yyyy-MM-ddTHH:mm:ssZ`. Nilai-nilai dikonversi ke waktu epoch dan disimpan.

**Datetime**  
Tanggal Java dalam format ISO-8601. Mendukung format berikut:`yyyy-MM-dd`,`yyyy-MM-ddTHH:mm`,`yyyy-MM-ddTHH:mm:ss`,`yyyy-MM-ddTHH:mm:ssZ`. Nilai-nilai dikonversi ke waktu epoch dan disimpan.

## Format Baris Gremlin
<a name="bulk-load-tutorial-format-gremlin-rowformat"></a>

**Pembatas**  
Bidang dalam baris dipisahkan dengan koma. Catatan dipisahkan oleh baris baru atau baris baru yang diikuti dengan carriage return.

**Bidang Kosong**  
Bidang kosong diperbolehkan untuk kolom yang tidak diperlukan (seperti properti yang ditetapkan pengguna). Bidang kosong masih memerlukan pemisah koma. Bidang kosong pada kolom yang diperlukan akan menghasilkan kesalahan penguraian. Nilai string kosong ditafsirkan sebagai nilai string kosong untuk bidang; bukan sebagai bidang kosong. Contoh pada bagian berikutnya memiliki bidang kosong di setiap vertex contoh.

**Vertex IDs**  
Nilai `~id` harus unik untuk semua vertex di setiap file vertex. Beberapa baris vertex dengan nilai-nilai `~id` identik diterapkan ke satu vertex dalam grafik. String kosong (`""`) adalah id yang valid, dan simpul dibuat dengan string kosong sebagai id.

**Tepi IDs**  
Selain itu, nilai `~id` harus unik untuk semua edge di setiap file edge. Beberapa baris edge dengan nilai-nilai `~id` identik diterapkan ke satu edge dalam grafik. String kosong (`""`) adalah id yang valid, dan tepi dibuat dengan string kosong sebagai id.

**Label**  
Label peka huruf besar/kecil dan tidak boleh kosong. Nilai `""` akan menghasilkan kesalahan.

**Nilai String**  
Tanda kutip adalah opsional. Koma, baris baru, dan karakter carriage return secara otomatis di-escape jika mereka termasuk dalam string yang diapit oleh tanda kutip ganda (`"`). Nilai string kosong `("")` ditafsirkan sebagai nilai string kosong untuk bidang; bukan sebagai bidang kosong.

## Spesifikasi Format CSV
<a name="bulk-load-tutorial-format-csv-info"></a>

Format CSV Neptune mengikuti spesifikasi CSV RFC 4180, termasuk persyaratan berikut ini.
+ Akhir baris gaya Unix dan Windows didukung (\$1n atau \$1r n).
+ Setiap bidang dapat dikutip (menggunakan tanda kutip ganda).
+ Bidang yang berisi line-break, double-quote, atau koma harus dikutip. (Jika tidak, pemuatan dibatalkan segera.)
+ Sebuah karakter tanda kutip ganda (`"`) dalam bidang harus diwakili oleh dua (dua) karakter tanda kutip. Misalnya, string `Hello "World"` harus ada sebagai `"Hello ""World"""` dalam data.
+ Ruang sekitar antara delimiter diabaikan. Jika baris hadir sebagai`value1, value2`, mereka disimpan sebagai `"value1"` dan`"value2"`.
+ Setiap karakter lainnya yang di-escape disimpan verbatim. Misalnya, `"data1\tdata2"` disimpan sebagai `"data1\tdata2"`. Tidak ada proses escape lebih lanjut yang diperlukan selama karakter ini diapit dalam tanda kutip.
+ Bidang kosong diperbolehkan. Bidang kosong dianggap sebagai nilai kosong.
+ Beberapa nilai untuk satu bidang ditentukan dengan titik koma (`;`) antara nilai-nilai.

Untuk informasi selengkapnya, lihat [Format Umum dan Tipe MIME untuk File CSV](https://tools.ietf.org/html/rfc4180) di situs web Internet Engineering Task Force (IETF).

## Contoh Gremlin
<a name="bulk-load-tutorial-format-gremlin-example"></a>

Diagram berikut menunjukkan contoh dua simpul dan tepi yang diambil dari Grafik TinkerPop Modern.

![\[Diagram yang menggambarkan dua vertex dan edge, berisi marko age 29 dan software lop dengan lang: java.\]](http://docs.aws.amazon.com/id_id/neptune/latest/userguide/images/tiny-modern-graph.png)


Berikut ini adalah grafik dalam format pemuatan CSV Neptune.

File vertex:

```
~id,name:String,age:Int,lang:String,interests:String[],~label
v1,"marko",29,,"sailing;graphs",person
v2,"lop",,"java",,software
```

Tampilan tabular dari file vertex:

|  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |
| \$1id | Nama:string | Umur: int | lang:string | Minat:string [] | \$1label | 
| v1 | “marko” | 29 |  | ["berlayar”, “grafik"] | pribadi | 
| v2 | “lop” |  | “jawa” |  | software | 

File edge:

```
~id,~from,~to,~label,weight:Double
e1,v1,v2,created,0.4
```

Tampilan tabular dari file edge:

|  |  |  |  |  | 
| --- |--- |--- |--- |--- |
| \$1id | \$1dari | \$1untuk | \$1label | Berat: ganda | 
| e1 | v1 | v2 | dibuat | 0,4 | 

**Langkah Berikutnya**  
Sekarang setelah Anda tahu lebih banyak tentang format pemuatan, lihat [Contoh: Memuat Data ke Instans DB Neptune](bulk-load-data.md).

# Muat format untuk data OpenCypher
<a name="bulk-load-tutorial-format-opencypher"></a>

Untuk memuat data OpenCypher menggunakan format CSV OpenCypher, Anda harus menentukan node dan hubungan dalam file terpisah. Loader dapat memuat dari beberapa file node dan file hubungan ini dalam satu tugas pemuatan.

Untuk setiap perintah pemuatan, kumpulan file yang akan dimuat harus memiliki awalan jalur yang sama di bucket Amazon Simple Storage Service. Anda menentukan awalan itu di parameter sumber. Nama file dan ekstensi sebenarnya tidak penting.

Di Amazon Neptunus, format CSV OpenCypher sesuai dengan spesifikasi CSV RFC 4180. Untuk informasi selengkapnya, lihat [Format Umum dan Jenis MIME untuk File CSV](https://tools.ietf.org/html/rfc4180) (https://tools.ietf.org/html/rfc4180) di situs web Internet Engineering Task Force (IETF).

**catatan**  
File-file ini HARUS dikodekan dalam format UTF-8.

Setiap file memiliki baris header yang dipisahkan koma yang berisi header kolom sistem dan header kolom properti.

## Header kolom sistem dalam file pemuatan data OpenCypher
<a name="bulk-load-tutorial-format-opencypher-system-headers"></a>

Kolom sistem yang diberikan hanya dapat muncul sekali di setiap file. Semua label header kolom sistem peka huruf besar/kecil.

Header kolom sistem yang diperlukan dan diizinkan berbeda untuk file pemuatan node OpenCypher dan file pemuatan hubungan:

### Header kolom sistem dalam file node
<a name="bulk-load-tutorial-format-opencypher-system-headers-nodes"></a>
+ **`:ID`**— (Wajib) ID untuk node.

  Ruang ID opsional dapat ditambahkan ke header `:ID` kolom node seperti ini:`:ID(ID Space)`. Contohnya adalah `:ID(movies)`.

  Saat memuat hubungan yang menghubungkan node dalam file ini, gunakan spasi ID yang sama di `:START_ID` and/or `:END_ID` kolom file hubungan.

  `:ID`Kolom node opsional dapat disimpan sebagai properti dalam bentuk,`property name:ID`. Contohnya adalah `name:ID`.

  Node IDs harus unik di semua file node dalam beban saat ini dan sebelumnya. Jika ruang ID digunakan, node IDs harus unik di semua file node yang menggunakan ruang ID yang sama dalam beban saat ini dan sebelumnya.
+ **`:LABEL`**— Label untuk node.

  Saat menggunakan beberapa nilai label untuk satu node, setiap label harus dipisahkan dengan titik koma (). `;`

### Header kolom sistem dalam file hubungan
<a name="bulk-load-tutorial-format-opencypher-system-headers-relationships"></a>
+ **`:ID`**— ID untuk hubungan. Ini diperlukan ketika `userProvidedEdgeIds` benar (default), tetapi tidak valid kapan `userProvidedEdgeIds` benar. `false`

  Hubungan IDs harus unik di semua file hubungan dalam pemuatan saat ini dan sebelumnya.
+ **`:START_ID`**— (*Wajib*) ID node dari node hubungan ini dimulai dari.

  Secara opsional, ruang ID dapat dikaitkan dengan kolom ID awal dalam formulir`:START_ID(ID Space)`. Ruang ID yang ditetapkan ke ID node awal harus cocok dengan ruang ID yang ditetapkan ke node dalam file node.
+ **`:END_ID`**— (*Wajib*) ID node dari node hubungan ini berakhir di.

  Secara opsional, ruang ID dapat dikaitkan dengan kolom ID akhir dalam formulir`:END_ID(ID Space)`. Ruang ID yang ditetapkan ke ID node akhir harus cocok dengan ruang ID yang ditetapkan ke node dalam file simpulnya.
+ **`:TYPE`**— Tipe untuk hubungan. Hubungan hanya dapat memiliki satu jenis.

**catatan**  
Lihat [Memuat data OpenCypher](load-api-reference-load.md#load-api-reference-load-parameters-opencypher) untuk informasi tentang bagaimana duplikat node atau relasi IDs ditangani oleh proses pemuatan massal.

### Header kolom properti di file pemuatan data OpenCypher
<a name="bulk-load-tutorial-format-opencypher-property-headers"></a>

Anda dapat menentukan bahwa kolom menyimpan nilai untuk properti tertentu menggunakan header kolom properti dalam bentuk berikut:

```
propertyname:type
```

Spasi, koma, carriage return, dan karakter baris baru tidak diperbolehkan di header kolom, sehingga nama properti tidak dapat menyertakan karakter ini. Berikut adalah contoh header kolom untuk properti bernama `age` tipe`Int`:

```
age:Int
```

Kolom dengan `age:Int` sebagai header kolom kemudian harus berisi integer atau nilai kosong di setiap baris.

## Tipe data dalam file pemuatan data Neptunus OpenCypher
<a name="bulk-load-tutorial-format-opencypher-data-types"></a>
+ **`Bool`**atau **`Boolean`**— Sebuah bidang Boolean. Nilai yang diizinkan adalah `true` dan `false`.

  Nilai apa pun selain `true` diperlakukan sebagai`false`.
+ **`Byte`**— Sebuah bilangan bulat dalam rentang `-128` melalui`127`.
+ **`Short`**— Sebuah bilangan bulat dalam rentang `-32,768` melalui`32,767`.
+ **`Int`**— Sebuah bilangan bulat dalam rentang `-2^31` melalui`2^31 - 1`.
+ **`Long`**— Sebuah bilangan bulat dalam rentang `-2^63` melalui`2^63 - 1`.
+ **`Float`**— Nomor floating point IEEE 754 32-bit. Notasi desimal dan notasi ilmiah keduanya didukung. `Infinity`,`-Infinity`, dan `NaN` semuanya diakui, tetapi `INF` tidak.

  Nilai dengan terlalu banyak digit yang cocok dibulatkan ke nilai terdekat (nilai tengah dibulatkan ke 0 untuk digit terakhir yang tersisa di tingkat bit).
+ **`Double`**— Nomor floating point IEEE 754 64-bit. Notasi desimal dan notasi ilmiah keduanya didukung. `Infinity`,`-Infinity`, dan `NaN` semuanya diakui, tetapi `INF` tidak.

  Nilai dengan terlalu banyak digit yang cocok dibulatkan ke nilai terdekat (nilai tengah dibulatkan ke 0 untuk digit terakhir yang tersisa di tingkat bit).
+ **`String`**- Tanda kutip adalah opsional. Karakter comma, newline, dan carriage return secara otomatis lolos jika disertakan dalam string yang dikelilingi oleh tanda kutip ganda () seperti. `"` `"Hello, World"`

  Anda dapat menyertakan tanda kutip dalam string yang dikutip dengan menggunakan dua berturut-turut, seperti. `"Hello ""World"""`
+ **`DateTime`**— Tanggal Java dalam salah satu format ISO-8601 berikut:
  + `yyyy-MM-dd`
  + `yyyy-MM-ddTHH:mm`
  + `yyyy-MM-ddTHH:mm:ss`
  + `yyyy-MM-ddTHH:mm:ssZ`

### Jenis data cast otomatis dalam file pemuatan data Neptunus OpenCypher
<a name="bulk-load-tutorial-format-opencypher-data-auto-cast"></a>

Tipe data auto-cast disediakan untuk memuat tipe data yang saat ini tidak didukung secara native oleh Neptunus. Data dalam kolom tersebut disimpan sebagai string, kata demi kata tanpa verifikasi terhadap format yang dimaksudkan. Tipe data auto-cast berikut diperbolehkan:
+ **`Char`**— Sebuah `Char` bidang. Disimpan sebagai string.
+ **`Date`**, **`LocalDate`**, dan **`LocalDateTime`**, — Lihat [Neo4j Instans Temporal](https://neo4j.com/docs/cypher-manual/current/values-and-types/temporal/#cypher-temporal-instants) untuk deskripsi`date`,`localdate`, dan jenis. `localdatetime` Nilai-nilai dimuat kata demi kata sebagai string, tanpa validasi.
+ **`Duration`**— Lihat format [Durasi Neo4j](https://neo4j.com/docs/cypher-manual/current/values-and-types/temporal/#cypher-temporal-durations). Nilai-nilai dimuat kata demi kata sebagai string, tanpa validasi.
+ **Titik** — Bidang titik, untuk menyimpan data spasial. Lihat [Instan spasial](https://neo4j.com/docs/cypher-manual/current/values-and-types/spatial/#spatial-values-spatial-instants). Nilai-nilai dimuat kata demi kata sebagai string, tanpa validasi.

## Contoh format beban OpenCypher
<a name="bulk-load-tutorial-format-opencypher-example"></a>

Diagram berikut yang diambil dari Grafik TinkerPop Modern menunjukkan contoh dua node dan hubungan:

![\[Diagram dua node dan hubungan di antara mereka.\]](http://docs.aws.amazon.com/id_id/neptune/latest/userguide/images/tinkerpop-2-nodes-and-relationship.png)


Berikut ini adalah grafik dalam format beban Neptunus OpenCypher normal.

**Berkas simpul:**

```
:ID,name:String,age:Int,lang:String,:LABEL
v1,"marko",29,,person
v2,"lop",,"java",software
```

**File hubungan:**

```
:ID,:START_ID,:END_ID,:TYPE,weight:Double
e1,v1,v2,created,0.4
```

Atau, Anda dapat menggunakan spasi ID dan ID sebagai properti, sebagai berikut:

**File simpul pertama:**

```
name:ID(person),age:Int,lang:String,:LABEL
"marko",29,,person
```

**File simpul kedua:**

```
name:ID(software),age:Int,lang:String,:LABEL
"lop",,"java",software
```

**File hubungan:**

```
:ID,:START_ID(person),:END_ID(software),:TYPE,weight:Double
e1,"marko","lop",created,0.4
```

# Format data beban RDF
<a name="bulk-load-tutorial-format-rdf"></a>

Untuk memuat data Resource Description Framework (RDF), Anda dapat menggunakan salah satu format standar berikut seperti yang ditentukan oleh World Wide Web Consortium (W3C):
+ N-Triples (`ntriples`) dari spesifikasi di [https://www.w3.org/TR/n-triples/](https://www.w3.org/TR/n-triples/)
+ N -Quad (`nquads`) dari spesifikasinya di [https://www.w3.org/TR/n-quads/](https://www.w3.org/TR/n-quads/)
+ RDF/XML (`rdfxml`) dari spesifikasinya di [https://www.w3.org/TR/rdf-syntax-grammar/](https://www.w3.org/TR/rdf-syntax-grammar/)
+ Turtle (`turtle`) dari spesifikasi di [https://www.w3.org/TR/turtle/](https://www.w3.org/TR/turtle/)

**penting**  
Semua file harus dienkode dalam format UTF-8.  
Untuk data N-Quad dan N-Triple yang mencakup karakter Unicode, urutan escape `\uxxxxx` didukung. Namun, Neptune tidak mendukung normalisasi. Jika ada nilai yang memerlukan normalisasi, itu tidak akan cocok byte-to-byte selama kueri. Untuk informasi selengkapnya tentang normalisasi, lihat halaman [Normalisasi](https://unicode.org/faq/normalization.html) di [Unicode.org](https://unicode.org).

**Langkah Berikutnya**  
Sekarang setelah Anda tahu lebih banyak tentang format pemuatan, lihat [Contoh: Memuat Data ke Instans DB Neptune](bulk-load-data.md).

# 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`

   ```
   curl -X POST \
       -H 'Content-Type: application/json' \
       https://your-neptune-endpoint:port/loader -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**:

   ```
   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**:

   ```
   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.

# Mengoptimalkan pemuatan massal Amazon Neptune
<a name="bulk-load-optimize"></a>

Gunakan strategi berikut untuk menjaga waktu muat hingga minimum untuk pemuatan massal Neptune:
+ **Bersihkan data Anda:**
  + Pastikan untuk mengonversi data Anda menjadi [Format data yang didukung](bulk-load-tutorial-format.md) sebelum memuat.
  + Hapus duplikat atau kesalahan yang diketahui.
  + Kurangi jumlah predikat unik (seperti properti edge dan vertex) sebanyak yang Anda bisa.
+ **Optimalkan file Anda:**
  + Jika Anda memuat file besar seperti file CSV dari bucket Amazon S3, loader mengelola konkurensi untuk Anda dengan menguraikannya menjadi potongan-potongan yang dapat dimuat secara paralel. Menggunakan sejumlah besar file kecil dapat memperlambat proses ini.
  +  Jika Anda memuat beberapa file dari awalan Amazon S3, loader secara otomatis memuat file vertex terlebih dahulu, lalu file edge sesudahnya. Namun, jika Anda tahu bahwa Anda hanya akan memuat file tepi, `edgeOnlyLoad` dapat diatur `TRUE` untuk melewati lintasan pertama di mana semua file dipindai untuk menentukan isinya (simpul atau tepi) sehingga file simpul apa pun yang ditemukan dimuat sebelum file tepi. Ini dapat mempercepat waktu buka secara signifikan, terutama ketika banyak file edge terlibat. Jika beberapa file simpul juga ada dalam awalan `source` (parameter) Amazon S3 yang sama, mereka akan dimuat tetapi tanpa jaminan pemesanan apa pun relatif terhadap file lain. Juga, jika beberapa `from` atau `to` simpul tidak ada dalam database, penyisipan tepi dapat melaporkan kesalahan dengan pesan. `FROM_OR_TO_VERTEX_ARE_MISSING` Sebagai praktik terbaik, letakkan node dan tepi di awalan Amazon S3 yang terpisah. 
+ **Periksa pengaturan loader Anda:**
  + Jika Anda tidak perlu melakukan operasi lain selama pemuatan, gunakan [`OVERSUBSCRIBE``parallelism`](load-api-reference-load.md#load-api-reference-load-syntax)parameternya. Pengaturan parameter ini menyebabkan pemuat massal menggunakan semua sumber daya CPU yang tersedia saat dijalankan. Umumnya dibutuhkan 60% -70% dari kapasitas CPU untuk menjaga operasi berjalan secepat I/O kendala memungkinkan.
**catatan**  
Ketika `parallelism` disetel ke `OVERSUBSCRIBE` atau `HIGH` (pengaturan default), ada risiko saat memuat data OpenCypher bahwa utas mungkin mengalami kondisi balapan dan kebuntuan, yang mengakibatkan kesalahan. `LOAD_DATA_DEADLOCK` Dalam hal ini, atur `parallelism` ke pengaturan yang lebih rendah dan coba lagi beban.
  + Jika pekerjaan pemuatan Anda akan mencakup beberapa permintaan pemuatan, gunakan parameter `queueRequest`. Mengatur `queueRequest` ke `TRUE` memungkinkan Neptune mengantrekan permintaan Anda sehingga Anda tidak perlu menunggu sampai satu permintaan selesai sebelum mengeluarkan permintaan yang lain.
  +  Jika permintaan pemuatan Anda sedang mengantre, Anda dapat mengatur tingkat ketergantungan menggunakan parameter `dependencies`, sehingga kegagalan satu pekerjaan menyebabkan pekerjaan yang bergantung gagal. Hal ini dapat mencegah inkonsistensi dalam data yang dimuat.
  + Jika pekerjaan pemuatan akan melibatkan proses memperbarui nilai yang sebelumnya dimuat, pastikan untuk mengatur parameter `updateSingleCardinalityProperties` ke `TRUE`. Jika tidak, loader akan memperlakukan upaya untuk memperbarui nilai kardinalitas tunggal yang ada sebagai kesalahan. Untuk data Gremlin, kardinalitas juga ditentukan dalam header kolom properti (lihat [Header Kolom Properti](bulk-load-tutorial-format-gremlin.md#bulk-load-tutorial-format-gremlin-propheaders)).
**catatan**  
`updateSingleCardinalityProperties`Parameter tidak tersedia untuk data Resource Description Framework (RDF).
  + Anda dapat menggunakan parameter `failOnError` untuk menentukan apakah operasi pemuatan massal harus gagal atau lanjut ketika kesalahan ditemui. Juga, Anda dapat menggunakan `mode` untuk memastikan bahwa pekerjaan pemuatan berlanjut memuat dari titik di mana pekerjaan sebelumnya gagal alih-alih memuat ulang data yang sudah dimuat.
+ **Scale up** — Atur instance penulis cluster DB Anda ke ukuran maksimum sebelum pemuatan massal. Perhatikan bahwa jika Anda melakukan ini, Anda harus meningkatkan instance read-replica di cluster DB juga, atau menghapusnya sampai Anda selesai memuat data.

   Ketika pemuatan massal Anda selesai, pastikan untuk menskalakan turun instance penulis kembali. 

**penting**  
Jika Anda mengalami siklus restart replika baca berulang karena kelambatan replikasi selama pemuatan massal, replika Anda kemungkinan tidak dapat mengikuti penulis di cluster DB Anda. Baik skala pembaca menjadi lebih besar dari penulis, atau hapus sementara selama pemuatan massal dan kemudian buat ulang setelah selesai.

Lihat [Parameter Permintaan](load-api-reference-load.md#load-api-reference-load-parameters) untuk rincian lebih lanjut tentang pengaturan parameter permintaan loader.

# Referensi Loader Neptune
<a name="load-api-reference"></a>

Bagian ini menjelaskan `Loader` APIs untuk Amazon Neptunus yang tersedia dari titik akhir HTTP dari instans DB Neptunus.

**catatan**  
Lihat [Pesan Kesalahan dan Umpan Neptune Loader](loader-message.md) untuk daftar pesan kesalahan dan umpan yang dikembalikan oleh loader jika terjadi kesalahan.

**Contents**
+ [Perintah Loader Neptune](load-api-reference-load.md)
  + [Sintaks Permintaan Neptune](load-api-reference-load.md#load-api-reference-load-syntax)
  + [Parameter Permintaan Loader Neptune](load-api-reference-load.md#load-api-reference-load-parameters)
    + [Pertimbangan khusus untuk memuat data OpenCypher](load-api-reference-load.md#load-api-reference-load-parameters-opencypher)
  + [Sintaks Respons Loader Neptune](load-api-reference-load.md#load-api-reference-load-return)
  + [Kesalahan Loader Neptune](load-api-reference-load-errors.md)
  + [Contoh Neptune Loader](load-api-reference-load-examples.md)
+ [Neptunus Loader API Get-Status](load-api-reference-status.md)
  + [Permintaan Neptune Loader Get-Status](load-api-reference-status-requests.md)
    + [Sintaks Get-Status permintaan loader](load-api-reference-status-requests.md#load-api-reference-status-request-syntax)
    + [Parameter permintaan Neptune Loader Get-Status](load-api-reference-status-requests.md#load-api-reference-status-parameters)
  + [Tanggapan Neptunus Loader Get-Status](load-api-reference-status-response.md)
    + [Tata letak JSON Respons Pemuat Neptunus Get-Status](load-api-reference-status-response.md#load-api-reference-status-response-layout)
    + [Neptunus Loader Get-Status `overallStatus` dan objek respons `failedFeeds`](load-api-reference-status-response.md#load-api-reference-status-response-objects)
    + [Objek respons Get-Status `errors` Neptunus Loader](load-api-reference-status-response.md#load-api-reference-status-errors)
    + [Objek respons Get-Status `errorLogs` Neptunus Loader](load-api-reference-status-response.md#load-api-reference-error-logs)
  + [Contoh Pemuat Get-Status Neptunus](load-api-reference-status-examples.md)
    + [Contoh permintaan untuk status pemuatan](load-api-reference-status-examples.md#load-api-reference-status-examples-status-request)
    + [Contoh permintaan untuk loadIds](load-api-reference-status-examples.md#load-api-reference-status-examples-loadId-request)
    + [Contoh permintaan untuk status terperinci](load-api-reference-status-examples.md#load-api-reference-status-examples-details-request)
  + [Contoh Neptunus Loader Get-Status `errorLogs`](load-api-reference-error-logs-examples.md)
    + [Contoh respons status rinci ketika terjadi kesalahan](load-api-reference-error-logs-examples.md#load-api-reference-status-examples-details-request-errors)
    + [Contoh kesalahan `Data prefetch task interrupted`](load-api-reference-error-logs-examples.md#load-api-reference-status-examples-task-interrupted)
+ [Pembatalan Pekerjaan Neptune Loader](load-api-reference-cancel.md)
  + [Sintaks permintaan Batalkan Pekerjaan](load-api-reference-cancel.md#load-api-reference-cancel-syntax)
  + [Parameter Permintaan Batalkan Pekerjaan](load-api-reference-cancel.md#load-api-reference-cancel-parameters)
  + [Sintaks Respons Batalkan Pekerjaan](load-api-reference-cancel.md#load-api-reference-cancel-parameters-response)
  + [Kesalahan Batalkan Pekerjaan](load-api-reference-cancel.md#load-api-reference-cancel-parameters-errors)
  + [Pesan Kesalahan Batalkan Pekerjaan](load-api-reference-cancel.md#load-api-reference-cancel-parameters-errors-messages)
  + [Contoh Pembatalan Pekerjaan](load-api-reference-cancel.md#load-api-reference-cancel-examples)

# Perintah Loader Neptune
<a name="load-api-reference-load"></a>

Memuat data dari bucket Amazon S3 ke instans DB Neptune.

Untuk memuat data, Anda harus mengirim permintaan `POST` HTTP ke titik akhir `https://your-neptune-endpoint:port/loader`. Parameter untuk permintaan `loader` dapat dikirim dalam badan `POST` atau sebagai parameter URL yang dikodekan.

**penting**  
Tipe MIME harus `application/json`.

Bucket Amazon S3 harus berada di AWS Wilayah yang sama dengan cluster.

**catatan**  
Anda dapat memuat data terenkripsi dari Amazon S3 jika dienkripsi menggunakan Mode `SSE-S3` Amazon S3. Dalam hal ini, Neptune dapat meniru kredensial Anda dan mengeluarkan panggilan `s3:getObject` atas nama Anda.  
Anda juga dapat memuat data terenkripsi dari Amazon S3 yang dienkripsi menggunakan `SSE-KMS`, selama IAM role Anda mencakup izin yang diperlukan untuk mengakses AWS KMS. Tanpa AWS KMS izin yang tepat, operasi beban massal gagal dan mengembalikan `LOAD_FAILED` respons.  
Neptune saat ini tidak mendukung pemuatan data yang dienkripsi Amazon S3 menggunakan Mode `SSE-C`.

Anda tidak perlu menunggu untuk satu pekerjaan pemuatan selesai sebelum Anda memulai satu pekerjaan lagi. Neptune dapat mengantrekan sebanyak 64 permintaan pekerjaan sekaligus, asalkan parameter `queueRequest` mereka semua diatur ke `"TRUE"`. Urutan antrian pekerjaan akan menjadi first-in-first-out (FIFO). Jika Anda tidak ingin pekerjaan pemuatan diantrian, di sisi lain, Anda dapat mengatur `queueRequest` parameternya ke `"FALSE"` (default), sehingga pekerjaan pemuatan akan gagal jika yang lain sudah dalam proses.

Anda dapat menggunakan parameter `dependencies` untuk mengantrekan pekerjaan yang hanya harus dijalankan setelah pekerjaan sebelumnya yang ditentukan dalam antrian telah berhasil diselesaikan. Jika Anda melakukan itu dan salah satu dari mereka pekerjaan tertentu gagal, pekerjaan Anda tidak akan dijalankan dan statusnya akan diatur ke `LOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED`.

## Sintaks Permintaan Neptune
<a name="load-api-reference-load-syntax"></a>

```
{
  "source" : "string",
  "format" : "string",
  "iamRoleArn" : "string",
  "mode": "NEW|RESUME|AUTO",
  "region" : "us-east-1",
  "failOnError" : "string",
  "parallelism" : "string",
  "parserConfiguration" : {
    "baseUri" : "http://base-uri-string",
    "namedGraphUri" : "http://named-graph-string"
  },
  "updateSingleCardinalityProperties" : "string",
  "queueRequest" : "TRUE",
  "dependencies" : ["load_A_id", "load_B_id"]
}
```

**edgeOnlyLoad Sintaks**  
 Untuk an`edgeOnlyLoad`, sintaksnya adalah: 

```
{
"source" : "string",
"format" : "string",
"iamRoleArn" : "string",
"mode": "NEW|RESUME|AUTO",
"region" : "us-east-1",
"failOnError" : "string",
"parallelism" : "string",
"edgeOnlyLoad" : "string",
"parserConfiguration" : {
    "baseUri" : "http://base-uri-string",
    "namedGraphUri" : "http://named-graph-string"
},
"updateSingleCardinalityProperties" : "string",
"queueRequest" : "TRUE",
"dependencies" : ["load_A_id", "load_B_id"]
}
```

## Parameter Permintaan Loader Neptune
<a name="load-api-reference-load-parameters"></a>
+ **`source`** — Sebuah URI Amazon S3.

  Parameter `SOURCE` menerima URI Amazon S3 yang mengidentifikasi satu file, beberapa file, folder, atau beberapa folder. Neptune memuat setiap file data dalam folder yang ditentukan.

  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`

  `object-key-name`Elemen URI setara dengan parameter [awalan](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html#API_ListObjects_RequestParameters) dalam panggilan API Amazon [ListObjects](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html)S3. Ini mengidentifikasi semua objek dalam bucket Amazon S3 yang ditentukan yang namanya dimulai dengan prefiks itu. Itu bisa berupa satu file atau folder, atau beberapa and/or folder file.

  Folder atau folder-folder yang ditentukan dapat berisi beberapa file vertex dan beberapa file edge.

   Misalnya, jika Anda memiliki struktur folder dan file berikut di bucket Amazon S3 bernama: `bucket-name` 

  ```
  s3://bucket-name/a/bc
  s3://bucket-name/ab/c
  s3://bucket-name/ade
  s3://bucket-name/bcd
  ```

   Jika parameter sumber ditentukan sebagai`s3://bucket-name/a`, tiga file pertama akan dimuat. 

  ```
  s3://bucket-name/a/bc
  s3://bucket-name/ab/c
  s3://bucket-name/ade
  ```
+ **`format`** — Format data. Untuk informasi selengkapnya tentang format data untuk perintah `Loader` Neptune, lihat [Menggunakan pemuat massal Amazon Neptunus untuk menelan data](bulk-load.md).

**Nilai yang diizinkan**
  + **`csv`**untuk format data [CSV Gremlin](bulk-load-tutorial-format-gremlin.md).
  + **`opencypher`**untuk format data [CSV OpenCypher](bulk-load-tutorial-format-opencypher.md).
  + **`ntriples`**untuk format data [RDF N-Triples](https://www.w3.org/TR/n-triples/).
  + **`nquads`**untuk format data [N-Quads RDF](https://www.w3.org/TR/n-quads/).
  + **`rdfxml`**untuk format data [RDF\$1 XHTML RDF](https://www.w3.org/TR/rdf-syntax-grammar/).
  + **`turtle`**untuk format data [Turtle RDF](https://www.w3.org/TR/turtle/).
+ **`iamRoleArn`** — Amazon Resource Name (ARN) untuk IAM role yang akan diasumsikan oleh instans DB Neptune untuk akses ke bucket S3. 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).

  Dimulai dengan [rilis engine 1.2.1.0.R3](engine-releases-1.2.1.0.R3.md), Anda juga dapat menghubungkan beberapa peran IAM jika instans DB Neptunus dan bucket Amazon S3 berada di Akun yang berbeda. AWS Dalam hal ini, `iamRoleArn` berisi daftar peran yang dipisahkan koma ARNs, seperti yang dijelaskan dalam. [Merantai peran IAM di Amazon Neptunus](bulk-load-tutorial-chain-roles.md) Contoh:

  ```
  curl -X POST https://localhost:8182/loader \
    -H 'Content-Type: application/json' \
    -d '{
          "source" : "s3://(the target bucket name)/(the target date file name)",
          "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)",
          "format" : "csv",
          "region" : "us-east-1"
        }'
  ```
+ **`region`**— `region` Parameter harus cocok dengan AWS Wilayah cluster dan bucket S3.

  Amazon Neptune tersedia di Wilayah berikut:
  + 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`
+ **`mode`** — Mode pekerjaan pemuatan.

  *Nilai yang diizinkan*:`RESUME`,`NEW`,`AUTO`.

  *Nilai default*: `AUTO`

****
  + `RESUME` — Dalam mode RESUME, loader mencari pemuatan sebelumnya dari sumber ini, dan jika menemukan satu, melanjutkan pekerjaan pemuatan tersebut. Jika tidak ada pekerjaan pemuatan sebelumnya yang ditemukan, loader berhenti.

    Loader menghindari memuat ulang file yang berhasil dimuat di pekerjaan sebelumnya. Ia hanya mencoba untuk memproses file yang gagal. Jika Anda menjatuhkan data yang dimuat sebelumnya dari klaster Neptune Anda, data tersebut tidak dimuat ulang dalam mode ini. Jika pekerjaan pemuatan sebelumnya berhasil memuat semua file dari sumber yang sama, tidak ada yang dimuat ulang, dan loader mengembalikan keberhasilan.
  + `NEW` — Dalam mode NEW, it menciptakan permintaan pemuatan baru terlepas dari pemuatan sebelumnya. Anda dapat menggunakan mode ini untuk memuat ulang semua data dari sumber setelah menjatuhkan data yang dimuat sebelumnya dari klaster Neptune Anda, atau untuk memuat data baru yang tersedia di sumber yang sama.
  + `AUTO` — Dalam mode AUTO, loader mencari pekerjaan pemuatan sebelumnya dari sumber yang sama, dan jika menemukannya, melanjutkan pekerjaan itu, seperti pada mode `RESUME`.

    Jika loader tidak menemukan pekerjaan pemuatan sebelumnya dari sumber yang sama, loader akan memuat semua data dari sumbernya, seperti pada mode `NEW`.
+  **`edgeOnlyLoad`**- Bendera yang mengontrol urutan pemrosesan file selama pemuatan massal. 

  *Nilai yang diizinkan*: `"TRUE"`, `"FALSE"`.

  *Nilai default*:`"FALSE"`.

   Ketika parameter ini diatur ke “FALSE”, loader secara otomatis memuat file simpul terlebih dahulu, lalu file tepi sesudahnya. Ini dilakukan dengan terlebih dahulu memindai semua file untuk menentukan isinya (simpul atau tepi). Ketika parameter ini diatur ke “TRUE”, loader melewatkan fase pemindaian awal dan segera memuat semua file sesuai urutan kemunculannya. Untuk informasi selengkapnya, lihat [optimasi beban massal](https://docs.aws.amazon.com//neptune/latest/userguide/bulk-load-optimize.html). 
+ **`failOnError`** — Sebuah bendera untuk mengubah berhenti penuh pada kesalahan.

  *Nilai yang diizinkan*: `"TRUE"`, `"FALSE"`.

  *Nilai default*:`"TRUE"`.

  Ketika parameter ini diatur ke `"FALSE"`, loader mencoba memuat semua data di lokasi yang ditentukan, melewatkan entri apa pun yang memiliki kesalahan.

  Ketika parameter ini diatur ke `"TRUE"`, loader berhenti segera setelah menemukan kesalahan. Data yang dimuat sampai saat itu tetap ada.
+ **`parallelism`** — Ini adalah parameter opsional yang dapat diatur untuk mengurangi jumlah utas yang digunakan oleh proses pemuatan massal.

  *Nilai yang diizinkan*:
  + `LOW`— Jumlah benang yang digunakan adalah jumlah v yang tersedia CPUs dibagi 8.
  + `MEDIUM`— Jumlah benang yang digunakan adalah jumlah v yang tersedia CPUs dibagi 2.
  + `HIGH`— Jumlah thread yang digunakan sama dengan jumlah yang tersedia vCPUs.
  + `OVERSUBSCRIBE`— Jumlah utas yang digunakan adalah jumlah v yang tersedia CPUs dikalikan dengan 2. Jika nilai ini digunakan, loader massal mengambil semua sumber daya yang tersedia.

    Ini tidak berarti, bagaimanapun, bahwa pengaturan `OVERSUBSCRIBE` menghasilkan 100% utilisasi CPU. Karena operasi beban I/O terikat, pemanfaatan CPU tertinggi yang diharapkan adalah dalam kisaran 60% hingga 70%.

  *Nilai default*: `HIGH`

  `parallelism`Pengaturan terkadang dapat mengakibatkan kebuntuan antar utas saat memuat data OpenCypher. Ketika ini terjadi, Neptunus mengembalikan kesalahan. `LOAD_DATA_DEADLOCK` Anda biasanya dapat memperbaiki masalah dengan mengatur `parallelism` ke pengaturan yang lebih rendah dan mencoba kembali perintah load.
+ **`parserConfiguration`** — Sebuah objek opsional dengan nilai konfigurasi parser tambahan. Masing-masing parameter turunan juga opsional:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/neptune/latest/userguide/load-api-reference-load.html)

  Untuk informasi selengkapnya, lihat [Grafik Standar SPARQL dan Grafik Bernama](feature-sparql-compliance.md#sparql-default-graph).
+ **`updateSingleCardinalityProperties`** — Ini adalah parameter opsional yang mengontrol bagaimana bulk loader memperlakukan nilai baru untuk properti vertex atau edge single-cardinality. Ini tidak didukung untuk memuat data OpenCypher (lihat). [Memuat data OpenCypher](#load-api-reference-load-parameters-opencypher)

  *Nilai yang diizinkan*: `"TRUE"`, `"FALSE"`.

  *Nilai default*:`"FALSE"`.

  Secara default, atau saat `updateSingleCardinalityProperties` secara eksplisit diatur ke `"FALSE"`, loader memperlakukan nilai baru sebagai kesalahan, karena melanggar kardinalitas tunggal.

  Saat `updateSingleCardinalityProperties` diatur ke `"TRUE"`, di sisi lain, loader massal menggantikan nilai yang ada dengan yang baru. Jika beberapa edge atau nilai properti vertex single-cardinality disediakan dalam file sumber yang dimuat, nilai akhir pada akhir pemuatan massal bisa menjadi salah satu dari nilai-nilai baru tersebut. Loader hanya menjamin bahwa nilai yang ada telah digantikan oleh salah satu yang baru.
+ **`queueRequest`** — Ini adalah parameter bendera opsional yang menunjukkan apakah permintaan pemuatan dapat diantrekan atau tidak. 

  Anda tidak perlu menunggu satu pekerjaan muat selesai sebelum mengeluarkan pekerjaan berikutnya, karena Neptune dapat mengantrekan sebanyak 64 pekerjaan sekaligus, asalkan parameter `queueRequest` semua diatur ke `"TRUE"`. Urutan antrian pekerjaan akan menjadi first-in-first-out (FIFO). 

  Jika parameter `queueRequest` dihilangkan atau diatur ke `"FALSE"`, permintaan pemuatan akan gagal jika pekerjaan pemuatan lain sudah berjalan.

  *Nilai yang diizinkan*: `"TRUE"`, `"FALSE"`.

  *Nilai default*:`"FALSE"`.
+ **`dependencies`** — Ini adalah parameter opsional yang dapat membuat permintaan pemuatan yang mengantre bergantung pada penyelesaian yang berhasil dari satu atau lebih pekerjaan sebelumnya dalam antrean.

  Neptune dapat mengantrekan sebanyak 64 permintaan pemuatan sekaligus, jika parameter `queueRequest` permintaannya diatur ke `"TRUE"`. Parameter `dependencies` memungkinkan Anda melakukan eksekusi seperti permintaan mengantre yang tergantung pada penyelesaian yang berhasil dari satu atau lebih permintaan ditentukan sebelumnya dalam antrean.

  Misalnya, jika pemuatan `Job-A` dan `Job-B` independen satu sama lain, namun pemuatan `Job-C` membutuhkan `Job-A` dan `Job-B` harus selesai sebelum dimulai, lanjutkan sebagai berikut:

  1. Kirim `load-job-A` dan `load-job-B` satu demi satu dalam urutan apa pun, dan simpan load-id mereka.

  1. Kirim `load-job-C` dengan load-id dari dua pekerjaan di bidang `dependencies`-nya:

  ```
    "dependencies" : ["job_A_load_id", "job_B_load_id"]
  ```

  Karena parameter `dependencies`, loader massal tidak akan memulai `Job-C` sampai `Job-A` dan `Job-B` telah berhasil diselesaikan. Jika salah satu dari mereka gagal, Job-C tidak akan dieksekusi, dan statusnya akan diatur ke `LOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED`.

  Anda dapat mengatur beberapa tingkat ketergantungan dengan cara ini, sehingga kegagalan satu pekerjaan akan menyebabkan semua permintaan yang secara langsung atau tidak langsung tergantung padanya untuk dibatalkan.
+ **`userProvidedEdgeIds`**- Parameter ini diperlukan hanya ketika memuat data OpenCypher yang berisi hubungan. IDs Itu harus disertakan dan diatur ke `True` ketika hubungan OpenCypher secara eksplisit IDs disediakan dalam data beban (disarankan).

  Ketika tidak `userProvidedEdgeIds` ada atau diatur ke`True`, `:ID` kolom harus ada di setiap file hubungan dalam beban.

  Ketika `userProvidedEdgeIds` hadir dan diatur ke`False`, file hubungan dalam beban **tidak boleh** berisi `:ID` kolom. Sebagai gantinya, pemuat Neptunus secara otomatis menghasilkan ID untuk setiap hubungan.

  Sangat berguna untuk memberikan hubungan secara IDs eksplisit sehingga loader dapat melanjutkan pemuatan setelah kesalahan dalam data CSV telah diperbaiki, tanpa harus memuat ulang hubungan apa pun yang telah dimuat. Jika hubungan IDs belum ditetapkan secara eksplisit, loader tidak dapat melanjutkan pemuatan yang gagal jika ada file hubungan yang harus diperbaiki, dan sebagai gantinya harus memuat ulang semua hubungan.
+ `accessKey` — **[usang]** Access key ID dari IAM role dengan akses ke bucket S3 dan file data.

  Parameter `iamRoleArn` dianjurkan sebagai gantinya. 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).

  Untuk informasi lebih lanjut, lihat [Access key (access key ID dan secret access key)](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).
+ `secretKey`   –   **[usang]** Parameter `iamRoleArn` dianjurkan sebagai gantinya. 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).

  Untuk informasi lebih lanjut, lihat [Access key (access key ID dan secret access key)](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys).

### Pertimbangan khusus untuk memuat data OpenCypher
<a name="load-api-reference-load-parameters-opencypher"></a>
+ Saat memuat data OpenCypher dalam format CSV, parameter format harus diatur ke. `opencypher`
+ `updateSingleCardinalityProperties`Parameter tidak didukung untuk beban OpenCypher karena semua properti OpenCypher memiliki kardinalitas tunggal. Format beban OpenCypher tidak mendukung array, dan jika nilai ID muncul lebih dari sekali, itu diperlakukan sebagai duplikat atau kesalahan penyisipan (lihat di bawah).
+ Pemuat Neptunus menangani duplikat yang ditemuinya dalam data OpenCypher sebagai berikut:
  + Jika loader menemukan beberapa baris dengan ID node yang sama, mereka digabungkan menggunakan aturan berikut:
    + Semua label di baris ditambahkan ke node.
    + Untuk setiap properti, hanya satu dari nilai properti yang dimuat. Pemilihan yang akan dimuat adalah non-deterministik.
  + Jika loader menemukan beberapa baris dengan ID hubungan yang sama, hanya satu dari mereka yang dimuat. Pemilihan yang akan dimuat adalah non-deterministric.
  + Loader tidak pernah memperbarui nilai properti dari node atau relasi yang ada dalam database jika menemukan data beban yang memiliki ID dari node atau relasi yang ada. Namun, itu memuat label node dan properti yang tidak ada di node atau hubungan yang ada. 
+ Meskipun Anda tidak harus menetapkan IDs hubungan, biasanya itu ide yang bagus (lihat `userProvidedEdgeIds` parameter di atas). Tanpa hubungan eksplisit IDs, pemuat harus memuat ulang semua hubungan jika terjadi kesalahan dalam file hubungan, daripada melanjutkan pemuatan dari tempat gagal.

  Selain itu, jika data pemuatan tidak berisi hubungan eksplisit IDs, loader tidak memiliki cara untuk mendeteksi hubungan duplikat.

Berikut adalah contoh perintah beban OpenCypher:

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

Respons loader sama dengan normal. Contoh:

```
{
  "status" : "200 OK",
  "payload" : {
    "loadId" : "guid_as_string"
  }
}
```

## Sintaks Respons Loader Neptune
<a name="load-api-reference-load-return"></a>

```
{
    "status" : "200 OK",
    "payload" : {
        "loadId" : "guid_as_string"
    }
}
```

**200 OK**  
Pekerjaan pemuatan yang berhasil dimulai mengembalikan kode `200`.

# Kesalahan Loader Neptune
<a name="load-api-reference-load-errors"></a>

Ketika terjadi kesalahan, objek JSON dikembalikan dalam `BODY` respons. Objek `message` berisi deskripsi kesalahan.

**Kategori Kesalahan**
+ `Error 400` - kesalahan Sintaks mengembalikan kesalahan permintaan buruk HTTP `400`. Pesan ini menjelaskan kesalahan.
+ `Error 500` — Permintaan valid yang tidak dapat diproses mengembalikan HTTP `500` kesalahan server internal. Pesan ini menjelaskan kesalahan.

Berikut ini adalah kemungkinan pesan kesalahan dari loader dengan deskripsi kesalahannya.

**Pesan Kesalahan Loader**
+ `Couldn't find the AWS credential for iam_role_arn` (HTTP 400)

  Kredensialnya tidak ditemukan. Verifikasi kredensyal yang disediakan terhadap konsol atau output IAM. AWS CLI Pastikan Anda telah menambahkan peran IAM yang ditentukan `iamRoleArn` ke dalam cluster.
+ `S3 bucket not found for source` (HTTP 400)

  Bucket S3 tidak ada. Periksa nama bucket.
+ `The source source-uri does not exist/not reachable` (HTTP 400)

  File yang cocok tidak ditemukan di bucket S3.
+ `Unable to connect to S3 endpoint. Provided source = source-uri and region = aws-region` (HTTP 500)

  Tidak dapat terhubung ke Amazon S3. Wilayah harus sesuai dengan Wilayah klaster. Pastikan bahwa Anda memiliki VPC Endpoint. Untuk informasi tentang cara membuat VPC Endpoint, lihat [Membuat VPC Endpoint Amazon S3](bulk-load-data.md#bulk-load-prereqs-s3).
+ `Bucket is not in provided Region (aws-region)` (HTTP 400)

  Bucket harus berada di AWS Wilayah yang sama dengan instans DB Neptunus Anda.
+ `Unable to perform S3 list operation` (HTTP 400)

  Pengguna atau IAM role tidak memiliki izin `List` pada bucket atau folder. Periksa kebijakan atau daftar kontrol akses (ACL) di bucket.
+ `Start new load operation not permitted on a read replica instance` (HTTP 405)

  Memuat adalah operasi menulis. Coba lagi muat pada titik akhir read/write cluster.
+ `Failed to start load because of unknown error from S3` (HTTP 500)

  Amazon S3 mengembalikan kesalahan yang tidak diketahui. Hubungi [AWS Dukungan](https://aws.amazon.com/premiumsupport/).
+ `Invalid S3 access key` (HTTP 400)

  Access key tidak valid. Periksa kredensial yang disediakan.
+ `Invalid S3 secret key` (HTTP 400)

  Kunci rahasia tidak valid. Periksa kredensial yang disediakan.
+ `Max concurrent load limit breached` (HTTP 400)

  Jika permintaan pemuatan diajukan tanpa `"queueRequest" : "TRUE"`, dan pekerjaan pemuatan saat ini berjalan, permintaan akan gagal dengan kesalahan ini.
+ `Failed to start new load for the source "source name". Max load task queue size limit breached. Limit is 64` (HTTP 400)

  Neptune mendukung antrean sebanyak 64 pekerjaan loader sekaligus. Jika permintaan pemuatan tambahan diserahkan ke antrean ketika sudah berisi 64 pekerjaan, permintaan gagal dengan pesan ini.

# Contoh Neptune Loader
<a name="load-api-reference-load-examples"></a>

 Contoh ini menunjukkan cara menggunakan loader Neptunus untuk memuat data ke dalam database grafik Neptunus menggunakan format CSV Gremlin. Permintaan dikirim sebagai permintaan HTTP POST ke titik akhir loader Neptunus, dan badan permintaan berisi parameter yang diperlukan untuk menentukan sumber data, format, peran IAM, dan opsi konfigurasi lainnya. Respons termasuk ID beban, yang dapat digunakan untuk melacak kemajuan proses pemuatan data. 

**Example Permintaan**  
Berikut ini adalah permintaan yang dikirim melalui HTTP POST menggunakan perintah `curl`. Permintaan tersebut memuatkan file dalam format CSV Neptune. Untuk informasi selengkapnya, lihat [Format data muat Gremlin](bulk-load-tutorial-format-gremlin.md).  

```
curl -X POST \
    -H 'Content-Type: application/json' \
    https://your-neptune-endpoint:port/loader -d '
    {
      "source" : "s3://bucket-name/object-key-name",
      "format" : "csv",
      "iamRoleArn" : "ARN for the IAM role you are using",
      "region" : "region",
      "failOnError" : "FALSE",
      "parallelism" : "MEDIUM",
      "updateSingleCardinalityProperties" : "FALSE",
      "queueRequest" : "FALSE"
    }'
```

**Example Respons**  

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

# Neptunus Loader API Get-Status
<a name="load-api-reference-status"></a>

Mendapat status pekerjaan `loader`.

Untuk mendapatkan status pemuatan, Anda harus mengirim permintaan `GET` HTTP ke titik akhir `https://your-neptune-endpoint:port/loader`. Untuk mendapatkan status permintaan pemuatan tertentu, Anda harus menyertakan `loadId` sebagai parameter URL, atau menambahkan `loadId` ke jalur URL.

Neptune hanya melacak 1.024 pekerjaan pemuatan massal terbaru, dan hanya menyimpan 10.000 rincian kesalahan terakhir per pekerjaan. 

Lihat [Pesan Kesalahan dan Umpan Neptune Loader](loader-message.md) untuk daftar pesan kesalahan dan umpan yang dikembalikan oleh loader jika terjadi kesalahan.

**Contents**
+ [Permintaan Neptune Loader Get-Status](load-api-reference-status-requests.md)
  + [Sintaks Get-Status permintaan loader](load-api-reference-status-requests.md#load-api-reference-status-request-syntax)
  + [Parameter permintaan Neptune Loader Get-Status](load-api-reference-status-requests.md#load-api-reference-status-parameters)
+ [Tanggapan Neptunus Loader Get-Status](load-api-reference-status-response.md)
  + [Tata letak JSON Respons Pemuat Neptunus Get-Status](load-api-reference-status-response.md#load-api-reference-status-response-layout)
  + [Neptunus Loader Get-Status `overallStatus` dan objek respons `failedFeeds`](load-api-reference-status-response.md#load-api-reference-status-response-objects)
  + [Objek respons Get-Status `errors` Neptunus Loader](load-api-reference-status-response.md#load-api-reference-status-errors)
  + [Objek respons Get-Status `errorLogs` Neptunus Loader](load-api-reference-status-response.md#load-api-reference-error-logs)
+ [Contoh Pemuat Get-Status Neptunus](load-api-reference-status-examples.md)
  + [Contoh permintaan untuk status pemuatan](load-api-reference-status-examples.md#load-api-reference-status-examples-status-request)
  + [Contoh permintaan untuk loadIds](load-api-reference-status-examples.md#load-api-reference-status-examples-loadId-request)
  + [Contoh permintaan untuk status terperinci](load-api-reference-status-examples.md#load-api-reference-status-examples-details-request)
+ [Contoh Neptunus Loader Get-Status `errorLogs`](load-api-reference-error-logs-examples.md)
  + [Contoh respons status rinci ketika terjadi kesalahan](load-api-reference-error-logs-examples.md#load-api-reference-status-examples-details-request-errors)
  + [Contoh kesalahan `Data prefetch task interrupted`](load-api-reference-error-logs-examples.md#load-api-reference-status-examples-task-interrupted)

# Permintaan Neptune Loader Get-Status
<a name="load-api-reference-status-requests"></a>

## Sintaks Get-Status permintaan loader
<a name="load-api-reference-status-request-syntax"></a>

```
GET https://your-neptune-endpoint:port/loader?loadId=loadId
```

```
GET https://your-neptune-endpoint:port/loader/loadId
```

```
GET https://your-neptune-endpoint:port/loader
```

## Parameter permintaan Neptune Loader Get-Status
<a name="load-api-reference-status-parameters"></a>
+ **`loadId`**— ID tugas pemuatan. Jika Anda tidak menentukan`loadId`, daftar beban IDs dikembalikan.
+ **`details`**— Sertakan detail di luar status keseluruhan.

  *Nilai yang diizinkan*: `TRUE`, `FALSE`.

  *Nilai default*:`FALSE`.
+ **`errors`**— Sertakan daftar kesalahan.

  *Nilai yang diizinkan*: `TRUE`, `FALSE`.

  *Nilai default*:`FALSE`.

  Daftar kesalahan dipecah dalam beberapa bagian. Parameter `page` dan `errorsPerPage` memungkinkan Anda untuk melalui semua kesalahan dalam beberapa bagian.
+ **`page`**— Nomor halaman kesalahan. Hanya berlaku dengan parameter `errors` diatur ke `TRUE`.

  *Nilai yang diizinkan*: Bilangan bulat positif.

  *Nilai default*: 1.
+ **`errorsPerPage`**— Jumlah kesalahan per setiap halaman. Hanya berlaku dengan parameter `errors` diatur ke `TRUE`.

  *Nilai yang diizinkan*: Bilangan bulat positif.

  *Nilai default*: 10.
+ **`limit`**— Jumlah id pemuatan untuk dicantumkan. Hanya berlaku saat meminta daftar pemuatan IDs dengan mengirimkan `GET` permintaan tanpa `loadId` ditentukan.

  *Nilai yang diizinkan*: Bilangan bulat positif dari 1 hingga 100.

  *Nilai default*: 100.
+ **`includeQueuedLoads`**- Parameter opsional yang dapat digunakan untuk mengecualikan beban IDs permintaan beban antrian ketika daftar beban IDs diminta.

  Secara default, beban IDs semua pekerjaan pemuatan dengan status `LOAD_IN_QUEUE` termasuk dalam daftar seperti itu. Mereka muncul sebelum beban IDs pekerjaan lain, diurutkan berdasarkan waktu mereka ditambahkan ke antrian dari yang terbaru hingga yang paling awal.

  *Nilai yang diizinkan*: `TRUE`, `FALSE`.

  *Nilai default*:`TRUE`.

# Tanggapan Neptunus Loader Get-Status
<a name="load-api-reference-status-response"></a>

 Contoh respons berikut dari Get-Status Neptunus API menjelaskan keseluruhan struktur respons, menjelaskan berbagai bidang dan tipe datanya, serta penanganan kesalahan dan detail log kesalahan. 

## Tata letak JSON Respons Pemuat Neptunus Get-Status
<a name="load-api-reference-status-response-layout"></a>

Tata letak umum respon status loader adalah sebagai berikut:

```
{
    "status" : "200 OK",
    "payload" : {
        "feedCount" : [
            {
                "LOAD_FAILED" : number
            }
        ],
        "overallStatus" : {
            "fullUri" : "s3://bucket/key",
            "runNumber" : number,
            "retryNumber" : number,
            "status" : "string",
            "totalTimeSpent" : number,
            "startTime" : number,
            "totalRecords" : number,
            "totalDuplicates" : number,
            "parsingErrors" : number,
            "datatypeMismatchErrors" : number,
            "insertErrors" : number,
        },
        "failedFeeds" : [
            {
                "fullUri" : "s3://bucket/key",
                "runNumber" : number,
                "retryNumber" : number,
                "status" : "string",
                "totalTimeSpent" : number,
                "startTime" : number,
                "totalRecords" : number,
                "totalDuplicates" : number,
                "parsingErrors" : number,
                "datatypeMismatchErrors" : number,
                "insertErrors" : number,
            }
        ],
        "errors" : {
            "startIndex" : number,
            "endIndex" : number,
            "loadId" : "string,
            "errorLogs" : [ ]
        }
    }
}
```

## Neptunus Loader Get-Status `overallStatus` dan objek respons `failedFeeds`
<a name="load-api-reference-status-response-objects"></a>

Respons yang mungkin dikembalikan untuk setiap umpan gagal, termasuk deskripsi kesalahan, adalah sama seperti untuk objek `overallStatus` dalam respons `Get-Status`.

Bidang berikut ini muncul di objek `overallStatus` untuk semua pemuatan, dan objek `failedFeeds` untuk setiap umpan gagal:
+ **`fullUri` **— URI dari file atau file-file yang akan dimuat.

  *Jenis:* *string*

  *Format*:`s3://bucket/key`.
+ **`runNumber`**— Jumlah run dari pemuatan atau umpan ini. Ini bertambah ketika pemuatan dimulai ulang.

  *Jenis:* *panjang yang tidak diberi tanda*.
+ **`retryNumber`**— Jumlah retry dari pemuatan atau umpan ini. Ini bertambah ketika loader secara otomatis mencoba ulang umpan atau pemuatan.

  *Jenis:* *panjang yang tidak diberi tanda*.
+ **`status`**— Status yang dikembalikan dari pemuatan atau umpan. `LOAD_COMPLETED` menunjukkan pemuatan yang berhasil tanpa masalah. Untuk daftar pesan status beban lainnya, lihat. [Pesan Kesalahan dan Umpan Neptune Loader](loader-message.md)

  *Jenis:* *string*.
+ **`totalTimeSpent`**— Waktu, dalam hitungan detik, yang dihabiskan untuk mengurai dan memasukkan data untuk pemuatan atau umpan. Ini tidak termasuk waktu yang dihabiskan untuk mengambil daftar file sumber.

  *Jenis:* *panjang yang tidak diberi tanda*.
+ **`totalRecords`**— Jumlah catatan yang dimuat atau dicoba untuk dimuat.

  *Jenis:* *panjang yang tidak diberi tanda*.

  Perhatikan bahwa saat memuat dari file CSV, jumlah catatan tidak mengacu pada jumlah baris yang dimuat, melainkan jumlah catatan individual di baris tersebut. Misalnya, ambil file CSV kecil seperti ini:

  ```
  ~id,~label,name,team
  'P-1','Player','Stokes','England'
  ```

  Neptunus akan menganggap file ini berisi 3 catatan, yaitu:

  ```
  P-1  label Player
  P-1  name  Stokes
  P-1  team  England
  ```
+ **`totalDuplicates`**— Jumlah catatan duplikat yang ditemui.

  *Jenis:* *panjang yang tidak diberi tanda*.

  Seperti dalam kasus `totalRecords` penghitungan, nilai ini berisi jumlah catatan duplikat individu dalam file CSV, bukan jumlah baris duplikat. Ambil file CSV kecil ini, misalnya:

  ```
  ~id,~label,name,team
  P-2,Player,Kohli,India
  P-2,Player,Kohli,India
  ```

  Status yang dikembalikan setelah memuatnya akan terlihat seperti ini, melaporkan 6 total catatan, 3 di antaranya adalah duplikat:

  ```
  {
    "status": "200 OK",
    "payload": {
      "feedCount": [
        {
          "LOAD_COMPLETED": 1
        }
      ],
      "overallStatus": {
        "fullUri": "(the URI of the CSV file)",
        "runNumber": 1,
        "retryNumber": 0,
        "status": "LOAD_COMPLETED",
        "totalTimeSpent": 3,
        "startTime": 1662131463,
        "totalRecords": 6,
        "totalDuplicates": 3,
        "parsingErrors": 0,
        "datatypeMismatchErrors": 0,
        "insertErrors": 0
      }
    }
  }
  ```

  Untuk pemuatan OpenCypher, duplikat dihitung ketika:
  + Loader mendeteksi bahwa baris dalam file node memiliki ID tanpa ruang ID yang sama dengan nilai ID lain tanpa ruang ID, baik di baris lain atau milik node yang ada.
  + Loader mendeteksi bahwa baris dalam file node memiliki ID dengan ruang ID yang sama dengan nilai ID lain dengan ruang ID, baik di baris lain atau milik node yang ada.

  Lihat [Pertimbangan khusus untuk memuat data OpenCypher](load-api-reference-load.md#load-api-reference-load-parameters-opencypher).
+ **`parsingErrors`**— Jumlah kesalahan penguraian yang ditemui.

  *Jenis:* *panjang yang tidak diberi tanda*.
+ **`datatypeMismatchErrors`**— Jumlah catatan dengan tipe data yang tidak cocok dengan data yang diberikan.

  *Jenis:* *panjang yang tidak diberi tanda*.
+ **`insertErrors`**— Jumlah catatan yang tidak dapat dimasukkan karena kesalahan.

  *Jenis:* *panjang yang tidak diberi tanda*.

## Objek respons Get-Status `errors` Neptunus Loader
<a name="load-api-reference-status-errors"></a>

Kesalahan termasuk ke dalam kategori berikut:
+ **`Error 400`**   –   `loadId` yang tidak valid mengembalikan kesalahan permintaan buruk `400` HTTP. Pesan ini menjelaskan kesalahan.
+ **`Error 500`** — Permintaan valid yang tidak dapat diproses mengembalikan HTTP `500` kesalahan server internal. Pesan ini menjelaskan kesalahan.

Lihat [Pesan Kesalahan dan Umpan Neptune Loader](loader-message.md) untuk daftar pesan kesalahan dan umpan yang dikembalikan oleh loader jika terjadi kesalahan.

Ketika terjadi kesalahan, sebuah objek `errors` JSON dikembalikan dalam `BODY` respons, dengan kolom berikut:
+ **`startIndex`** — Indeks kesalahan pertama yang disertakan.

  *Jenis:* *panjang yang tidak diberi tanda*.
+ **`endIndex`** — Indeks kesalahan terakhir yang disertakan.

  *Jenis:* *panjang yang tidak diberi tanda*.
+ **`loadId`** — ID pemuatan. Anda dapat menggunakan ID ini untuk mencetak kesalahan untuk pemuatan dengan menetapkan parameter `errors` ke `TRUE`.

  *Jenis:* *string*.
+ **`errorLogs`** — Daftar kesalahan.

  *Jenis:* *daftar*.

## Objek respons Get-Status `errorLogs` Neptunus Loader
<a name="load-api-reference-error-logs"></a>

Objek `errorLogs` di bawah `errors` dalam respons Get-Status loader berisi objek yang menggambarkan setiap kesalahan menggunakan bidang berikut:
+ **`errorCode`** — Mengidentifikasi sifat kesalahan.

  Status ini dapat berupa salah satu dari nilai berikut:
  + `PARSING_ERROR`
  + `S3_ACCESS_DENIED_ERROR`
  + `FROM_OR_TO_VERTEX_ARE_MISSING`
  + `ID_ASSIGNED_TO_MULTIPLE_EDGES`
  + `SINGLE_CARDINALITY_VIOLATION`
  + `FILE_MODIFICATION_OR_DELETION_ERROR`
  + `OUT_OF_MEMORY_ERROR`
  + `INTERNAL_ERROR` (dikembalikan ketika loader massal tidak dapat menentukan jenis kesalahan).
+ **`errorMessage`** — Sebuah pesan yang menjelaskan kesalahan.

  Ini bisa berupa pesan umum yang terkait dengan kode kesalahan atau pesan tertentu yang berisi detail, misalnya tentang from/to simpul yang hilang atau tentang kesalahan penguraian.
+ **`fileName`** — Nama umpan.
+ **`recordNum`** — Dalam kasus kesalahan penguraian, ini adalah nomor catatan dalam file catatan yang tidak dapat diurai. Hal ini diatur ke nol jika nomor catatan tidak berlaku untuk kesalahan, atau jika tidak dapat ditentukan.

Sebagai contoh, loader massal akan menghasilkan kesalahan penguraian jika mengalami baris rusak seperti berikut dalam file `nquads` RDF:

```
<http://base#subject> |http://base#predicate> <http://base#true> .
```

Seperti yang Anda lihat, `http` yang kedua pada baris di atas harus didahului oleh `<` ketimbang `|`. Objek kesalahan yang dihasilkan di bawah `errorLogs` dalam respon status akan terlihat seperti ini:

```
{
    "errorCode" : "PARSING_ERROR",
    "errorMessage" : "Expected '<', found: |",
    "fileName" : "s3://bucket/key",
    "recordNum" : 12345
},
```

# Contoh Pemuat Get-Status Neptunus
<a name="load-api-reference-status-examples"></a>

 Contoh berikut menampilkan penggunaan API Get-status loader Neptunus, yang memungkinkan Anda mengambil informasi tentang status pemuatan data Anda ke dalam database grafik Amazon Neptunus. Contoh-contoh ini mencakup tiga skenario utama: mengambil status beban tertentu, mencantumkan beban yang tersedia IDs, dan meminta informasi status terperinci untuk beban tertentu. 

## Contoh permintaan untuk status pemuatan
<a name="load-api-reference-status-examples-status-request"></a>

Berikut ini adalah permintaan yang dikirim melalui HTTP `GET` menggunakan perintah `curl`.

```
curl -X GET 'https://your-neptune-endpoint:port/loader/loadId (a UUID)'
```

**Example Respons**  

```
{
    "status" : "200 OK",
    "payload" : {
        "feedCount" : [
            {
                "LOAD_FAILED" : 1
            }
        ],
        "overallStatus" : {
            "datatypeMismatchErrors" : 0,
            "fullUri" : "s3://bucket/key",
            "insertErrors" : 0,
            "parsingErrors" : 5,
            "retryNumber" : 0,
            "runNumber" : 1,
            "status" : "LOAD_FAILED",
            "totalDuplicates" : 0,
            "totalRecords" : 5,
            "totalTimeSpent" : 3.0
        }
    }
}
```

## Contoh permintaan untuk loadIds
<a name="load-api-reference-status-examples-loadId-request"></a>

Berikut ini adalah permintaan yang dikirim melalui HTTP `GET` menggunakan perintah `curl`.

```
curl -X GET 'https://your-neptune-endpoint:port/loader?limit=3'
```

**Example Respons**  

```
{
    "status" : "200 OK",
    "payload" : {
         "loadIds" : [
            "a2c0ce44-a44b-4517-8cd4-1dc144a8e5b5",
            "09683a01-6f37-4774-bb1b-5620d87f1931",
            "58085eb8-ceb4-4029-a3dc-3840969826b9"
        ]
    }
}
```

## Contoh permintaan untuk status terperinci
<a name="load-api-reference-status-examples-details-request"></a>

Berikut ini adalah permintaan yang dikirim melalui HTTP `GET` menggunakan perintah `curl`.

```
curl -X GET 'https://your-neptune-endpoint:port/loader/loadId (a UUID)?details=true'
```

**Example Respons**  

```
{
    "status" : "200 OK",
    "payload" : {
        "failedFeeds" : [
            {
                "datatypeMismatchErrors" : 0,
                "fullUri" : "s3://bucket/key",
                "insertErrors" : 0,
                "parsingErrors" : 5,
                "retryNumber" : 0,
                "runNumber" : 1,
                "status" : "LOAD_FAILED",
                "totalDuplicates" : 0,
                "totalRecords" : 5,
                "totalTimeSpent" : 3.0
            }
        ],
        "feedCount" : [
            {
                "LOAD_FAILED" : 1
            }
        ],
        "overallStatus" : {
            "datatypeMismatchErrors" : 0,
            "fullUri" : "s3://bucket/key",
            "insertErrors" : 0,
            "parsingErrors" : 5,
            "retryNumber" : 0,
            "runNumber" : 1,
            "status" : "LOAD_FAILED",
            "totalDuplicates" : 0,
            "totalRecords" : 5,
            "totalTimeSpent" : 3.0
        }
    }
}
```

# Contoh Neptunus Loader Get-Status `errorLogs`
<a name="load-api-reference-error-logs-examples"></a>

 Contoh berikut menampilkan respons status terperinci dari pemuat Neptunus saat terjadi kesalahan selama proses pemuatan data. Contoh menggambarkan struktur respons, termasuk informasi tentang feed yang gagal, status keseluruhan, dan log kesalahan terperinci. 

## Contoh respons status rinci ketika terjadi kesalahan
<a name="load-api-reference-status-examples-details-request-errors"></a>

Ini adalah permintaan yang dikirim melalui HTTP `GET` menggunakan `curl`:

```
curl -X GET 'https://your-neptune-endpoint:port/loader/0a237328-afd5-4574-a0bc-c29ce5f54802?details=true&errors=true&page=1&errorsPerPage=3'
```

**Example dari respons terperinci ketika terjadi kesalahan**  
Ini adalah contoh dari respon yang mungkin Anda dapatkan dari kueri di atas, dengan objek `errorLogs` yang mencantumkan kesalahan pemuatan yang ditemui:  

```
{
    "status" : "200 OK",
    "payload" : {
        "failedFeeds" : [
            {
                "datatypeMismatchErrors" : 0,
                "fullUri" : "s3://bucket/key",
                "insertErrors" : 0,
                "parsingErrors" : 5,
                "retryNumber" : 0,
                "runNumber" : 1,
                "status" : "LOAD_FAILED",
                "totalDuplicates" : 0,
                "totalRecords" : 5,
                "totalTimeSpent" : 3.0
            }
        ],
        "feedCount" : [
            {
                "LOAD_FAILED" : 1
            }
        ],
        "overallStatus" : {
            "datatypeMismatchErrors" : 0,
            "fullUri" : "s3://bucket/key",
            "insertErrors" : 0,
            "parsingErrors" : 5,
            "retryNumber" : 0,
            "runNumber" : 1,
            "status" : "LOAD_FAILED",
            "totalDuplicates" : 0,
            "totalRecords" : 5,
            "totalTimeSpent" : 3.0
        },
        "errors" : {
            "endIndex" : 3,
            "errorLogs" : [
                {
                    "errorCode" : "PARSING_ERROR",
                    "errorMessage" : "Expected '<', found: |",
                    "fileName" : "s3://bucket/key",
                    "recordNum" : 1
                },
                {
                    "errorCode" : "PARSING_ERROR",
                    "errorMessage" : "Expected '<', found: |",
                    "fileName" : "s3://bucket/key",
                    "recordNum" : 2
                },
                {
                    "errorCode" : "PARSING_ERROR",
                    "errorMessage" : "Expected '<', found: |",
                    "fileName" : "s3://bucket/key",
                    "recordNum" : 3
                }
            ],
            "loadId" : "0a237328-afd5-4574-a0bc-c29ce5f54802",
            "startIndex" : 1
        }
    }
}
```

## Contoh kesalahan `Data prefetch task interrupted`
<a name="load-api-reference-status-examples-task-interrupted"></a>

Kadang-kadang ketika Anda mendapatkan status `LOAD_FAILED` dan kemudian meminta informasi lebih rinci, kesalahan yang dikembalikan mungkin berupa `PARSING_ERROR` dengan pesan `Data prefetch task interrupted`, seperti ini:

```
"errorLogs" : [
    {
        "errorCode" : "PARSING_ERROR",
        "errorMessage" : "Data prefetch task interrupted: Data prefetch task for 11467 failed",
        "fileName" : "s3://amzn-s3-demo-bucket/some-source-file",
        "recordNum" : 0
    }
]
```

Kesalahan ini terjadi ketika ada gangguan sementara dalam proses pemuatan data yang biasanya tidak disebabkan oleh permintaan atau data Anda. Biasanya dapat diselesaikan hanya dengan menjalankan permintaan upload massal lagi. Jika Anda menggunakan pengaturan default, yaitu `"mode":"AUTO"`, dan `"failOnError":"TRUE"`, loader melewatkan file yang sudah berhasil dimuat dan melanjutkan pemuatan file yang belum dimuat saat terjadi gangguan.

# Pembatalan Pekerjaan Neptune Loader
<a name="load-api-reference-cancel"></a>

Membatalkan pekerjaan pemuatan.

Untuk memuat data, Anda harus mengirim permintaan `DELETE` HTTP ke titik akhir `https://your-neptune-endpoint:port/loader`. `loadId` dapat ditambahkan ke jalur URL `/loader`, atau disertakan sebagai variabel dalam URL.

## Sintaks permintaan Batalkan Pekerjaan
<a name="load-api-reference-cancel-syntax"></a>

```
DELETE https://your-neptune-endpoint:port/loader?loadId=loadId
```

```
DELETE https://your-neptune-endpoint:port/loader/loadId
```

## Parameter Permintaan Batalkan Pekerjaan
<a name="load-api-reference-cancel-parameters"></a>

**loadId**  
ID tugas pemuatan.

## Sintaks Respons Batalkan Pekerjaan
<a name="load-api-reference-cancel-parameters-response"></a>

```
no response body
```

**200 OK**  
Pekerjaan pemuatan yang berhasil dihapus mengembalikan kode `200`.

## Kesalahan Batalkan Pekerjaan
<a name="load-api-reference-cancel-parameters-errors"></a>

Ketika terjadi kesalahan, objek JSON dikembalikan dalam `BODY` respons. Objek `message` berisi deskripsi kesalahan.

**Kategori Kesalahan**
+ **`Error 400`**   –   `loadId` yang tidak valid mengembalikan kesalahan permintaan buruk `400` HTTP. Pesan ini menjelaskan kesalahan.
+ **`Error 500`** — Permintaan valid yang tidak dapat diproses mengembalikan HTTP `500` kesalahan server internal. Pesan ini menjelaskan kesalahan.

## Pesan Kesalahan Batalkan Pekerjaan
<a name="load-api-reference-cancel-parameters-errors-messages"></a>

Berikut ini adalah kemungkinan pesan kesalahan dari API pembatalan dengan deskripsi kesalahannya.
+ `The load with id = load_id does not exist or not active` (HTTP 404) — Pemuatan tidak ditemukan. Periksa nilai dari Parameter `id`.
+ `Load cancellation is not permitted on a read replica instance.` (HTTP 405) - Pemuatan adalah operasi menulis. Coba lagi muat pada titik akhir read/write cluster. 

## Contoh Pembatalan Pekerjaan
<a name="load-api-reference-cancel-examples"></a>

**Example Permintaan**  
Berikut ini adalah permintaan yang dikirim melalui HTTP `DELETE` menggunakan perintah `curl`.  

```
curl -X DELETE 'https://your-neptune-endpoint:port/loader/0a237328-afd5-4574-a0bc-c29ce5f54802'
```

# Menggunakan AWS Database Migration Service untuk memuat data ke Amazon Neptunus dari penyimpanan data yang berbeda
<a name="dms-neptune"></a>

AWS Database Migration Service (AWS DMS) dapat memuat data ke Neptunus [dari basis data sumber yang didukung](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) dengan cepat dan aman. Database sumber tetap beroperasi penuh selama migrasi, meminimalkan waktu henti untuk aplikasi yang mengandalkannya.

Anda dapat menemukan informasi AWS DMS terperinci tentang [Panduan AWS Database Migration Service Pengguna](https://docs.aws.amazon.com/dms/latest/userguide/) dan [Referensi AWS Database Migration Service API](https://docs.aws.amazon.com/dms/latest/APIReference/). Secara khusus, Anda dapat mengetahui cara menyiapkan klaster Neptune sebagai target migrasi di [Menggunakan Amazon Neptune sebagai Target untuk AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Neptune.html).

Berikut adalah beberapa prasyarat untuk mengimpor data ke Neptune menggunakan AWS DMS:
+ Anda perlu membuat objek pemetaan AWS DMS tabel untuk menentukan bagaimana data harus diekstraksi dari database sumber (lihat [Menentukan pemilihan tabel dan transformasi dengan pemetaan tabel menggunakan JSON](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.html#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation) di Userguide untuk detailnya). AWS DMS Objek konfigurasi pemetaan tabel ini menentukan tabel yang harus dibaca dan dalam urutan apa, dan bagaimana kolom mereka diberi nama. Hal ini juga dapat menyaring baris yang disalin dan memberikan transformasi nilai sederhana seperti mengonversi ke huruf kecil atau pembulatan.
+ Anda akan perlu untuk membuat `GraphMappingConfig` Neptune untuk menentukan bagaimana data yang diekstrak dari database sumber harus dimuat ke Neptune. Untuk data RDF (kueri menggunakan SPARQL), `GraphMappingConfig` ditulis dalam bahasa pemetaan [R2RML](https://www.w3.org/TR/r2rml/) standar W3. Untuk data grafik properti (kueri menggunakan Gremlin), `GraphMappingConfig` adalah objek JSON, dijelaskan dalam [GraphMappingConfig Tata Letak untuk Property-Graph/Data Gremlin](dms-neptune-graph-mapping.md#dms-neptune-graph-mapping-gremlin).
+ Anda harus menggunakan AWS DMS untuk membuat instance replikasi di VPC yang sama dengan cluster DB Neptunus Anda, untuk memediasi transfer data.
+ Anda juga akan membutuhkan bucket Amazon S3 untuk digunakan sebagai penyimpanan menengah untuk penahapan data migrasi.

# Membuat Neptunus GraphMappingConfig
<a name="dms-neptune-graph-mapping"></a>

`GraphMappingConfig` yang Anda buat menentukan bagaimana data diekstrak dari penyimpanan sumber data harus dimuat ke dalam klaster DB Neptune. Formatnya berbeda tergantung apakah itu dimaksudkan untuk memuat data RDF atau untuk memuat data properti-grafik.

Untuk data RDF, Anda dapat menggunakan bahasa W3 [R2RML](https://www.w3.org/TR/r2rml/) untuk pemetaan data relasional ke RDF.

Jika Anda memuat data properti-grafik yang akan bertanya menggunakan Gremlin, Anda membuat objek JSON untuk `GraphMappingConfig`.

## GraphMappingConfig Tata Letak untuk RDF/SPARQL Data
<a name="dms-neptune-graph-mapping-sparql"></a>

Jika Anda memuat data RDF yang akan dikueri menggunakan SPARQL, Anda menulis `GraphMappingConfig` di [R2RML](https://www.w3.org/TR/r2rml/). `R2RML` adalah bahasa W3 standar untuk pemetaan data relasional untuk RDF. Inilah satu contohnya:

```
@prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix ex: <http://example.com/ns#> .

<#TriplesMap1>
    rr:logicalTable [ rr:tableName "nodes" ];
    rr:subjectMap [
        rr:template "http://data.example.com/employee/{id}";
        rr:class ex:Employee;
    ];
    rr:predicateObjectMap [
        rr:predicate ex:name;
        rr:objectMap [ rr:column "label" ];
    ] .
```

Inilah contoh lainnya:

```
@prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix ex: <http://example.com/#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<#TriplesMap2>
    rr:logicalTable [ rr:tableName "Student" ];
    rr:subjectMap   [ rr:template "http://example.com/{ID}{Name}";
                      rr:class foaf:Person ];
    rr:predicateObjectMap [
        rr:predicate ex:id ;
        rr:objectMap  [ rr:column "ID";
                        rr:datatype xsd:integer ]
    ];
    rr:predicateObjectMap [
        rr:predicate foaf:name ;
        rr:objectMap  [ rr:column "Name" ]
    ] .
```

Rekomendasi W3 di [R2RLL: Pemetaan Bahasa RDB ke RDF](https://www.w3.org/TR/r2rml/) menyediakan rincian bahasa.

## GraphMappingConfig Tata Letak untuk Property-Graph/Data Gremlin
<a name="dms-neptune-graph-mapping-gremlin"></a>

`GraphMappingConfig` yang komparabel untuk data properti-grafik adalah objek JSON yang menyediakan aturan pemetaan untuk setiap entitas grafik yang akan dihasilkan dari data sumber. Templat berikut menunjukkan seperti apa penampakan setiap aturan dalam objek ini.

```
{
  "rules": [
    {
      "rule_id": "(an identifier for this rule)",
      "rule_name": "(a name for this rule)",
      "table_name": "(the name of the table or view being loaded)",
      "vertex_definitions": [
        {
          "vertex_id_template": "{col1}",
          "vertex_label": "(the vertex to create)",
          "vertex_definition_id": "(an identifier for this vertex)",
          "vertex_properties": [
            {
              "property_name": "(name of the property)",
              "property_value_template": "{col2} or text",
              "property_value_type": "(data type of the property)"
            }
          ]
        }
      ]
    },
    {
      "rule_id": "(an identifier for this rule)",
      "rule_name": "(a name for this rule)",
      "table_name": "(the name of the table or view being loaded)",
      "edge_definitions": [
        {
          "from_vertex": {
            "vertex_id_template": "{col1}",
            "vertex_definition_id": "(an identifier for the vertex referenced above)"
          },
          "to_vertex": {
            "vertex_id_template": "{col3}",
            "vertex_definition_id": "(an identifier for the vertex referenced above)"
          },
          "edge_id_template": {
            "label": "(the edge label to add)",
            "template": "{col1}_{col3}"
          },
          "edge_properties":[
            {
              "property_name": "(the property to add)",
              "property_value_template": "{col4} or text",
              "property_value_type": "(data type like String, int, double)"
            }
          ]
        }
      ]
    }
  ]
}
```

Perhatikan bahwa kehadiran label vertex menyiratkan bahwa vertex sedang dibuat di sini, sedangkan ketiadaannya menyiratkan bahwa vertex dibuat oleh sumber yang berbeda, dan definisi ini hanya menambahkan properti vertex.

Berikut adalah contoh aturan untuk catatan karyawan:

```
{
  "rules": [
    {
      "rule_id": "1",
      "rule_name": "vertex_mapping_rule_from_nodes",
      "table_name": "nodes",
      "vertex_definitions": [
        {
          "vertex_id_template": "{emp_id}",
          "vertex_label": "employee",
          "vertex_definition_id": "1",
          "vertex_properties": [
            {
              "property_name": "name",
              "property_value_template": "{emp_name}",
              "property_value_type": "String"
            }
          ]
        }
      ]
    },
    {
      "rule_id": "2",
      "rule_name": "edge_mapping_rule_from_emp",
      "table_name": "nodes",
      "edge_definitions": [
        {
          "from_vertex": {
            "vertex_id_template": "{emp_id}",
            "vertex_definition_id": "1"
          },
          "to_vertex": {
            "vertex_id_template": "{mgr_id}",
            "vertex_definition_id": "1"
          },
          "edge_id_template": {
            "label": "reportsTo",
            "template": "{emp_id}_{mgr_id}"
          },
          "edge_properties":[
            {
              "property_name": "team",
              "property_value_template": "{team}",
              "property_value_type": "String"
            }
          ]
        }
      ]
    }
  ]
}
```

# Membuat tugas AWS DMS replikasi dengan Neptunus sebagai target
<a name="dms-neptune-replication"></a>

Setelah Anda membuat pemetaan tabel dan konfigurasi pemetaan grafik Anda, gunakan proses berikut untuk memuat data dari penyimpanan sumber ke Neptune. Konsultasikan AWS DMS dokumentasi untuk detail lebih lanjut tentang pertanyaan tersebut. APIs 

## Buat contoh AWS DMS replikasi
<a name="dms-neptune-replication-instance"></a>

Buat instance AWS DMS replikasi di VPC tempat cluster DB Neptunus Anda berjalan ([lihat Bekerja dengan Instans Replikasi DMS dan di AWS Panduan](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html) Pengguna). [CreateReplicationInstance](https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationInstance.html) AWS DMS Anda dapat menggunakan AWS CLI perintah seperti berikut untuk melakukannya:

```
aws dms create-replication-instance \
    --replication-instance-identifier (the replication instance identifier) \
    --replication-instance-class (the size and capacity of the instance, like 'dms.t2.medium') \
    --allocated-storage (the number of gigabytes to allocate for the instance initially) \
    --engine-version (the DMS engine version that the instance should use) \
    --vpc-security-group-ids (the security group to be used with the instance)
```

## Buat AWS DMS titik akhir untuk database sumber
<a name="dms-neptune-source-endpoint"></a>

Langkah selanjutnya adalah membuat AWS DMS titik akhir untuk penyimpanan data sumber Anda. Anda dapat menggunakan AWS DMS [CreateEndpoint](https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateEndpoint.html)API AWS CLI seperti ini:

```
aws dms create-endpoint \
    --endpoint-identifier (source endpoint identifier) \
    --endpoint-type source \
    --engine-name (name of source database engine) \
    --username (user name for database login) \
    --password (password for login) \
    --server-name (name of the server) \
    --port (port number) \
    --database-name (database name)
```

## Siapkan bucket Amazon S3 untuk Neptunus untuk digunakan untuk mementaskan data
<a name="dms-neptune-s3-staging-bucket"></a>

Jika Anda tidak memiliki bucket Amazon S3 yang dapat Anda gunakan untuk penahapan data, buat satu bucket seperti yang dijelaskan di [Membuat Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) di Panduan Memulai Amazon S3, atau [Bagaimana Cara Membuat Bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) di Panduan Pengguna Konsol.

Anda harus membuat kebijakan IAM yang memberikan izin `GetObject`, `PutObject`, `DeleteObject` dan `ListObject` ke bucket jika Anda belum memilikinya:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ListObjectsInBucket",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ]
    },
    {
      "Sid": "AllObjectActions",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ]
    }
  ]
}
```

------

Jika klaster DB Neptune Anda memiliki autentikasi IAM diaktifkan, Anda juga akan perlu untuk menyertakan kebijakan berikut:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": "neptune-db:*",
      "Resource": "arn:aws:neptune-db:us-east-1:111122223333:cluster-resource-id/*"
    }
  ]
}
```

------

Buat IAM role sebagai dokumen kepercayaan untuk dilampiri kebijakan:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "dms.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    },
    {
      "Sid": "neptune",
      "Effect": "Allow",
      "Principal": {
        "Service": "rds.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

Setelah melampirkan kebijakan ke peran, lampirkan peran ke klaster DB Neptune Anda. Ini akan memungkinkan AWS DMS untuk menggunakan bucket untuk mementaskan data yang sedang dimuat.

## Buat titik akhir Amazon S3 di VPC Neptunus
<a name="dms-neptune-s3-endpoint"></a>

Sekarang buat titik akhir VPC Gateway untuk bucket Amazon S3 perantara Anda, di VPC tempat klaster Neptune Anda berada. Anda dapat menggunakan Konsol Manajemen AWS atau AWS CLI untuk melakukan ini, seperti yang dijelaskan dalam [Membuat titik akhir gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-gateway.html#create-gateway-endpoint).

## Buat titik akhir AWS DMS target untuk Neptunus
<a name="dms-neptune-target-endpoint"></a>

Buat AWS DMS titik akhir untuk cluster DB Neptunus target Anda. Anda dapat menggunakan AWS DMS [CreateEndpoint](https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateEndpoint.html)API dengan `NeptuneSettings` parameter seperti ini::

```
aws dms create-endpoint \
    --endpoint-identifier (target endpoint identifier) \
    --endpoint-type target \
    --engine-name neptune \
    --server-name (name of the server) \
    --port (port number) \
    --neptune-settings '{ \
      "ServiceAccessRoleArn": "(ARN of the service access role)", \
      "S3BucketName": "(name of S3 bucket to use for staging files when migrating)", \
      "S3BucketFolder": "(name of the folder to use in that S3 bucket)", \
      "ErrorRetryDuration": (number of milliseconds to wait between bulk-load retries), \
      "MaxRetryCount": (the maximum number of times to retry a failing bulk-load job), \
      "MaxFileSize": (maximum file size, in bytes, of the staging files written to S3), \
      "IamAuthEnabled": (set to true if IAM authentication is enabled on the Neptune cluster) }'
```

Objek JSON yang diteruskan ke AWS DMS `CreateEndpoint` API dalam `NeptuneSettings` parameternya memiliki bidang berikut:

****
+ **`ServiceAccessRoleArn`**   –   *(wajib)* ARN dari IAM role yang memungkinkan akses berbutir halus ke bucket S3 yang digunakan untuk migrasi tahap data ke Neptune. Peran ini juga harus memiliki izin untuk mengakses klaster DB Neptune Anda jika otorisasi IAM diaktifkan di atasnya.
+ **`S3BucketName`**   –   *(wajib)* Untuk migrasi Beban Penuh, instans replikasi mengonversi semua data RDS ke CSV, file quad dan unggah mereka ke bucket penahapan ini di S3 dan kemudian memuat massal mereka ke Neptune.
+ **`S3BucketFolder`**   –   *(wajib)* Folder untuk digunakan dalam bucket penahapan S3.
+ **`ErrorRetryDuration`**   –   *(opsional)* Jumlah milidetik untuk menunggu setelah permintaan Neptune gagal sebelum membuat permintaan coba lagi. Default-nya adalah 250.
+ **`MaxRetryCount`**— *(opsional)* Jumlah maksimum permintaan coba ulang AWS DMS harus dilakukan setelah kegagalan yang dapat dicoba ulang. Default-nya adalah 5.
+ **`MaxFileSize`**   –   *(opsional)* Ukuran maksimum dalam byte dari setiap file penahapan yang disimpan ke S3 selama migrasi. Default adalah 1.048.576 KB (1 GB).
+ **`IsIAMAuthEnabled`**   –   *(opsional)* Atur ke `true` jika autentikasi IAM diaktifkan pada klaster DB Neptune, atau `false` jika tidak. Nilai default-nya `false`.

## Uji koneksi ke titik akhir baru
<a name="dms-neptune-test-endpoints"></a>

Anda dapat menguji koneksi ke masing-masing titik akhir baru ini menggunakan AWS DMS [TestConnection](https://docs.aws.amazon.com/dms/latest/APIReference/API_TestConnection.html)API seperti ini:

```
aws dms test-connection \
    --replication-instance-arn (the ARN of the replication instance) \
    --endpoint-arn (the ARN of the endpoint you are testing)
```

## Buat tugas AWS DMS replikasi
<a name="dms-neptune-replication-task"></a>

Setelah Anda berhasil menyelesaikan langkah-langkah sebelumnya, buat tugas replikasi untuk memigrasikan data dari penyimpanan data sumber Anda ke Neptunus, menggunakan API seperti ini: AWS DMS [CreateReplicationTask](https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html.html)

```
aws dms create-replication-task \
    --replication-task-identifier (name for the replication task) \
    --source-endpoint-arn (ARN of the source endpoint) \
    --target-endpoint-arn (ARN of the target endpoint) \
    --replication-instance-arn (ARN of the replication instance) \
    --migration-type full-load \
    --table-mappings (table-mapping JSON object or URI like 'file:///tmp/table-mappings,json') \
    --task-data (a GraphMappingConfig object or URI like 'file:///tmp/graph-mapping-config.json')
```

Parameter `TaskData` menyediakan [GraphMappingConfig](dms-neptune-graph-mapping.md) yang menentukan bagaimana data yang disalin harus disimpan di Neptune.

## Mulai tugas AWS DMS replikasi
<a name="dms-neptune-start-task"></a>

Sekarang Anda dapat memulai tugas replikasi:

```
aws dms start-replication-task
    --replication-task-arn (ARN of the replication task started in the previous step)
    --start-replication-task-type start-replication
```

# Memuat data ke Amazon Neptunus menggunakan kueri
<a name="load-data-via-query"></a>

Neptunus mendukung penulisan data secara langsung melalui operasi bahasa kueri. Anda dapat menggunakan operasi tulis standar seperti `CREATE` dan `MERGE` di OpenCypher, di SPARQL, atau `mergeV()` dan `INSERT` di Gremlin untuk menambah atau memodifikasi data `mergeE()` dalam grafik Anda. Operasi ini cocok untuk pembaruan tambahan dan penulisan transaksional.

Untuk memuat data dari Amazon S3, gunakan [Menggunakan pemuat massal Amazon Neptunus untuk menelan data](bulk-load.md) untuk kumpulan data besar yang membutuhkan kinerja yang dioptimalkan. Untuk kumpulan data yang lebih kecil dalam satu atau beberapa file Amazon S3, Anda dapat menggunakan fungsi pemuatan berbasis kueri untuk membaca dan memproses data secara langsung dalam kueri Anda.

Fungsi pemuatan berbasis kueri berikut tersedia:

## OpenCypher: neptune.read ()
<a name="opencypher-neptune-read"></a>

`neptune.read()`Fungsi ini membaca file CSV atau Parket dari Amazon S3 dalam `CALL` subquery, memungkinkan Anda memproses dan memuat data pada waktu kueri.

```
CALL neptune.read({
  source: "s3://bucket/data.csv",
  format: "csv"
})
YIELD row
CREATE (n:Person {id: row.id, name: row.name})
```

Untuk dokumentasi lengkap, lihat[neptune.read ()](access-graph-opencypher-21-extensions-s3-read.md).

## SPARQL: MUAT dan BONGKAR
<a name="sparql-load-unload"></a>

`LOAD`Operasi SPARQL mengimpor data RDF dari URI ke dalam grafik bernama. `UNLOAD`mengekspor data dari grafik ke Amazon S3.

```
LOAD <s3://bucket/data.ttl> INTO GRAPH <http://example.org/graph>
```

Untuk dokumentasi lengkap, lihat[Menggunakan SPARQL UPDATE LOAD untuk mengimpor data ke Neptune](sparql-api-reference-update-load.md).

## Gremlin: io () langkah
<a name="gremlin-io-step"></a>

[Anda juga dapat menggunakan `g.io(URL).read()` langkah Gremlin untuk membaca dalam file data dalam GraphMl (format XHTML), [GraphSon](https://tinkerpop.apache.org/docs/current/dev/io/#graphml) (format JSON), dan format lainnya.](https://tinkerpop.apache.org/docs/current/dev/io/#graphson)

```
g.io("s3://bucket/data.graphml").read().iterate()
```

 Lihat [TinkerPopdokumentasi](https://tinkerpop.apache.org/docs/current/reference/#io-step) untuk detailnya.