Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Operator Neptunus SPARQL explain
Bagian berikut menjelaskan operator dan parameter untuk SPARQL explain
fitur yang saat ini tersedia di Amazon Neptunus.
penting
SPARQLexplain
Fitur ini masih disempurnakan. Operator dan parameter yang didokumentasikan di sini mungkin berubah dalam versi mendatang.
Topik
- Operator Aggregation
- Operator ConditionalRouting
- Operator Copy
- Operator DFENode
- Operator Distinct
- Operator Federation
- Operator Filter
- Operator HashIndexBuild
- Operator HashIndexJoin
- Operator MergeJoin
- Operator NamedSubquery
- Operator PipelineJoin
- Operator PipelineCountJoin
- Operator PipelinedHashIndexJoin
- Operator Projection
- Operator PropertyPath
- Operator TermResolution
- Operator Slice
- Operator SolutionInjection
- Operator Sort
- Operator VariableAlignment
Operator Aggregation
Melakukan satu atau lebih agregasi, menerapkan semantik operator SPARQL agregasi seperticount
,,, max
min
, sum
dan sebagainya.
Aggregation
dilengkapi dengan pengelompokan opsional menggunakan klausa groupBy
, dan kendala having
opsional.
Pendapat
groupBy
— (Opsional) Menyediakan klausgroupBy
yang menentukan urutan ekspresi yang menurut pengelompokan solusi masuk.aggregates
— (Wajib) Menentukan daftar urut ekspresi agregasi.having
— (Opsional) Menambahkan kendala untuk memfilter pada grup, seperti yang tersirat olehhaving
klausa 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 olehOut #1
.duplicate
— Menduplikat solusi dan meneruskannya ke masing-masing dari dua operator yang diidentifikasi olehOut #1
danOut #2
.
Copy
tidak memiliki argumen.
Operator DFENode
Operator ini adalah abstraksi dari rencana yang dijalankan oleh mesin kueri DFE alternatif. DFERencana terperinci diuraikan dalam argumen untuk operator ini. Argumen saat ini kelebihan beban untuk memuat statistik runtime rinci dari rencana. DFE Ini berisi waktu yang dihabiskan dalam berbagai langkah eksekusi kueri olehDFE.
Pohon sintaks abstrak yang dioptimalkan secara logis (AST) untuk paket DFE kueri dicetak dengan informasi tentang jenis operator yang dipertimbangkan saat merencanakan dan biaya kasus terbaik dan terburuk terkait untuk menjalankan operator. ASTTerdiri dari jenis node berikut saat ini:
DFEJoinGroupNode
— Merupakan gabungan dari satuDFEPatternNodes
atau lebih.DFEPatternNode
- Merangkum pola mendasar menggunakan tupel yang cocok yang diproyeksikan keluar dari database yang mendasari.
Sub-bagianStatistics & Operator histogram
,, berisi rincian tentang waktu pelaksanaan DataflowOp
rencana dan rincian CPU waktu yang digunakan oleh masing-masing operator. Di bawah ini ada tabel yang mencetak statistik runtime terperinci dari rencana yang dijalankan olehDFE.
catatan
Karena DFE ini adalah fitur eksperimental yang dirilis dalam mode lab, format yang tepat dari explain
outputnya 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 proyeksiDistinct
akan diterapkan.
Operator Federation
Melewati kueri tertentu ke SPARQL titik akhir jarak jauh yang ditentukan.
Pendapat
endpoint
— (Diperlukan) Titik akhir URL dalam SPARQLSERVICE
pernyataan. 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 kunciSILENT
muncul setelah kata kunci tersebut.SILENT
memberi tahu mesin untuk tidak menggagalkan seluruh kueri bahkan jika bagianSERVICE
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 argumensourceBindingSet
ke dalam indeks hash.
sourceBindingSet
— (Opsional) Jika nilai argumensourceType
adalahbinding 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 operatorHashIndexBuild
.-
joinType
— (Wajib) Jenis gabungan yang akan dilakukan:join
— Gabungan normal, membutuhkan kecocokan persis antara semua variabel bersama.optional
—optional
Gabungan yang menggunakan SPARQLOPTIONAL
semantik operator.minus
—minus
Operasi mempertahankan pemetaan yang tidak ada mitra gabungannya, menggunakan semantik SPARQLMINUS
operator.existence check
— Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabelexistenceCheckResultVar
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 manajoinType
sama denganexistence check
(lihat argumenjoinType
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. Jikadistinct
ditentukan 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
—optional
Gabungan yang menggunakan SPARQLOPTIONAL
semantik operator.minus
—minus
Operasi mempertahankan pemetaan yang tidak ada mitra gabungannya, menggunakan semantik SPARQLMINUS
operator.existence check
— Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabelexistenceCheckResultVar
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 bersamadistinct := 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 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
.
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. Jikadistinct
ditentukan 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
—optional
Gabungan yang menggunakan SPARQLOPTIONAL
semantik operator.minus
—minus
Operasi mempertahankan pemetaan yang tidak ada mitra gabungannya, menggunakan semantik SPARQLMINUS
operator.existence check
— Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabelexistenceCheckResultVar
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 bersamadistinct := 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 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.
Pendapat
-
sourceType
— (Wajib) Jenis sumber dari mana binding untuk menyimpan dalam indeks hash diperoleh, salah satu dari:pipeline
— PenyebabPipelinedHashIndexJoin
untuk menggulung solusi yang masuk dari operator hilir di pipa operator ke indeks hash.binding set
— PenyebabPipelinedHashIndexJoin
untuk menggeser set pengikatan tetap yang ditentukan olehsourceBindingSet
argumen ke dalam indeks hash.
sourceSubQuery
— (Opsional) Jika nilaisourceType
argumen adalahpipeline
, argumen ini menentukan subquery yang dievaluasi dan spooled ke dalam indeks hash.sourceBindingSet
— (Opsional) Jika nilaisourceType
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
—optional
Gabungan yang menggunakan SPARQLOPTIONAL
semantik operator.minus
—minus
Operasi mempertahankan pemetaan yang tidak ada mitra gabungannya, menggunakan semantik SPARQLMINUS
operator.existence check
— Memeriksa apakah ada mitra gabungan atau tidak, dan mengikat variabelexistenceCheckResultVar
ke hasil pemeriksaan ini.
existenceCheckResultVar
— (Opsional) Hanya digunakan untuk bergabung di manajoinType
samaexistence check
(lihat joinType argumen 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
.
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 (baik0
untuk kueri*
, atau1
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 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).
Pendapat
vars
— (Wajib) Menentukan variabel yang string atau string internal IDs harus dipetakan.
Operator Slice
Menerapkan irisan di atas aliran solusi yang masuk, menggunakan semantik dari SPARQL's dan klausa. LIMIT
OFFSET
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 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.
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.