Bagaimana Pernyataan Diindeks di Neptune - Amazon Neptune

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

Bagaimana Pernyataan Diindeks di Neptune

Ketika Anda mengkueri grafik quad, untuk setiap posisi quad, Anda dapat menentukan kendala nilai, atau tidak. Kueri mengembalikan semua quad yang cocok dengan kendala nilai yang Anda tentukan.

Neptunus menggunakan indeks untuk menyelesaikan pola kueri grafik. Indeks ini berada di atas empat komponen utama dari tepi grafik: Subjek (simpul sumber diLPG); Predikat (RDF), atau Properti atau Label Tepi (LPG); Objek (simpul target atau nilai properti diLPG); dan Grafik () atau Pengenal Tepi (RDF). LPG Ada 16 (2 ^ 4) kemungkinan pola akses untuk empat posisi komponen quad ini. Anda dapat menanyakan semua 16 pola secara efisien tanpa harus memindai dan memfilter dengan menggunakan enam indeks. Setiap indeks pernyataan quad menggunakan kunci yang terdiri dari empat nilai posisi bersambung dalam urutan yang berbeda. Salah satu kemungkinan kombinasi indeks quad statment yang akan mencakup semua 16 jalur akses adalah:

Access Pattern Index key order ---------------------------------------------------- --------------- 1. ???? (No constraints; returns every quad) SPOG 2. SPOG (Every position is constrained) SPOG 3. SPO? (S, P, and O are constrained; G is not) SPOG 4. SP?? (S and P are constrained; O and G are not) SPOG 5. S??? (S is constrained; P, O, and G are not) SPOG 6. S??G (S and G are constrained; P and O are not) SPOG 7. ?POG (P, O, and G are constrained; S is not) POGS 8. ?PO? (P and O are constrained; S and G are not) POGS 9. ?P?? (P is constrained; S, O, and G are not) POGS 10. ?P?G (P and G are constrained; S and O are not) GPSO 11. SP?G (S, P, and G are constrained; O is not) GPSO 12. ???G (G is constrained; S, P, and O are not) GPSO 13. S?OG (S, O, and G are constrained; P is not) OGSP 14. ??OG (O and G are constrained; S and P are not) OGSP 15. ??O? (O is constrained; S, P, and G are not) OGSP 16. S?O? (S and O are constrained; P and G are not) OSGP

Neptune menciptakan dan mempertahankan hanya tiga dari keenam indeks tersebut secara default:

  • SPOG –   Menggunakan kunci yang terdiri dari Subject + Predicate + Object + Graph.

  • POGS –   Menggunakan kunci yang terdiri dari Predicate + Object + Graph + Subject.

  • GPSO –   Menggunakan kunci yang terdiri dari Graph + Predicate + Subject + Object.

Ketiga indeks ini menangani banyak pola akses yang paling umum. Mempertahankan hanya tiga indeks pernyataan penuh alih-alih keenamnya sangat mengurangi sumber daya yang Anda butuhkan untuk mendukung akses cepat tanpa pemindaian dan penyaringan. Misalnya, indeks SPOG memungkinkan pencarian efisien setiap kali prefiks dari posisi, seperti vertex atau vertex dan pengidentifikasi properti, terikat. Indeks POGS memungkinkan akses yang efisien ketika hanya edge atau label properti disimpan dalam posisi P terikat.

Tingkat rendah API untuk menemukan pernyataan mengambil pola pernyataan di mana beberapa posisi diketahui dan sisanya dibiarkan untuk penemuan dengan pencarian indeks. Dengan menyusun posisi yang dikenal menjadi prefiks kunci sesuai dengan urutan kunci indeks untuk salah satu indeks pernyataan, Neptune melakukan pemindaian rentang untuk mengambil semua pernyataan yang cocok dengan posisi yang diketahui.

Namun, salah satu indeks pernyataan yang tidak dibuat Neptune secara default adalah indeks OSGP traversal terbalik, yang dapat mengumpulkan predikat di seluruh objek dan subjek. Sebaliknya, Neptune secara default melacak predikat yang berbeda dalam indeks terpisah yang digunakan untuk melakukan pemindaian gabungan {all P x POGS}. Ketika Anda bekerja dengan Gremlin, predikat sesuai dengan properti atau label edge.

Jika jumlah predikat yang berbeda dalam grafik menjadi besar, strategi akses Neptune default dapat menjadi tidak efisien. Di Gremlin, misalnya, sebuah langkah in() di mana tidak ada label edge diberikan, atau langkah apa pun yang menggunakan in() secara internal seperti both() atau drop(), bisa menjadi sangat tidak efisien.

Mengaktifkan Pembuatan OSGP Indeks Menggunakan Mode Lab

Jika model data Anda membuat sejumlah besar predikat berbeda, Anda mungkin mengalami penurunan kinerja dan biaya operasional yang lebih tinggi yang dapat ditingkatkan secara dramatis dengan menggunakan Mode Lab untuk mengaktifkan OSGPindeks selain tiga indeks yang dipertahankan Neptunus secara default.

catatan

Fitur ini tersedia mulai dari Rilis mesin Neptune 1.0.2.1.

Mengaktifkan OSGP indeks dapat memiliki beberapa sisi bawah:

  • Tingkat insert dapat memperlambat hingga 23%.

  • Penyimpanan meningkat hingga 20%.

  • Kueri baca yang menyentuh semua indeks secara seimbang (yang cukup langka) mungkin memiliki peningkatan latensi.

Secara umum, bagaimanapun, ada baiknya mengaktifkan OSGP indeks untuk Cluster DB dengan sejumlah besar predikat berbeda. Pencarian berbasis objek menjadi sangat efisien (misalnya, menemukan semua edge yang masuk ke vertex, atau semua subjek yang terhubung ke objek tertentu), dan sebagai hasilnya menjatuhkan vertex juga menjadi jauh lebih efisien.

penting

Anda hanya dapat mengaktifkan OSGP indeks dalam cluster DB kosong, sebelum Anda memuat data apa pun ke dalamnya.

 

Pernyataan Gremlin dalam model data Neptune

Data grafik properti Gremlin dinyatakan dalam SPOG model menggunakan tiga kelas pernyataan, yaitu:

Untuk penjelasan tentang bagaimana ketiganya digunakan dalam kueri Gremlin, lihat Memahami bagaimana kueri Gremlin bekerja di Neptune.