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.
Topik
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.
Argumen
groupBy— (Opsional) Menyediakan klausgroupByyang 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 klausulhavingdalam 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.
Argumen
condition— (Wajib) Kondisi perutean.
Operator Copy
Mendelegasikan aliran solusi sebagaimana ditentukan oleh mode tertentu.
Modus
forward— Meneruskan solusi untuk operator hilir yang diidentifikasi olehOut #1.duplicate— Menduplikat solusi dan meneruskannya ke masing-masing dari dua operator yang diidentifikasi olehOut #1danOut #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 satuDFEPatternNodesatau 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.
Argumen
vars— (Wajib) Variabel tempat proyeksiDistinctakan diterapkan.
Operator Federation
Melewatkan kueri tertentu ke titik akhir SPARQL remote yang ditentukan.
Argumen
endpoint— (Wajib) URL titik akhir dalam pernyataanSERVICESPARQL. 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 kunciSILENTmuncul setelah kata kunci tersebut.SILENTmemberi tahu mesin untuk tidak menggagalkan seluruh kueri bahkan jika bagianSERVICEremote gagal.
Operator Filter
Menyaring solusi yang masuk. Hanya solusi yang memenuhi kondisi filter yang diteruskan ke operator hulu, dan yang lainnya dijatuhkan.
Argumen
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.
Argumen
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 argumensourceBindingSetke dalam indeks hash.
sourceBindingSet— (Opsional) Jika nilai argumensourceTypeadalahbinding 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.
Argumen
solutionSet— (Wajib) Nama set solusi yang akan digabungkan. Ini harus berupa indeks hash yang telah dibangun di langkah sebelumnya menggunakan operatorHashIndexBuild.-
joinType— (Wajib) Jenis gabungan yang akan dilakukan:join— Gabungan normal, membutuhkan kecocokan persis antara semua variabel bersama.optional— Sebuah gabunganoptionalyang menggunakan semantik operatorOPTIONALSPARQL.minus— Sebuah operasiminusyang mempertahankan pemetaan yang tanpa mitra gabungan, menggunakan semanti operatorMINUSSPARQL.existence check— Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabelexistenceCheckResultVarke 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 manajoinTypesama denganexistence check(lihat argumenjoinTypesebelumnya).
Operator MergeJoin
Penggabungan yang digabung di lebih dari beberapa set solusi, seperti yang diidentifikasi oleh argumen solutionSets.
Argumen
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.
Argumen
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.
Argumen
pattern— (Wajib) Pola, yang mengambil bentuk subject-predicate-object, dan tupel grafik opsional yang mendasari gabungan. Jikadistinctditentukan untuk pola, gabungan hanya mengekstrak solusi yang khas dari variabel proyeksi yang ditentukan olehprojectionVars, 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 gabunganoptionalyang menggunakan semantik operatorOPTIONALSPARQL.minus— Sebuah operasiminusyang mempertahankan pemetaan yang tanpa mitra gabungan, menggunakan semanti operatorMINUSSPARQL.existence check— Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabelexistenceCheckResultVarke 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 bersamadistinct := trueuntuk 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 klausaFILTER (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.
Argumen
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. Jikadistinctditentukan untuk pola, gabungan hanya mengekstrak solusi yang khas dari variabel proyeksi yang ditentukan olehprojectionVars, 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 gabunganoptionalyang menggunakan semantik operatorOPTIONALSPARQL.minus— Sebuah operasiminusyang mempertahankan pemetaan yang tanpa mitra gabungan, menggunakan semanti operatorMINUSSPARQL.existence check— Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabelexistenceCheckResultVarke 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 bersamadistinct := trueuntuk 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 klausaFILTER (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.
Argumen
-
sourceType— (Wajib) Jenis sumber dari mana binding untuk menyimpan dalam indeks hash diperoleh, salah satu dari:pipeline— PenyebabPipelinedHashIndexJoinuntuk menggeser solusi yang masuk dari operator hilir di pipa operator ke indeks hash.binding set— PenyebabPipelinedHashIndexJoinuntuk menggeser set pengikatan tetap yang ditentukan olehsourceBindingSetargumen ke dalam indeks hash.
sourceSubQuery— (Opsional) Jika nilaisourceTypeargumen adalahpipeline, argumen ini menentukan subquery yang dievaluasi dan spooled ke dalam indeks hash.sourceBindingSet— (Opsional) Jika nilaisourceTypeargumen 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 gabunganoptionalyang menggunakan semantik operatorOPTIONALSPARQL.minus— Sebuah operasiminusyang mempertahankan pemetaan yang tanpa mitra gabungan, menggunakan semanti operatorMINUSSPARQL.existence check— Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabelexistenceCheckResultVarke hasil pemeriksaan ini.
existenceCheckResultVar— (Opsional) Hanya digunakan untuk bergabung di manajoinTypesamaexistence 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 argumenvars.drop— Jatuhkan semua variabel yang ditentukan oleh argumenvars.
Argumen
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.
Argumen
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 (baik0untuk kueri*, atau1untuk 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 nilai ID internal yang URIs sesuai (pengkodean ke nilai internal).id2value— Memetakan nilai ID internal ke istilah yang sesuai seperti literal dan URIs (decoding nilai internal).
Argumen
vars— (Wajib) Menentukan variabel yang string atau string internal IDs harus dipetakan.
Operator Slice
Mengimplementasikan potongan di atas aliran solusi masuk, menggunakan semantik klausa LIMIT dan OFFSET SPARQL.
Argumen
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.
Argumen
solutions— (Wajib) Urutan solusi yang disuntikkan oleh operator.
Operator Sort
Mengurutkan set solusi menggunakan kondisi pengurutan tertentu.
Argumen
sortOrder— (Wajib) Daftar variabel yang diurutkan, masing-masing berisi pengidentifikasiASC(naik) atauDESC(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.
Argumen
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.