Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Perintah Loader Neptune
Memuat data dari bucket Amazon S3 ke instans DB Neptune.
Untuk memuat data, Anda harus mengirim permintaan POST HTTP ke titik akhir https://. Parameter untuk permintaan your-neptune-endpoint:port/loaderloader 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
{ "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 anedgeOnlyLoad, 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
-
source— Sebuah URI Amazon S3.Parameter
SOURCEmenerima 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-namehttps://s3.amazonaws.com/bucket_name/object-key-namehttps://s3.us-east-1.amazonaws.com/bucket_name/object-key-name
object-key-nameElemen URI setara dengan parameter awalan dalam panggilan API Amazon ListObjectsS3. 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-names3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade s3://bucket-name/bcdJika 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 perintahLoaderNeptune, lihat Menggunakan pemuat massal Amazon Neptunus untuk menelan data.Nilai yang diizinkan
csvuntuk format data CSV Gremlin.opencypheruntuk format data CSV OpenCypher.ntriplesuntuk format data RDF N-Triples. nquadsuntuk format data N-Quads RDF. rdfxmluntuk format data RDF\ XHTML RDF. turtleuntuk format data Turtle RDF.
-
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.Dimulai dengan rilis engine 1.2.1.0.R3, Anda juga dapat menghubungkan beberapa peran IAM jika instans DB Neptunus dan bucket Amazon S3 berada di Akun yang berbeda. AWS Dalam hal ini,
iamRoleArnberisi daftar peran yang dipisahkan koma ARNs, seperti yang dijelaskan dalam. Merantai peran IAM di Amazon Neptunus Misalnya: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—regionParameter harus cocok dengan AWS Wilayah cluster dan bucket S3.Amazon Neptune tersedia di Wilayah berikut:
US East (N. Virginia):
us-east-1AS Timur (Ohio):
us-east-2US West (N. California):
us-west-1US West (Oregon):
us-west-2Canada (Central):
ca-central-1Kanada Barat (Calgary):
ca-west-1South America (São Paulo):
sa-east-1Eropa (Stockholm):
eu-north-1Eropa (Spanyol):
eu-south-2Eropa (Irlandia):
eu-west-1Eropa (London):
eu-west-2Eropa (Paris):
eu-west-3Eropa (Frankfurt):
eu-central-1Timur Tengah (Bahrain):
me-south-1Timur Tengah (UEA):
me-central-1Israel (Tel Aviv):
il-central-1Afrika (Cape Town):
af-south-1Asia Pasifik (Hong Kong):
ap-east-1Asia Pacific (Tokyo):
ap-northeast-1Asia Pasifik (Seoul):
ap-northeast-2Asia Pasifik (Osaka):
ap-northeast-3Asia Pacific (Singapore):
ap-southeast-1Asia Pacific (Sydney):
ap-southeast-2Asia Pasifik (Jakarta):
ap-southeast-3Asia Pasifik (Melbourne):
ap-southeast-4Asia Pasifik (Malaysia):
ap-southeast-5Asia Pasifik (Mumbai):
ap-south-1Tiongkok (Beijing):
cn-north-1Tiongkok (Ningxia):
cn-northwest-1AWS GovCloud (AS-Barat):
us-gov-west-1AWS 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 modeRESUME.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.
-
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
OVERSUBSCRIBEmenghasilkan 100% utilisasi CPU. Karena operasi beban I/O terikat, pemanfaatan CPU tertinggi yang diharapkan adalah dalam kisaran 60% hingga 70%.
Nilai default:
HIGHparallelismPengaturan terkadang dapat mengakibatkan kebuntuan antar utas saat memuat data OpenCypher. Ketika ini terjadi, Neptunus mengembalikan kesalahan.LOAD_DATA_DEADLOCKAnda biasanya dapat memperbaiki masalah dengan mengaturparallelismke pengaturan yang lebih rendah dan mencoba kembali perintah load. -
parserConfiguration— Sebuah objek opsional dengan nilai konfigurasi parser tambahan. Masing-masing parameter turunan juga opsional:Nama Nilai Contoh Deskripsi namedGraphUrihttp://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraphGrafik default untuk semua format RDF ketika tidak ada grafik yang ditentukan (untuk format non-quads dan entri NQUAD tanpa grafik). Bawaannya adalah http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraphbaseUrihttp://aws.amazon.com/neptune/defaultURI dasar untuk RDF/XML dan format Turtle. Nilai default-nya http://aws.amazon.com/neptune/default.allowEmptyStringstruePengguna Gremlin harus dapat melewatkan nilai string kosong (“”) sebagai properti node dan edge saat memuat data CSV. Jika
allowEmptyStringsdiatur kefalse(default), string kosong diperlakukan sebagai null dan tidak dimuat.Jika
allowEmptyStringsdiatur ketrue, loader memperlakukan string kosong sebagai nilai properti yang valid dan memuatnya sesuai keperluan.Untuk informasi selengkapnya, lihat Grafik Standar SPARQL dan Grafik Bernama.
-
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 OpenCypherNilai yang diizinkan:
"TRUE","FALSE".Nilai default:
"FALSE".Secara default, atau saat
updateSingleCardinalityPropertiessecara eksplisit diatur ke"FALSE", loader memperlakukan nilai baru sebagai kesalahan, karena melanggar kardinalitas tunggal.Saat
updateSingleCardinalityPropertiesdiatur 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
queueRequestsemua diatur ke"TRUE". Urutan antrian pekerjaan akan menjadi first-in-first-out (FIFO).Jika parameter
queueRequestdihilangkan 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
queueRequestpermintaannya diatur ke"TRUE". Parameterdependenciesmemungkinkan 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-AdanJob-Bindependen satu sama lain, namun pemuatanJob-CmembutuhkanJob-AdanJob-Bharus selesai sebelum dimulai, lanjutkan sebagai berikut:Kirim
load-job-Adanload-job-Bsatu demi satu dalam urutan apa pun, dan simpan load-id mereka.Kirim
load-job-Cdengan load-id dari dua pekerjaan di bidangdependencies-nya:
"dependencies" : ["job_A_load_id", "job_B_load_id"]Karena parameter
dependencies, loader massal tidak akan memulaiJob-CsampaiJob-AdanJob-Btelah berhasil diselesaikan. Jika salah satu dari mereka gagal, Job-C tidak akan dieksekusi, dan statusnya akan diatur keLOAD_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 keTrueketika hubungan OpenCypher secara eksplisit IDs disediakan dalam data beban (disarankan).Ketika tidak
userProvidedEdgeIdsada atau diatur keTrue,:IDkolom harus ada di setiap file hubungan dalam beban.Ketika
userProvidedEdgeIdshadir dan diatur keFalse, file hubungan dalam beban tidak boleh berisi:IDkolom. 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, pemuat 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
iamRoleArndianjurkan 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.Untuk informasi lebih lanjut, lihat Access key (access key ID dan secret access key).
-
secretKey– [usang] ParameteriamRoleArndianjurkan 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.Untuk informasi lebih lanjut, lihat Access key (access key ID dan secret access key).
Pertimbangan khusus untuk memuat data OpenCypher
Saat memuat data OpenCypher dalam format CSV, parameter format harus diatur ke.
opencypherupdateSingleCardinalityPropertiesParameter 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
userProvidedEdgeIdsparameter 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. Misalnya:
{ "status" : "200 OK", "payload" : { "loadId" : "guid_as_string" } }
Sintaks Respons Loader Neptune
{ "status" : "200 OK", "payload" : { "loadId" : "guid_as_string" } }
200 OK
Pekerjaan pemuatan yang berhasil dimulai mengembalikan kode 200.