Mengelola statistik untuk DFE Neptunus untuk digunakan - Amazon Neptune

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://your-neptune-host:port/rdf/statistics (untukSPARQL).

  • https://your-neptune-host:port/propertygraph/statistics(untuk Gremlin danopenCypher), dan versi alternatifnya:. https://your-neptune-host:port/pg/statistics

catatan

Pada rilis mesin 1.1.1.0, titik akhir statistik Gremlin (https://your-neptune-host:port/gremlin/statistics) tidak digunakan lagi demi titik akhir atau. propertygraph 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://your-neptune-host:port/sparql/statistics) tidak digunakan lagi demi titik akhir. rdf 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 adalah 200. 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

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 atau alat lain yang berfungsi dengan dan. HTTPS IAM Lihat Menggunakan awscurl dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi diaktifkan IAM untuk melihat cara mengatur kredensyal yang tepat. Setelah Anda selesai melakukannya, Anda kemudian dapat membuat permintaan status seperti ini:

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 } }
  • 204Tidak 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:

  • AccessDeniedExceptionKode 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.

  • InvalidParameterExceptionKode kembali: 400. Pesan: Statistics command parameter 'mode' has unsupported value 'the invalid value'.

  • MissingParameterExceptionKode kembali: 400. Pesan: Content-type header not specified..

  • ReadOnlyViolationExceptionKode 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" }