Mengekspor hasil kueri Gremlin ke Amazon S3 - Amazon Neptune

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

Mengekspor hasil kueri Gremlin ke Amazon S3

Mulai rilis mesin 1.4.3.0, Amazon Neptunus mendukung ekspor hasil kueri Gremlin langsung ke Amazon S3. Fitur ini memungkinkan Anda menangani hasil kueri besar secara efisien dengan mengekspornya ke bucket Amazon S3 alih-alih mengembalikannya sebagai respons kueri.

Untuk mengekspor hasil kueri ke Amazon S3, gunakan call() langkah dengan nama neptune.query.exportToS3 layanan sebagai langkah terakhir dalam kueri Gremlin Anda. Langkah terminal di driver Tinkerpop menggunakan Bytecode dapat ditambahkan setelah langkah. call() Parameter ekspor harus disediakan sebagai nilai string.

catatan

Kueri dengan call() langkah memiliki neptune.query.exportToS3 akan gagal jika tidak digunakan sebagai langkah terakhir. Klien Gremlin menggunakan bytecode dapat menggunakan langkah-langkah terminal. Lihat praktik terbaik Gremlin dalam dokumentasi Amazon Neptunus untuk informasi selengkapnya.

g.V() ... .call('neptune.query.exportToS3', [ 'destination': 's3://your-bucket/path/result.json', 'format': 'GraphSONv3', 'kmskeyArn': 'optional-kms-key-arn' ])
Parameter
  • destination: wajib - URI Amazon S3 tempat hasil akan ditulis.

  • format: required - Format output, saat ini hanya mendukung 'Grafik SONv3'.

  • keyArn: opsional - ARN AWS KMS kunci untuk enkripsi sisi server Amazon S3.

Contoh

Contoh kueri

g.V(). hasLabel('Comment'). valueMap(). call('neptune.query.exportToS3', [ 'destination': 's3://your-bucket/path/result.json', 'format': 'GraphSONv3', 'keyArn': 'optional-kms-key-arn' ])

Contoh respons kueri

{ "destination":"s3://your-bucket/path/result.json, "exportedResults": 100, "exportedBytes": 102400 }

Prasyarat

  • Instans DB Neptunus Anda harus memiliki akses ke Amazon S3 melalui titik akhir VPC dari jenis gateway.

  • Untuk menggunakan AWS KMS enkripsi kustom dalam kueri, titik akhir VPC tipe antarmuka untuk diperlukan agar AWS KMS Neptunus dapat berkomunikasi dengannya. AWS KMS

  • Anda harus mengaktifkan autentikasi IAM di Neptunus, dan memiliki izin IAM yang sesuai untuk menulis ke bucket Amazon S3 target. Tidak memiliki ini akan menyebabkan 400 kesalahan permintaan buruk “Cluster harus mengaktifkan otentikasi IAM untuk Ekspor S3”.

  • Target ember Amazon S3:

Pertimbangan penting
  • Langkah ekspor harus menjadi langkah terakhir dalam kueri Gremlin Anda.

  • Jika objek sudah ada di lokasi Amazon S3 yang ditentukan, kueri akan gagal.

  • Waktu eksekusi kueri maksimum untuk kueri ekspor dibatasi hingga 11 jam 50 menit. Fitur ini menggunakan sesi akses Teruskan. Saat ini dibatasi hingga 11 jam 50 menit untuk menghindari masalah kedaluwarsa token.

    catatan

    Kueri ekspor masih menghormati batas waktu kueri. Untuk ekspor besar, Anda harus menggunakan batas waktu kueri yang sesuai.

  • Semua unggahan objek baru ke Amazon S3 secara otomatis dienkripsi.

  • Untuk menghindari biaya penyimpanan dari unggahan multibagian yang tidak lengkap jika terjadi kesalahan atau crash, sebaiknya atur aturan siklus hidup dengan bucket Amazon S3 AndaDelete incomplete multipart uploads.

Format respons

Daripada mengembalikan hasil kueri secara langsung, kueri mengembalikan metadata tentang operasi ekspor, termasuk detail status dan ekspor. Hasil kueri di Amazon S3 akan dalam format Grafik SONv3.

{ "data": { "@type": "g:List", "@value": [ { "@type": "g:Map", "@value": [ "browserUsed", { "@type": "g:List", "@value": [ "Safari" ] }, "length", { "@type": "g:List", "@value": [ { "@type": "g:Int32", "@value": 7 } ] }, "locationIP", { "@type": "g:List", "@value": [ "192.0.2.0/24" ] }, "creationDate", { "@type": "g:List", "@value": [ { "@type": "g:Date", "@value": 1348341961000 } ] }, "content", { "@type": "g:List", "@value": [ "no way!" ] } ] }, { "@type": "g:Map", "@value": [ "browserUsed", { "@type": "g:List", "@value": [ "Firefox" ] }, "length", { "@type": "g:List", "@value": [ { "@type": "g:Int32", "@value": 2 } ] }, "locationIP", { "@type": "g:List", "@value": [ "203.0.113.0/24" ] }, "creationDate", { "@type": "g:List", "@value": [ { "@type": "g:Date", "@value": 1348352960000 } ] }, "content", { "@type": "g:List", "@value": [ "ok" ] } ] }, ... ] } }
Keamanan
  • Semua data yang ditransfer ke Amazon S3 dienkripsi dalam perjalanan menggunakan SSL.

  • Anda dapat menentukan AWS KMS kunci untuk enkripsi sisi server dari data yang diekspor. Amazon S3 mengenkripsi data baru secara default. Jika bucket dikonfigurasi untuk menggunakan AWS KMS kunci tertentu, maka kunci itu digunakan.

  • Neptunus memverifikasi bahwa ember target tidak bersifat publik sebelum memulai ekspor.

  • Ekspor lintas akun dan lintas wilayah tidak didukung.

Penanganan kesalahan
  • Target ember Amazon S3 adalah publik.

  • Objek yang ditentukan sudah ada.

  • Anda tidak memiliki izin yang cukup untuk menulis ke bucket Amazon S3.

  • Eksekusi kueri melebihi batas waktu maksimum.

Praktik terbaik
  • Gunakan aturan siklus hidup bucket Amazon S3 untuk membersihkan unggahan multibagian yang tidak lengkap.

  • Pantau operasi ekspor Anda menggunakan log dan metrik Neptunus. Anda dapat memeriksa titik akhir status Gremlin untuk melihat apakah kueri sedang berjalan. Selama klien belum menerima respons, kueri akan diasumsikan berjalan.