Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola statistik untuk DFE Neptunus untuk digunakan
catatan
Support untuk openCypher tergantung pada mesin DFE kueri di Neptunus.
DFEMesin ini pertama kali tersedia dalam mode lab di rilis mesin Neptunus 1.0.3.0, dan mulai di rilis mesin Neptunus 1.0.5.0, itu menjadi diaktifkan secara default, tetapi hanya untuk digunakan dengan petunjuk kueri dan untuk dukungan. openCypher
Dimulai dengan rilis mesin Neptunus 1.1.1.0 DFE mesin tidak lagi dalam mode lab, dan sekarang dikontrol menggunakan neptune_dfe_query_engine parameter instance dalam grup parameter DB instans.
DFEMesin menggunakan informasi tentang data dalam grafik Neptunus Anda untuk membuat trade-off yang efektif saat merencanakan eksekusi kueri. Informasi ini mengambil bentuk statistik yang mencakup apa yang disebut set karakteristik dan statistik predikat yang dapat memandu perencanaan kueri.
Dimulai dengan rilis mesin 1.2.1.0, Anda dapat mengambil informasi ringkasan tentang grafik Anda dari statistik ini menggunakan GetGraphSummaryAPIatau titik akhir. summary
DFEStatistik ini saat ini dihasilkan kembali setiap kali lebih dari 10% data dalam grafik Anda telah berubah atau ketika statistik terbaru berusia lebih dari 10 hari. Namun, pemicu ini dapat berubah di masa depan.
catatan
Pembuatan statistik dinonaktifkan T3
dan T4g
instance karena dapat melebihi kapasitas memori dari jenis instance tersebut.
Anda dapat mengelola pembuatan DFE statistik melalui salah satu titik akhir berikut:
https://
(untukSPARQL).your-neptune-host
:port
/rdf/statisticshttps://
(untuk Gremlin danopenCypher), dan versi alternatifnya:.your-neptune-host
:port
/propertygraph/statisticshttps://
your-neptune-host
:port
/pg/statistics
catatan
Pada rilis mesin 1.1.1.0, titik akhir statistik Gremlin (https://
) tidak digunakan lagi demi titik akhir atau. your-neptune-host
:port
/gremlin/statisticspropertygraph
pg
Ini masih didukung untuk kompatibilitas mundur tetapi dapat dihapus di rilis mendatang.
Pada rilis mesin 1.2.1.0, titik akhir SPARQL statistik (https://
) tidak digunakan lagi demi titik akhir. your-neptune-host
:port
/sparql/statisticsrdf
Ini masih didukung untuk kompatibilitas mundur tetapi dapat dihapus di rilis mendatang.
Dalam contoh di bawah ini, $STATISTICS_ENDPOINT
singkatan dari salah satu titik akhir URLs ini.
catatan
Jika titik akhir DFE statistik ada pada instance pembaca, satu-satunya permintaan yang dapat diproses adalah permintaan status. Permintaan lainnya akan gagal dengan ReadOnlyViolationException
.
Batas ukuran untuk generasi DFE statistik
Saat ini, pembuatan DFE statistik terhenti jika salah satu dari batas ukuran berikut tercapai:
Jumlah set karakteristik yang dihasilkan tidak boleh melebihi 50.000.
Jumlah statistik predikat yang dihasilkan tidak boleh melebihi satu juta.
Batas ini bisa berubah.
Status DFE statistik saat ini
Anda dapat memeriksa status DFE statistik saat ini menggunakan curl
permintaan berikut:
curl -G "$STATISTICS_ENDPOINT"
Respons ke permintaan status berisi bidang-bidang berikut:
status
— kode HTTP pengembalian permintaan. Jika permintaan berhasil, kodenya adalah200
. Lihat Kesalahan umum untuk daftar kesalahan umum.-
payload
:autoCompute
— (Boolean) Menunjukkan apakah pembuatan statistik otomatis diaktifkan atau tidak.active
— (Boolean) Menunjukkan apakah pembuatan DFE statistik diaktifkan atau tidak.statisticsId
— Laporan ID dari pembuatan statistik saat ini yang dijalankan. Nilai-1
menunjukkan bahwa tidak ada statistik yang dihasilkan.-
date
— UTC Waktu di mana DFE statistik terbaru dihasilkan, dalam format ISO 8601.catatan
Sebelum rilis mesin 1.2.1.0, ini diwakili dengan presisi menit, tetapi dari rilis mesin 1.2.1.0 ke depan, ini diwakili dengan presisi milidetik (misalnya,).
2023-01-24T00:47:43.319Z
note
— Catatan tentang masalah dalam kasus di mana statistik tidak valid.-
signatureInfo
— Berisi informasi tentang set karakteristik yang dihasilkan dalam statistik (sebelum rilis mesin 1.2.1.0, bidang ini diberi namasummary
). Ini umumnya tidak langsung ditindaklanjuti:signatureCount
— Jumlah total tanda tangan di semua set karakteristik.instanceCount
— Jumlah total instans karakteristik-set.predicateCount
— Jumlah total predikat unik.
Respons terhadap permintaan status ketika tidak ada statistik telah dihasilkan terlihat seperti ini:
{ "status" : "200 OK", "payload" : { "autoCompute" : true, "active" : false, "statisticsId" : -1 } }
Jika DFE statistik tersedia, responsnya terlihat seperti ini:
{ "status" : "200 OK", "payload" : { "autoCompute" : true, "active" : true, "statisticsId" : 1588893232718, "date" : "2020-05-07T23:13Z", "summary" : { "signatureCount" : 5, "instanceCount" : 1000, "predicateCount" : 20 } } }
Jika pembuatan DFE statistik gagal, misalnya karena melebihi batasan ukuran statistik, responsnya terlihat seperti ini:
{ "status" : "200 OK", "payload" : { "autoCompute" : true, "active" : false, "statisticsId" : 1588713528304, "date" : "2020-05-05T21:18Z", "note" : "Limit reached: Statistics are not available" } }
Menonaktifkan pembuatan statistik otomatis DFE
Secara default, pembuatan DFE statistik otomatis diaktifkan saat Anda mengaktifkanDFE.
Anda dapat menonaktifkan pembuatan otomatis sebagai berikut:
curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "disableAutoCompute" }'
Jika permintaan berhasil, kode HTTP responsnya adalah 200
dan responsnya adalah:
{ "status" : "200 OK" }
Anda dapat mengonfirmasi bahwa pembuatan otomatis dinonaktifkan dengan mengeluarkan permintaan status dan memeriksa bahwa bidang autoCompute
di dalam respons diatur ke false
.
Menonaktifkan pembuatan statistik otomatis tidak mengakhiri komputer statistik yang sedang berlangsung.
Jika Anda membuat permintaan untuk menonaktifkan pembuatan otomatis ke instance pembaca daripada instance penulis dari cluster DB Anda, permintaan gagal dengan kode HTTP pengembalian 400 dan output seperti berikut:
{ "detailedMessage" : "Writes are not permitted on a read replica instance", "code" : "ReadOnlyViolationException", "requestId":"8eb8d3e5-0996-4a1b-616a-74e0ec32d5f7" }
Lihat Kesalahan umum untuk daftar kesalahan umum lainnya.
Mengaktifkan kembali pembuatan statistik otomatis DFE
Secara default, pembuatan DFE statistik otomatis sudah diaktifkan saat Anda mengaktifkanDFE. Jika Anda menonaktifkan pembuatan otomatis, Anda dapat mengaktifkannya kembali nanti sebagai berikut:
curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "enableAutoCompute" }'
Jika permintaan berhasil, kode HTTP responsnya adalah 200
dan responsnya adalah:
{ "status" : "200 OK" }
Anda dapat mengonfirmasi bahwa pembuatan otomatis diaktifkan dengan mengeluarkan permintaan status dan memeriksa bahwa bidang autoCompute
di dalam respons diatur ke true
.
Memicu pembuatan statistik secara manual DFE
Anda dapat memulai pembuatan DFE statistik secara manual sebagai berikut:
curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "refresh" }'
Jika permintaan berhasil, outputnya adalah sebagai berikut, dengan kode HTTP pengembalian 200:
{ "status" : "200 OK", "payload" : { "statisticsId" : 1588893232718 } }
statisticsId
dalam output adalah ID dari proses pembuatan statistik yang saat ini terjadi. Jika proses sudah berjalan pada saat permintaan, permintaan mengembalikan ID yang dijalankan daripada memulai yang baru. Hanya satu proses pembuatan statistik yang dapat terjadi pada satu waktu.
Jika kegagalan terjadi saat DFE statistik sedang dihasilkan, node penulis baru akan mengambil pos pemeriksaan terakhir yang diproses dan melanjutkan statistik yang dijalankan dari sana.
Menggunakan StatsNumStatementsScanned
CloudWatch metrik untuk memantau perhitungan statistik
StatsNumStatementsScanned
CloudWatch Metrik mengembalikan jumlah total pernyataan yang dipindai untuk perhitungan statistik sejak server dimulai. Ini diperbarui pada setiap irisan perhitungan statistik.
Setiap kali perhitungan statistik dipicu, angka ini meningkat, dan ketika tidak ada perhitungan yang terjadi, itu tetap konstan. Oleh karena itu, melihat sebidang StatsNumStatementsScanned
nilai dari waktu ke waktu memberi Anda gambaran yang cukup jelas tentang kapan perhitungan statistik terjadi dan seberapa cepat:
![Grafik nilai StatsNumStatementsScanned metrik](images/StatsNumStatementsScanned-graph.png)
Saat perhitungan terjadi, kemiringan grafik menunjukkan seberapa cepat (semakin curam kemiringan, semakin cepat statistik dihitung).
Jika grafik hanyalah garis datar di 0, fitur statistik telah diaktifkan, tetapi tidak ada statistik yang dihitung sama sekali. Jika fitur statistik telah dinonaktifkan, atau jika Anda menggunakan versi mesin yang tidak mendukung perhitungan statistik, fitur tersebut StatsNumStatementsScanned
tidak ada.
Seperti disebutkan sebelumnya, Anda dapat menonaktifkan perhitungan statistik menggunakan statistikAPI, tetapi membiarkannya mati dapat mengakibatkan statistik tidak mutakhir, yang pada gilirannya dapat mengakibatkan pembuatan rencana kueri yang buruk untuk mesin. DFE
Lihat Memantau Neptunus Menggunakan Amazon CloudWatch untuk informasi tentang cara menggunakan CloudWatch.
Menggunakan AWS Identity and Access Management (IAM) otentikasi dengan titik akhir DFE statistik
Anda dapat mengakses titik akhir DFE statistik secara aman dengan IAM otentikasi menggunakan awscurl
awscurl "$STATISTICS_ENDPOINT" \ --region
(your region)
\ --service neptune-db
Atau, misalnya, Anda dapat membuat JSON file bernama request.json
yang berisi:
{ "mode" : "refresh" }
Anda kemudian dapat secara manual memulai pembuatan statistik seperti ini:
awscurl "$STATISTICS_ENDPOINT" \ --region
(your region)
\ --service neptune-db \ -X POST -d @request.json
Menghapus statistik DFE
Anda dapat menghapus semua statistik dalam database dengan membuat HTTP DELETE permintaan ke titik akhir statistik:
curl -X "DELETE" "$STATISTICS_ENDPOINT"
Kode HTTP pengembalian yang valid adalah:
-
200
— penghapusan berhasil.Dalam hal ini, respons tipikal akan terlihat seperti:
{ "status" : "200 OK", "payload" : { "active" : false, "statisticsId" : -1 } }
-
204
Tidak ada statistik yang harus dihapus.Dalam hal ini, responsnya kosong (tidak ada respons).
Jika Anda mengirim permintaan penghapusan ke titik akhir statistik pada node pembaca, a ReadOnlyViolationException
dilemparkan.
Kode kesalahan umum untuk permintaan DFE statistik
Berikut ini adalah daftar kesalahan umum yang dapat terjadi ketika Anda membuat permintaan ke titik akhir statistik:
AccessDeniedException
— Kode kembali:400
. Pesan:Missing Authentication Token
.BadRequestException
(untuk Gremlin danopenCypher) — Kode pengembalian:.400
Pesan:Bad route: /pg/statistics
.BadRequestException
(untuk RDF data) — Kode pengembalian:400
. Pesan:Bad route: /rdf/statistics
.InvalidParameterException
— Kode kembali:400
. Pesan:Statistics command parameter 'mode' has unsupported value '
.the invalid value
'MissingParameterException
— Kode kembali:400
. Pesan:Content-type header not specified.
.ReadOnlyViolationException
— Kode kembali:400
. Pesan:Writes are not permitted on a read replica instance
.
Misalnya, jika Anda membuat permintaan saat DFE dan statistik tidak diaktifkan, Anda akan mendapatkan respons seperti berikut:
{ "code" : "BadRequestException", "requestId" : "b2b8f8ee-18f1-e164-49ea-836381a3e174", "detailedMessage" : "Bad route: /sparql/statistics" }