View a markdown version of this page

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 dikontrol menggunakan parameter neptune_dfe_query_engine 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.

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 sebagai berikut:

catatan

Contoh berikut menggunakan titik akhir grafik properti dan perintah. Untuk data RDF, gunakan get-sparql-statistics untuk AWS CLI, dan /rdf/statistics untuk titik akhir REST.

AWS CLI
aws neptunedata get-propertygraph-statistics \ --endpoint-url https://your-neptune-endpoint:port \ --region us-east-1
catatan

Ganti us-east-1 dengan Wilayah cluster Neptunus Anda. Anda dapat menghilangkan --region jika Anda telah mengkonfigurasi Wilayah default.

Untuk informasi selengkapnya, lihat get-propertygraph-statistics di Command Reference. AWS CLI

SDK
import boto3 import json from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.get_propertygraph_statistics() print(json.dumps(response['payload'], indent=2, default=str))
awscurl
awscurl https://your-neptune-endpoint:port/propertygraph/statistics \ --region us-east-1 \ --service neptune-db
catatan

Contoh ini mengasumsikan bahwa AWS kredenal Anda dikonfigurasi di lingkungan Anda. Ganti us-east-1 dengan Wilayah cluster Neptunus Anda.

Untuk informasi selengkapnya tentang menggunakan awscurl autentikasi IAM, lihat. Menggunakan awscurl dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan

curl
curl -G https://your-neptune-endpoint:port/propertygraph/statistics

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:

catatan

Contoh berikut menggunakan titik akhir grafik properti dan perintah. Untuk data RDF, gunakan manage-sparql-statistics untuk AWS CLI, dan /rdf/statistics untuk titik akhir REST.

AWS CLI
aws neptunedata manage-propertygraph-statistics \ --endpoint-url https://your-neptune-endpoint:port \ --mode disableAutoCompute

Untuk informasi selengkapnya, lihat manage-propertygraph-statistics di Command Reference. AWS CLI

SDK
import boto3 from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.manage_propertygraph_statistics(mode='disableAutoCompute') print(response['status'])
awscurl
awscurl https://your-neptune-endpoint:port/propertygraph/statistics \ --region us-east-1 \ --service neptune-db \ -X POST \ -H 'Content-Type: application/json' \ -d '{"mode":"disableAutoCompute"}'
catatan

Contoh ini mengasumsikan bahwa AWS kredenal Anda dikonfigurasi di lingkungan Anda. Ganti us-east-1 dengan Wilayah cluster Neptunus Anda.

Untuk informasi selengkapnya tentang menggunakan awscurl autentikasi IAM, lihat. Menggunakan awscurl dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan

curl
curl -X POST -d '{ "mode" : "disableAutoCompute" }' https://your-neptune-endpoint:port/propertygraph/statistics

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.

Re-enabling generasi 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:

catatan

Contoh berikut menggunakan titik akhir grafik properti dan perintah. Untuk data RDF, gunakan manage-sparql-statistics untuk AWS CLI, dan /rdf/statistics untuk titik akhir REST.

AWS CLI
aws neptunedata manage-propertygraph-statistics \ --endpoint-url https://your-neptune-endpoint:port \ --mode enableAutoCompute

Untuk informasi selengkapnya, lihat manage-propertygraph-statistics di Command Reference. AWS CLI

SDK
import boto3 from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.manage_propertygraph_statistics(mode='enableAutoCompute') print(response['status'])
awscurl
awscurl https://your-neptune-endpoint:port/propertygraph/statistics \ --region us-east-1 \ --service neptune-db \ -X POST \ -H 'Content-Type: application/json' \ -d '{"mode":"enableAutoCompute"}'
catatan

Contoh ini mengasumsikan bahwa AWS kredenal Anda dikonfigurasi di lingkungan Anda. Ganti us-east-1 dengan Wilayah cluster Neptunus Anda.

Untuk informasi selengkapnya tentang menggunakan awscurl autentikasi IAM, lihat. Menggunakan awscurl dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan

curl
curl -X POST -d '{ "mode" : "enableAutoCompute" }' https://your-neptune-endpoint:port/propertygraph/statistics

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:

catatan

Contoh berikut menggunakan titik akhir grafik properti dan perintah. Untuk data RDF, gunakan manage-sparql-statistics untuk AWS CLI, dan /rdf/statistics untuk titik akhir REST.

AWS CLI
aws neptunedata manage-propertygraph-statistics \ --endpoint-url https://your-neptune-endpoint:port \ --mode refresh

Untuk informasi selengkapnya, lihat manage-propertygraph-statistics di Command Reference. AWS CLI

SDK
import boto3 import json from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.manage_propertygraph_statistics(mode='refresh') print(json.dumps(response['payload'], indent=2, default=str))
awscurl
awscurl https://your-neptune-endpoint:port/propertygraph/statistics \ --region us-east-1 \ --service neptune-db \ -X POST \ -H 'Content-Type: application/json' \ -d '{"mode":"refresh"}'
catatan

Contoh ini mengasumsikan bahwa AWS kredenal Anda dikonfigurasi di lingkungan Anda. Ganti us-east-1 dengan Wilayah cluster Neptunus Anda.

Untuk informasi selengkapnya tentang menggunakan awscurl autentikasi IAM, lihat. Menggunakan awscurl dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan

curl
curl -X POST -d '{ "mode" : "refresh" }' https://your-neptune-endpoint:port/propertygraph/statistics

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.

Penggunaan AWS Identity and Access Management Otentikasi (IAM) dengan titik akhir statistik DFE

Anda dapat mengakses titik akhir statistik DFE secara aman dengan autentikasi IAM dengan menggunakan AWS CLI, awscurl, atau alat lain yang bekerja dengan HTTPS dan IAM. Untuk informasi tentang pengaturan kredensional yang tepat, lihat. Menggunakan awscurl dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan

Contoh berikut menunjukkan cara membuat permintaan status yang diautentikasi:

catatan

Contoh berikut menggunakan titik akhir grafik properti dan perintah. Untuk data RDF, gunakan perintah SPARQL yang setara (get-sparql-statistics,manage-sparql-statistics) untuk AWS CLI, dan /rdf/statistics untuk titik akhir REST.

AWS CLI
aws neptunedata get-propertygraph-statistics \ --endpoint-url https://your-neptune-endpoint:port

AWS CLI Menangani autentikasi IAM secara otomatis menggunakan kredensi yang dikonfigurasi.

SDK
import boto3 import json from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.get_propertygraph_statistics() print(json.dumps(response['payload'], indent=2, default=str))

SDK menangani autentikasi IAM secara otomatis menggunakan kredensyal yang dikonfigurasi.

awscurl
awscurl https://your-neptune-endpoint:port/propertygraph/statistics \ --region us-east-1 \ --service neptune-db
catatan

Ganti us-east-1 dengan Wilayah cluster Neptunus Anda.

curl
curl -G https://your-neptune-endpoint:port/propertygraph/statistics
catatan

Contoh ini tidak termasuk otentikasi IAM. Untuk menggunakan otentikasi IAM dengancurl, Anda harus menandatangani permintaan secara manual. Pertimbangkan untuk menggunakan AWS CLI, SDK, atau awscurl sebagai gantinya.

Contoh berikut secara manual memulai pembuatan statistik dengan otentikasi:

AWS CLI
aws neptunedata manage-propertygraph-statistics \ --endpoint-url https://your-neptune-endpoint:port \ --mode refresh
SDK
import boto3 import json from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.manage_propertygraph_statistics(mode='refresh') print(json.dumps(response['payload'], indent=2, default=str))
awscurl

Buat file JSON bernama request.json yang berisi:

{ "mode" : "refresh" }

Kemudian jalankan:

awscurl https://your-neptune-endpoint:port/propertygraph/statistics \ --region us-east-1 \ --service neptune-db \ -X POST \ -H 'Content-Type: application/json' \ -d @request.json
curl
curl -X POST https://your-neptune-endpoint:port/propertygraph/statistics \ -H 'Content-Type: application/json' \ -d '{ "mode" : "refresh" }'
catatan

Contoh ini tidak termasuk otentikasi IAM. Untuk menggunakan otentikasi IAM dengancurl, Anda harus menandatangani permintaan secara manual. Pertimbangkan untuk menggunakan AWS CLI, SDK, atau awscurl sebagai gantinya.

Menghapus statistik DFE

Anda dapat menghapus semua statistik dalam database sebagai berikut:

catatan

Contoh berikut menggunakan titik akhir grafik properti dan perintah. Untuk data RDF, gunakan delete-sparql-statistics untuk AWS CLI, dan /rdf/statistics untuk titik akhir REST.

AWS CLI
aws neptunedata delete-propertygraph-statistics \ --endpoint-url https://your-neptune-endpoint:port

Untuk informasi selengkapnya, lihat delete-propertygraph-statistics di Command Reference. AWS CLI

SDK
import boto3 import json from botocore.config import Config client = boto3.client( 'neptunedata', endpoint_url='https://your-neptune-endpoint:port', config=Config(read_timeout=None, retries={'total_max_attempts': 1}) ) response = client.delete_propertygraph_statistics() print(json.dumps(response['payload'], indent=2, default=str))
awscurl
awscurl https://your-neptune-endpoint:port/propertygraph/statistics \ --region us-east-1 \ --service neptune-db \ -X DELETE
catatan

Contoh ini mengasumsikan bahwa AWS kredenal Anda dikonfigurasi di lingkungan Anda. Ganti us-east-1 dengan Wilayah cluster Neptunus Anda.

Untuk informasi selengkapnya tentang menggunakan awscurl autentikasi IAM, lihat. Menggunakan awscurl dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan

curl
curl -X DELETE https://your-neptune-endpoint:port/propertygraph/statistics

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