Kueri gabungan SPARQL di Neptune menggunakan ekstensi SERVICE - Amazon Neptune

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

Kueri gabungan SPARQL di Neptune menggunakan ekstensi SERVICE

Amazon Neptune sepenuhnya mendukung ekstensi kueri gabungan SPARQL yang menggunakan kata kunci SERVICE. (Untuk informasi selengkapnya, lihat Kueri Gabungan SPARQL 1.1.)

catatan

Fitur ini mulai tersedia pada Rilis 1.0.1.0.200463.0 (2019-10-15).

Kata kunci SERVICE menginstruksikan mesin kueri SPARQL untuk mengeksekusi sebagian dari kueri terhadap titik akhir SPARQL jauh dan menyusun hasil kueri akhir. Hanya operasi READ yang dimungkinkan. Operasi WRITE dan DELETE tidak didukung. Neptune hanya dapat menjalankan kueri gabungan terhadap titik akhir SPARQL yang dapat diakses dalam cloud privat virtual (VPC). Namun, Anda juga dapat menggunakan reverse proxy di VPC untuk membuat sumber data eksternal dapat diakses dalam VPC.

catatan

Saat SERVICE SPARQL digunakan untuk melakukan federasi pada kueri untuk dua klaster Neptune atau lebih di VPC yang sama, grup keamanan harus dikonfigurasi untuk memungkinkan semua klaster Neptune untuk berbicara satu sama lain.

penting

SPARQL 1.1 Federation membuat permintaan layanan atas nama Anda saat melewatkan kueri dan parameter ke titik akhir SPARQL eksternal. Anda bertanggung jawab untuk memverifikasi bahwa titik akhir SPARQL eksternal memenuhi persyaratan penanganan data dan keamanan aplikasi Anda.

Contoh dari kueri gabungan Neptune

Contoh sederhana berikut menunjukkan bagaimana kueri gabungan SPARQL bekerja.

Misalkan pelanggan mengirimkan kueri berikut ke Neptune-1 di http://neptune-1:8182/sparql.

SELECT * WHERE { ?person rdf:type foaf:Person . SERVICE <http://neptune-2:8182/sparql> { ?person foaf:knows ?friend . } }
  1. Neptune-1 mengevaluasi pola kueri pertama (Q-1) yang merupakan ?person rdf:type foaf:Person, menggunakan hasilnya untuk menyelesaikan ?person di Q-2 (?person foaf:knows ?friend), dan meneruskan pola yang dihasilkan ke Neptune-2 di http://neptune-2:8182/sparql.

  2. Neptune-2 mengevaluasi Q-2 dan mengirimkan hasilnya kembali ke Neptune-1.

  3. Neptune-1 menggabungkan solusi untuk kedua pola dan mengirimkan hasilnya kembali ke pelanggan.

Alur ini ditunjukkan dalam diagram berikut.

Diagram alur menunjukkan pola kueri gabungan SPARQL sedang dievaluasi dan respons dikirim kembali ke klien.
catatan

“Secara default, optimizer menentukan pada titik apa dalam eksekusi kueri bahwa instruksi SERVICE dijalankan. Anda dapat mengganti penempatan ini menggunakan petunjuk kueri JoinOrder.

Kontrol akses untuk kueri gabungan di Neptune

Neptunus AWS Identity and Access Management menggunakan (IAM) untuk otentikasi dan otorisasi. Kontrol akses untuk kueri gabungan dapat melibatkan lebih dari satu instans DB Neptune. Instans ini mungkin memiliki persyaratan yang berbeda untuk kontrol akses. Dalam keadaan tertentu, ini dapat membatasi kemampuan Anda untuk membuat kueri gabungan.

Pertimbangkan contoh sederhana yang disajikan di bagian sebelumnya. Neptune-1 memanggil Neptune-2 dengan kredensial yang sama yang memanggilnya.

  • Jika Neptune-1 memerlukan autentikasi dan otorisasi IAM, namun tidak untuk Neptune-2, yang Anda butuhkan hanya izin IAM yang sesuai untuk Neptune-1 untuk membuat kueri gabungan.

  • Jika Neptune-1 dan Neptune-2 keduanya memerlukan autentikasi dan otorisasi IAM, Anda perlu melampirkan izin IAM untuk kedua database untuk membuat kueri gabungan. Kedua cluster juga harus berada di AWS akun yang sama dan di wilayah yang sama. Arsitektur kueri federasi lintas wilayah dan/atau lintas akun saat ini tidak didukung.

  • Namun, dalam kasus di mana Neptune-1 IAM-nya tidak diaktifkan tetapi diaktifkan di Neptune-2, Anda tidak dapat membuat kueri gabungan. Alasannya adalah bahwa Neptune-1 tidak dapat mengambil kredensial IAM Anda dan meneruskannya ke Neptune-2 untuk mengotorisasi bagian kedua dari kueri.