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 HTTP POST
permintaan ke https://
titik akhir. Parameter untuk your-neptune-endpoint
:port
/loaderloader
permintaan dapat dikirim dalam POST
tubuh atau sebagai parameter URL -encoded.
penting
MIMETipenya harusapplication/json
.
Bucket S3 harus berada di AWS Region 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
mode, selama peran IAM Anda menyertakan 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 adalah 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
"] }
Parameter Permintaan Loader Neptune
-
source
- Amazon S3URI.SOURCE
Parameter menerima Amazon URI S3 yang mengidentifikasi satu file, beberapa file, folder, atau beberapa folder. Neptune memuat setiap file data dalam folder yang ditentukan.URIBisa dalam salah satu 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 dalam panggilan Amazon ListObjectsAPIS3. Ini mengidentifikasi semua objek dalam bucket Amazon S3 yang ditentukan yang namanya dimulai dengan prefiks itu. Objek itu bisa berupa satu file atau folder, atau beberapa file dan/atau folder.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 perintahLoader
Neptune, lihat Menggunakan pemuat massal Amazon Neptunus untuk menelan data.Nilai yang diizinkan
csv
untuk format CSVdata Gremlin.opencypher
untuk format openCypher CSV data.ntriples
untuk format data N-Triples. RDFnquads
untuk format RDFdata N-Quads. rdfxml
untuk formatRDF\ XML RDF data. turtle
untuk format RDF data kura-kura.
-
iamRoleArn
— Amazon Resource Name (ARN) untuk IAM peran yang akan diasumsikan oleh instans DB Neptunus untuk akses ke bucket S3. Untuk informasi tentang membuat peran yang memiliki akses ke Amazon S3 dan kemudian mengaitkannya dengan klaster Neptune, lihat Prasyarat: Peran dan Akses IAM Amazon S3.Dimulai dengan rilis engine 1.2.1.0.R3, Anda juga dapat merantai 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 komaARNs, seperti yang dijelaskan dalam. IAMPeran rantai di Amazon Neptunus Sebagai 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
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 (UAE):
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 (Mumbai):
ap-south-1
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 RESUME mode, loader mencari beban sebelumnya dari sumber ini, dan jika menemukannya, lanjutkan pekerjaan pemuatan itu. 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 NEW mode, membuat permintaan beban baru terlepas dari beban 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 AUTO mode, loader mencari pekerjaan pemuatan sebelumnya dari sumber yang sama, dan jika menemukannya, lanjutkan pekerjaan itu, seperti dalamRESUME
mode.Jika loader tidak menemukan pekerjaan pemuatan sebelumnya dari sumber yang sama, loader akan memuat semua data dari sumbernya, seperti pada mode
NEW
.
-
-
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 yang tersedia vCPUs dibagi dengan 8.MEDIUM
— Jumlah benang yang digunakan adalah jumlah yang tersedia vCPUs dibagi 2.HIGH
— Jumlah thread yang digunakan sama dengan jumlah yang tersediavCPUs.-
OVERSUBSCRIBE
— Jumlah thread yang digunakan adalah jumlah yang tersedia vCPUs dikalikan dengan 2. Jika nilai ini digunakan, loader massal mengambil semua sumber daya yang tersedia.Ini tidak berarti, bagaimanapun, bahwa
OVERSUBSCRIBE
pengaturan menghasilkan CPU pemanfaatan 100%. Karena operasi beban terikat I/O, CPU pemanfaatan tertinggi yang diharapkan adalah dalam kisaran 60% hingga 70%.
Nilai default:
HIGH
parallelism
Pengaturan terkadang dapat mengakibatkan kebuntuan antar utas saat memuat openCypher data. Ketika ini terjadi, Neptunus mengembalikan kesalahan.LOAD_DATA_DEADLOCK
Anda biasanya dapat memperbaiki masalah dengan mengaturparallelism
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:Nama Nilai Contoh Deskripsi namedGraphUri
http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
Grafik default untuk semua RDF format ketika tidak ada grafik yang ditentukan (untuk format non-quads dan NQUAD entri tanpa grafik). Bawaannya adalah http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
baseUri
http://aws.amazon.com/neptune/default
Dasar URI untuk formatRDF/XMLdan Turtle. Default-nya adalah http://aws.amazon.com/neptune/default
.allowEmptyStrings
true
Pengguna Gremlin harus dapat memberikan nilai string kosong (“”) sebagai properti node dan edge saat memuat CSV data. Jika
allowEmptyStrings
diatur kefalse
(default), string kosong diperlakukan sebagai null dan tidak dimuat.Jika
allowEmptyStrings
diatur ketrue
, loader memperlakukan string kosong sebagai nilai properti yang valid dan memuatnya sesuai keperluan.Untuk informasi selengkapnya, lihat SPARQLGrafik Default 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 openCypher data (lihatMemuat openCypher data).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 adalah 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"
. Parameterdependencies
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
danJob-B
independen satu sama lain, namun pemuatanJob-C
membutuhkanJob-A
danJob-B
harus selesai sebelum dimulai, lanjutkan sebagai berikut:Kirim
load-job-A
danload-job-B
satu demi satu dalam urutan apa pun, dan simpan load-id mereka.Kirim
load-job-C
dengan 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-C
sampaiJob-A
danJob-B
telah 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 saat memuat openCypher data yang berisi hubunganIDs. Itu harus disertakan dan diatur keTrue
ketika openCypher hubungan IDs secara eksplisit disediakan dalam data beban (disarankan).Ketika tidak
userProvidedEdgeIds
ada atau diatur keTrue
,:ID
kolom harus ada di setiap file hubungan dalam beban.Ketika
userProvidedEdgeIds
hadir dan diatur keFalse
, 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 CSV data 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] ID kunci akses IAM peran 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: Peran dan Akses IAM Amazon S3.Untuk informasi lebih lanjut, lihat Access key (access key ID dan secret access key).
-
secretKey
– [usang] ParameteriamRoleArn
dianjurkan sebagai gantinya. Untuk informasi tentang membuat peran yang memiliki akses ke Amazon S3 dan kemudian mengaitkannya dengan klaster Neptune, lihat Prasyarat: Peran dan Akses IAM Amazon S3.Untuk informasi lebih lanjut, lihat Access key (access key ID dan secret access key).
Pertimbangan khusus untuk memuat data openCypher
Saat memuat openCypher data dalam CSV format, parameter format harus diatur ke
opencypher
.updateSingleCardinalityProperties
Parameter tidak didukung untuk openCypher beban karena semua openCypher properti memiliki kardinalitas tunggal. Format openCypher beban 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 openCypher dalam data 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 eksplisitIDs, 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 eksplisitIDs, loader tidak memiliki cara untuk mendeteksi hubungan duplikat.
Berikut adalah contoh perintah openCypher load:
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. Sebagai contoh:
{ "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
.