Mengelola statistik untuk Neptune DFE yang akan 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 Neptune DFE yang akan digunakan

catatan

Support untuk OpenCypher tergantung pada mesin query DFE di Neptunus.

Mesin DFE pertama kali tersedia dalam mode lab di rilis mesin Neptunus 1.0.3.0, dan mulai di rilis mesin Neptunus 1.0.5.0, menjadi diaktifkan secara default, tetapi hanya untuk digunakan dengan petunjuk kueri dan untuk dukungan OpenCypher.

Dimulai dengan rilis mesin Neptunus 1.1.1.0, mesin DFE tidak lagi dalam mode lab, dan sekarang dikontrol menggunakan neptune_dfe_query_engine parameter instance dalam grup parameter DB instans.

Mesin DFE 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 engine 1.2.1.0, Anda dapat mengambil informasi ringkasan tentang grafik Anda dari statistik ini menggunakan GetGraphSummaryAPI atau titik akhir. summary

Statistik DFE 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 statistik DFE melalui salah satu titik akhir berikut:

  • https://your-neptune-host:port/rdf/statistics     (untuk SPARQL).

  • https://your-neptune-host:port/propertygraph/statistics(untuk Gremlin dan OpenCypher), 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 statistik SPARQL (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 URL endpoint ini.

catatan

Jika titik akhir statistik DFE berada pada instans pembaca, satu-satunya permintaan yang dapat diproses adalah permintaan status. Permintaan lainnya akan gagal dengan ReadOnlyViolationException.

Batas ukuran untuk pembuatan statistik DFE

Saat ini, pembuatan statistik DFE berhenti 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 statistik DFE saat ini

Anda dapat memeriksa status statistik DFE saat ini menggunakan permintaan curl:

curl -G "$STATISTICS_ENDPOINT"

Respons ke permintaan status berisi bidang-bidang berikut:

  • status — Kode pengembalian HTTP dari 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 statistik DFE diaktifkan atau tidak.

    • statisticsId — Laporan ID dari pembuatan statistik saat ini yang dijalankan. Nilai -1 menunjukkan bahwa tidak ada statistik yang dihasilkan.

    • date— Waktu UTC di mana statistik DFE baru-baru ini 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 statistik DFE 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 statistik DFE gagal, misalnya karena melebihi batas ukuran statistik, responnya 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 otomatis statistik DFE

Secara default, pembuatan otomatis statistik DFE diaktifkan saat Anda mengaktifkan DFE.

Anda dapat menonaktifkan pembuatan otomatis sebagai berikut:

curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "disableAutoCompute" }'

Jika permintaan berhasil, kode respons HTTP-nya 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 instans pembaca daripada instans penulis klaster DB Anda, permintaan gagal dengan kode kembali HTTP 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 otomatis statistik DFE

Secara default, pembuatan otomatis statistik DFE sudah diaktifkan saat Anda mengaktifkan DFE. Jika Anda menonaktifkan pembuatan otomatis, Anda dapat mengaktifkannya kembali nanti sebagai berikut:

curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "enableAutoCompute" }'

Jika permintaan berhasil, kode respons HTTP-nya 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 DFE secara manual

Anda dapat memulai pembuatan statistik DFE secara manual sebagai berikut:

curl -X POST "$STATISTICS_ENDPOINT" -d '{ "mode" : "refresh" }'

Jika permintaan berhasil, outputnya adalah sebagai berikut, dengan kode kembali HTTP 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 fail-over terjadi sementara statistik DFE sedang dihasilkan, node penulis baru akan mengambil pos pemeriksaan yang diproses terakhir dan melanjutkan proses statistik 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 API statistik, 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 otentikasi AWS Identity and Access Management (IAM) dengan titik akhir statistik DFE

Anda dapat mengakses titik akhir statistik DFE secara aman dengan otentikasi IAM dengan menggunakan awscurl atau alat lain yang bekerja dengan HTTPS dan IAM. Lihat Menggunakan awscurl dengan kredensi sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan 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 file JSON dengan nama 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 permintaan HTTP DELETE ke titik akhir statistik:

curl -X "DELETE" "$STATISTICS_ENDPOINT"

Kode pengembalian HTTP 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 statistik DFE

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 dan OpenCypher) - Kode pengembalian:. 400 Pesan: Bad route: /pg/statistics.

  • BadRequestException(untuk data RDF) — 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 ketika DFE dan statistik tidak diaktifkan, Anda akan mendapatkan respons seperti berikut:

{ "code" : "BadRequestException", "requestId" : "b2b8f8ee-18f1-e164-49ea-836381a3e174", "detailedMessage" : "Bad route: /sparql/statistics" }