Operator explain SPARQL Neptune - Amazon Neptune

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

Operator explain SPARQL Neptune

Bagian berikut menjelaskan operator dan parameter untuk fitur explain SPARQL yang saat ini tersedia di Amazon Neptune.

penting

Fitur explain SPARQL sedang disempurnakan. Operator dan parameter yang didokumentasikan di sini mungkin berubah dalam versi mendatang.

Operator Aggregation

Melakukan satu agregasi atau lebih, menerapkan semantik dari operator agregasi SPARQL seperti count, max, min, sum, dan sebagainya.

Aggregation dilengkapi dengan pengelompokan opsional menggunakan klausa groupBy, dan kendala having opsional.

Pendapat
  • groupBy — (Opsional) Menyediakan klaus groupBy yang menentukan urutan ekspresi yang menurut pengelompokan solusi masuk.

  • aggregates — (Wajib) Menentukan daftar urut ekspresi agregasi.

  • having — (Opsional) Menambahkan kendala untuk menyaring grup, seperti yang disiratkan oleh klausul having dalam kueri SPARQL.

Operator ConditionalRouting

Merutekan solusi masuk berdasarkan kondisi tertentu. Solusi yang memenuhi kondisi diarahkan ke ID operator yang direferensikan oleh Out #1, sedangkan solusi yang tidak diarahkan ke operator direferensikan oleh Out #2.

Pendapat
  • condition — (Wajib) Kondisi perutean.

Operator Copy

Mendelegasikan aliran solusi sebagaimana ditentukan oleh mode tertentu.

Modus
  • forward — Meneruskan solusi untuk operator hilir yang diidentifikasi oleh Out #1.

  • duplicate — Menduplikat solusi dan meneruskannya ke masing-masing dari dua operator yang diidentifikasi oleh Out #1 dan Out #2.

Copy tidak memiliki argumen.

Operator DFENode

Operator ini merupakan abstraksi dari rencana yang dijalankan oleh mesin kueri alternatif DFE. Rencana DFE rinci diuraikan dalam argumen untuk operator ini. Argumen saat ini kelebihan beban untuk berisi statistik runtime rinci dari rencana DFE. Argumen berisi waktu yang dihabiskan dalam berbagai langkah eksekusi kueri oleh DFE.

Abstrak sintaks tree (AST) yang dioptimalkan logis untuk rencana kueri DFE dicetak dengan informasi tentang jenis operator yang dianggap saat perencanaan dan akibat terbaik dan terburuk terkait untuk menjalankan operator. AST saat ini terdiri dari jenis node berikut:

  • DFEJoinGroupNode — Merupakan gabungan dari satu DFEPatternNodes atau lebih.

  • DFEPatternNode - Merangkum pola mendasar menggunakan tupel yang cocok yang diproyeksikan keluar dari database yang mendasari.

Sub-bagiannya, Statistics & Operator histogram, berisi rincian tentang waktu eksekusi rencana DataflowOp dan rincian waktu CPU yang digunakan oleh masing-masing operator. Di bawah ini ada tabel yang mencetak statistik runtime rinci dari rencana yang dieksekusi oleh DFE.

catatan

Karena DFE adalah fitur eksperimental yang dirilis dalam mode lab, format tepat output explain dapat berubah.

Operator Distinct

Menghitung proyeksi yang berbeda pada subset dari variabel, menghilangkan duplikat. Akibatnya, jumlah solusi yang mengalir lebih besar dari atau sama dengan jumlah solusi yang mengalir keluar.

Pendapat
  • vars — (Wajib) Variabel tempat proyeksi Distinct akan diterapkan.

Operator Federation

Melewatkan kueri tertentu ke titik akhir SPARQL remote yang ditentukan.

Pendapat
  • endpoint — (Wajib) URL titik akhir dalam pernyataan SERVICE SPARQL. Ini bisa berupa string konstan, atau jika titik akhir kueri ditentukan berdasarkan variabel dalam kueri yang sama, ia dapat menjadi nama variabel.

  • query — (Wajib) String kueri yang direkonstruksi yang akan dikirim ke titik akhir remote. Mesin menambahkan prefiks default untuk kueri ini bahkan ketika klien tidak menentukan apapun.

  • silent — (Wajib) Boolean yang menunjukkan apakah kata kunci SILENT muncul setelah kata kunci tersebut. SILENT memberi tahu mesin untuk tidak menggagalkan seluruh kueri bahkan jika bagian SERVICE remote gagal.

Operator Filter

Menyaring solusi yang masuk. Hanya solusi yang memenuhi kondisi filter yang diteruskan ke operator hulu, dan yang lainnya dijatuhkan.

Pendapat
  • condition — (Wajib) Kondisi filter.

Operator HashIndexBuild

Membawa daftar binding dan melakukan spools pada mereka ke dalam indeks hash yang namanya didefinisikan oleh argumen solutionSet. Biasanya, operator berikutnya melakukan penggabungan terhadap set solusi ini, mengacunya dengan nama itu.

Pendapat
  • solutionSet — (Wajib) Nama set solusi indeks hash.

  • sourceType — (Wajib) Jenis sumber asal binding yang akan disimpan dalam indeks hash diperoleh:

    • pipeline — Melakukan spool pada solusi yang masuk dari operator hilir dalam alur operator ke dalam indeks hash.

    • binding set - Melakukan spool pada set mengikat tetap yang ditentukan oleh argumen sourceBindingSet ke dalam indeks hash.

  • sourceBindingSet — (Opsional) Jika nilai argumen sourceType adalah binding set, argumen ini menentukan set binding statis yang akan di-spool ke dalam indeks hash.

Operator HashIndexJoin

Menggabungkan solusi masuk terhadap set solusi indeks hash yang diidentifikasi oleh argumen solutionSet.

Pendapat
  • solutionSet — (Wajib) Nama set solusi yang akan digabungkan. Ini harus berupa indeks hash yang telah dibangun di langkah sebelumnya menggunakan operator HashIndexBuild.

  • joinType — (Wajib) Jenis gabungan yang akan dilakukan:

    • join — Gabungan normal, membutuhkan kecocokan persis antara semua variabel bersama.

    • optional — Sebuah gabungan optional yang menggunakan semantik operator OPTIONAL SPARQL.

    • minus — Sebuah operasi minus yang mempertahankan pemetaan yang tanpa mitra gabungan, menggunakan semanti operator MINUS SPARQL.

    • existence check — Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabel existenceCheckResultVar ke hasil pemeriksaan ini.

  • constraints — (Opsional) Tambahan kendala gabungan yang dipertimbangkan selama penggabungan. Gabungan yang tidak memenuhi kendala ini dibuang.

  • existenceCheckResultVar — (Opsional) Hanya digunakan untuk gabungan di mana joinType sama dengan existence check (lihat argumen joinType sebelumnya).

Operator MergeJoin

Penggabungan yang digabung di lebih dari beberapa set solusi, seperti yang diidentifikasi oleh argumen solutionSets.

Pendapat
  • solutionSets — (Wajib) Set solusi yang akan digabungkan bersama.

Operator NamedSubquery

Memicu evaluasi subkueri yang diidentifikasi oleh argumen subQuery dan melakukan spools pada hasil ke dalam set solusi yang ditentukan oleh argumen solutionSet. Solusi masuk untuk operator diteruskan ke subkueri dan kemudian ke operator berikutnya.

Pendapat
  • subQuery — (Wajib) Nama subkueri yang akan dievaluasi. Subkueri dirender secara eksplisit dalam output.

  • solutionSet — (Wajib) Nama set solusi tempat menyimpan hasil subkueri.

Operator PipelineJoin

Menerima output dari operator sebelumnya sebagai input dan menggabungkannya dengan pola tuple yang didefinisikan oleh argumen pattern.

Pendapat
  • pattern— (Wajib) Pola, yang mengambil bentuk subject-predicate-object, dan tupel grafik opsional yang mendasari gabungan. Jika distinct ditentukan untuk pola, gabungan hanya mengekstrak solusi yang khas dari variabel proyeksi yang ditentukan oleh projectionVars, alih-alih semua solusi yang cocok.

  • inlineFilters — (Opsional) Satu set filter yang akan diterapkan pada variabel dalam pola. Pola dievaluasi bersamaan dengan filter ini.

  • joinType — (Wajib) Jenis gabungan yang akan dilakukan:

    • join — Gabungan normal, membutuhkan kecocokan persis antara semua variabel bersama.

    • optional — Sebuah gabungan optional yang menggunakan semantik operator OPTIONAL SPARQL.

    • minus — Sebuah operasi minus yang mempertahankan pemetaan yang tanpa mitra gabungan, menggunakan semanti operator MINUS SPARQL.

    • existence check — Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabel existenceCheckResultVar ke hasil pemeriksaan ini.

  • constraints — (Opsional) Tambahan kendala gabungan yang dipertimbangkan selama penggabungan. Gabungan yang tidak memenuhi kendala ini dibuang.

  • projectionVars— (Opsional) Variabel proyeksi. Digunakan dalam kombinasi bersama distinct := true untuk menegakkan ekstraksi proyeksi khas pada satu set variabel tertentu.

  • cutoffLimit — (Opsional) Batas cutoff untuk jumlah mitra gabungan yang diekstrak. Meskipun tidak ada batas secara default, Anda dapat mengatur ini ke 1 ketika melakukan gabungan untuk menerapkan klausa FILTER (NOT) EXISTS, di mana itu cukup untuk membuktikan atau membantah bahwa ada mitra gabungan.

Operator PipelineCountJoin

Varian dari PipelineJoin. Alih-alih bergabung, operator ini hanya menghitung mitra gabungan yang cocok dan mengikat hitungan ke variabel yang ditentukan oleh argumen countVar.

Pendapat
  • countVar — (Wajib) Variabel yang akan diikatkan pada hasil hitungan, yaitu jumlah mitra gabungan,.

  • pattern— (Wajib) Pola, yang mengambil bentuk subject-predicate-object, dan tupel grafik opsional yang mendasari gabungan. Jika distinct ditentukan untuk pola, gabungan hanya mengekstrak solusi yang khas dari variabel proyeksi yang ditentukan oleh projectionVars, alih-alih semua solusi yang cocok.

  • inlineFilters — (Opsional) Satu set filter yang akan diterapkan pada variabel dalam pola. Pola dievaluasi bersamaan dengan filter ini.

  • joinType — (Wajib) Jenis gabungan yang akan dilakukan:

    • join — Gabungan normal, membutuhkan kecocokan persis antara semua variabel bersama.

    • optional — Sebuah gabungan optional yang menggunakan semantik operator OPTIONAL SPARQL.

    • minus — Sebuah operasi minus yang mempertahankan pemetaan yang tanpa mitra gabungan, menggunakan semanti operator MINUS SPARQL.

    • existence check — Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabel existenceCheckResultVar ke hasil pemeriksaan ini.

  • constraints — (Opsional) Tambahan kendala gabungan yang dipertimbangkan selama penggabungan. Gabungan yang tidak memenuhi kendala ini dibuang.

  • projectionVars— (Opsional) Variabel proyeksi. Digunakan dalam kombinasi bersama distinct := true untuk menegakkan ekstraksi proyeksi khas pada satu set variabel tertentu.

  • cutoffLimit — (Opsional) Batas cutoff untuk jumlah mitra gabungan yang diekstrak. Meskipun tidak ada batas secara default, Anda dapat mengatur ini ke 1 ketika melakukan gabungan untuk menerapkan klausa FILTER (NOT) EXISTS, di mana itu cukup untuk membuktikan atau membantah bahwa ada mitra gabungan.

Operator PipelinedHashIndexJoin

Ini adalah indeks hash all-in-one build dan operator gabungan. Dibutuhkan daftar binding, menggulungnya menjadi indeks hash, dan kemudian bergabung dengan solusi yang masuk terhadap indeks hash.

Pendapat
  • sourceType— (Wajib) Jenis sumber dari mana binding untuk menyimpan dalam indeks hash diperoleh, salah satu dari:

    • pipeline— Penyebab PipelinedHashIndexJoin untuk menggulung solusi yang masuk dari operator hilir di pipa operator ke indeks hash.

    • binding set— Penyebab PipelinedHashIndexJoin untuk menggeser set pengikatan tetap yang ditentukan oleh sourceBindingSet argumen ke dalam indeks hash.

  • sourceSubQuery — (Opsional) Jika nilai sourceType argumen adalahpipeline, argumen ini menentukan subquery yang dievaluasi dan spooled ke dalam indeks hash.

  • sourceBindingSet — (Opsional) Jika nilai sourceType argumen adalahbinding set, argumen ini menentukan set pengikatan statis yang akan di-spooled ke indeks hash.

  • joinType— (Wajib) Jenis bergabung yang akan dilakukan:

    • join — Gabungan normal, membutuhkan kecocokan persis antara semua variabel bersama.

    • optional — Sebuah gabungan optional yang menggunakan semantik operator OPTIONAL SPARQL.

    • minus — Sebuah operasi minus yang mempertahankan pemetaan yang tanpa mitra gabungan, menggunakan semanti operator MINUS SPARQL.

    • existence check — Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabel existenceCheckResultVar ke hasil pemeriksaan ini.

  • existenceCheckResultVar— (Opsional) Hanya digunakan untuk bergabung di mana joinType sama existence check (lihat argumen JoinType di atas).

Operator Projection

Memproyeksikan di atas subset variabel. Jumlah solusi yang mengalir masuk sama dengan jumlah solusi yang mengalir keluar, namun bentuk solusinya berbeda, tergantung pengaturan mode.

Modus
  • retain — Menyimpan dalam solusi hanya variabel yang ditentukan oleh argumen vars.

  • drop — Jatuhkan semua variabel yang ditentukan oleh argumen vars.

Pendapat
  • vars— (Wajib) Variabel yang akan dipertahankan atau dijatuhkan, tergantung pengaturan mode.

Operator PropertyPath

Memungkinkan jalur properti rekursif seperti + atau *. Neptune mengimplementasikan pendekatan iterasi titik tetap berdasarkan template yang ditentukan oleh argumen iterationTemplate. Variabel sisi kiri atau kanan yang dikenal terikat dalam template untuk setiap iterasi titik tetap, sampai tidak ada lagi solusi baru yang dapat ditemukan.

Pendapat
  • iterationTemplate— (Wajib) Nama dari template subkueri yang digunakan untuk mengimplementasikan iterasi titik tetap.

  • leftTerm— (Wajib) Istilah (variabel atau konstan) di sisi kiri jalur properti.

  • rightTerm— (Wajib) Istilah (variabel atau konstan) di sisi kanan jalur properti.

  • lowerBound— (Wajib) Batas bawah untuk iterasi titik tetap (baik 0 untuk kueri *, atau 1 untuk kueri +).

Operator TermResolution

Menerjemahkan nilai-nilai pengidentifikasi string internal kembali ke string eksternal mereka yang sesuai, atau menerjemahkan string eksternal ke nilai-nilai pengidentifikasi string internal, tergantung modenya.

Modus
  • value2id— Memetakan istilah seperti literal dan URI ke nilai ID internal yang sesuai (mengenkode ke nilai internal).

  • id2value— Memetakan nilai ID internal ke istilah yang sesuai seperti literal dan URI (mendekode ke nilai internal).

Pendapat
  • vars— (Wajib) Menentukan variabel pemetaan string atau ID string internal.

Operator Slice

Mengimplementasikan potongan di atas aliran solusi masuk, menggunakan semantik klausa LIMIT dan OFFSET SPARQL.

Pendapat
  • limit— (Opsional) Batas pada solusi yang akan diteruskan.

  • offset— (Opsional) Offset di mana solusi dievaluasi untuk penerusan.

Operator SolutionInjection

Tidak menerima input. Menyuntikkan solusi secara statis ke dalam rencana kueri dan mencatatnya dalam argumen solutions.

Rencana kueri selalu dimulai dengan injeksi statis ini. Jika solusi statis yang akan disuntikkan dapat berasal dari kueri itu sendiri dengan menggabungkan berbagai sumber binding statis (misalnya, dari klausa VALUES atau BIND), maka operator SolutionInjection menyuntikkan solusi statis turunan ini. Dalam kasus yang paling sederhana, hal ini mencerminkan binding yang tersirat oleh klausa VALUES luar.

Jika tidak ada solusi statis dapat diturunkan dari kueri, SolutionInjection menyuntikkan solusi kosong, yang disebut solusi universal, yang diperluas dan digandakan sepanjang proses evaluasi kueri.

Pendapat
  • solutions— (Wajib) Urutan solusi yang disuntikkan oleh operator.

Operator Sort

Mengurutkan set solusi menggunakan kondisi pengurutan tertentu.

Pendapat
  • sortOrder— (Wajib) Daftar variabel yang diurutkan, masing-masing berisi pengidentifikasi ASC (naik) atau DESC (turun), digunakan secara berurutan untuk mengurutkan set solusi.

Operator VariableAlignment

Memeriksa solusi satu per satu, melakukan penyelarasan pada masing-masing pada dua variabel: sourceVar yang ditentukan dan targetVar yang ditentukan.

Jika sourceVar dan targetVar dalam solusi memiliki nilai yang sama, variabel dianggap selaras dan solusi diteruskan, dengan sourceVar berulang diproyeksikan keluar.

Jika variabel terikat ke nilai yang berbeda, solusinya disaring seluruhnya.

Pendapat
  • sourceVar— (Wajib) Variabel sumber, untuk dibandingkan dengan variabel target. Jika penyelarasan berhasil dalam solusi, yang berarti bahwa dua variabel memiliki nilai yang sama, variabel sumber diproyeksikan keluar.

  • targetVar— (Wajib) Variabel target, sebagai pembanding variabel sumber. Dipertahankan bahkan ketika penyelarasan berhasil.