Verwaltung von Statistiken, die der Neptune verwenden DFE kann - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwaltung von Statistiken, die der Neptune verwenden DFE kann

Anmerkung

Die Support für openCypher hängt von der DFE Abfrage-Engine in Neptune ab.

Die DFE Engine war zuerst im Labormodus in der Neptune-Engine-Version 1.0.3.0 verfügbar, und ab der Neptune-Engine-Version 1.0.5.0 wurde sie standardmäßig aktiviert, jedoch nur für die Verwendung mit Abfragehinweisen und zur Unterstützung. openCypher

Ab Version 1.1.1.0 der Neptune-Engine befindet sich die DFE Engine nicht mehr im Labormodus und wird nun über den neptune_dfe_query_engine Instanzparameter in der DB-Parametergruppe einer Instanz gesteuert.

Die DFE Engine verwendet Informationen über die Daten in Ihrem Neptun-Diagramm, um bei der Planung der Abfrageausführung effektive Kompromisse einzugehen. Bei diesen Informationen handelt es sich um Statistiken, die sogenannte Merkmalssätze und Prädikatstatistiken umfassen, die als Anleitung für die Abfrageplanung dienen können.

Ab der Engine-Version 1.2.1.0 können Sie mithilfe des Endpunkts oder anhand des Endpunkts zusammenfassende Informationen zu Ihrem Diagramm aus diesen Statistiken abrufen. GetGraphSummaryAPIsummary

Diese DFE Statistiken werden derzeit immer dann neu generiert, wenn sich entweder mehr als 10% der Daten in Ihrem Diagramm geändert haben oder wenn die neuesten Statistiken älter als 10 Tage sind. Diese Auslöser können sich in der Zukunft jedoch ändern.

Anmerkung

Die Statistikgenerierung ist für T3- und T4g-Instances deaktiviert, da sie die Arbeitsspeicherkapazität dieser Instance-Typen überschreiten kann.

Sie können die Generierung von DFE Statistiken über einen der folgenden Endpunkte verwalten:

  • https://your-neptune-host:port/rdf/statistics (fürSPARQL).

  • https://your-neptune-host:port/propertygraph/statistics(für Gremlin undopenCypher) und seine alternative Version:. https://your-neptune-host:port/pg/statistics

Anmerkung

Ab Engine-Version 1.1.1.0 wird der Gremlin-Statistik-Endpunkt (https://your-neptune-host:port/gremlin/statistics) zugunsten des propertygraph- oder pg-Endpunkts außer Betrieb genommen. Aus Gründen der Abwärtskompatibilität wird er weiter unterstützt, wird jedoch in zukünftigen Versionen möglicherweise entfernt.

Ab der Engine-Version 1.2.1.0 ist der SPARQL Statistik-Endpunkt (https://your-neptune-host:port/sparql/statistics) zugunsten des Endpunkts veraltet. rdf Aus Gründen der Abwärtskompatibilität wird er weiter unterstützt, wird jedoch in zukünftigen Versionen möglicherweise entfernt.

In den folgenden Beispielen $STATISTICS_ENDPOINT steht er für einen dieser Endpunkte. URLs

Anmerkung

Befindet sich ein DFE Statistik-Endpunkt auf einer Reader-Instance, sind die einzigen Anfragen, die er verarbeiten kann, Statusanfragen. Andere Anfragen schlagen mit einer ReadOnlyViolationException fehl.

Größenbeschränkungen für die DFE Statistikgenerierung

Derzeit wird die DFE Statistikgenerierung angehalten, wenn eine der folgenden Größenbeschränkungen erreicht wird:

  • Die Anzahl der generierten Merkmalsätze darf 50 000 nicht überschreiten.

  • Die Anzahl der generierten Prädikatstatistiken darf eine Million nicht überschreiten.

Diese Grenzwerte unterliegen Änderungen.

Aktueller Stand der DFE Statistiken

Sie können den aktuellen Status der DFE Statistiken mit der folgenden curl Anfrage überprüfen:

curl -G "$STATISTICS_ENDPOINT"

Die Antwort auf eine Statusanforderung enthält die folgenden Felder:

  • status— der HTTP Rückgabecode der Anfrage. Wenn die Anforderung erfolgreich ist, lautet der Code 200. Eine Liste mit häufigen Fehlern finden Sie unter Häufige Fehler.

  • payload:

    • autoCompute  –   (Boolean) Gibt an, ob die automatische Generierung von Statistiken aktiviert ist oder nicht.

    • active— (Boolean) Gibt an, ob die Generierung von DFE Statistiken überhaupt aktiviert ist oder nicht.

    • statisticsId   –   Meldet die ID der aktuellen Statistikgenerierungsausführung. Der Wert -1 gibt an, dass keine Statistiken generiert wurden.

    • date— Der UTC Zeitpunkt, zu dem DFE Statistiken zuletzt generiert wurden, im Format ISO 8601.

      Anmerkung

      Vor Engine-Version 1.2.1.0 wurde dies mit Minutengenauigkeit dargestellt. Ab Engine-Version 1.2.1.0 wird dies mit Millisekundengenauigkeit dargestellt (zum Beispiel 2023-01-24T00:47:43.319Z).

    • note  –   Ein Hinweis zu Problemen in dem Fall, dass Statistiken ungültig sind.

    • signatureInfo  –   Enthält Informationen zu den in der Statistik generierten Merkmalsätzen (vor Engine-Version 1.2.1.0 hatte dieses Feld den Namen summary). Dies ist im Allgemeinen nicht direkt umsetzbar:

      • signatureCount  –   Gesamtzahl der Signaturen für alle Merkmalsätze.

      • instanceCount  –   Gesamtzahl der Merkmalsatz-Instances.

      • predicateCount  –   Gesamtzahl der eindeutigen Prädikate.

Die Antwort auf eine Statusanforderung, wenn keine Statistiken generiert wurden, sieht wie folgt aus:

{ "status" : "200 OK", "payload" : { "autoCompute" : true, "active" : false, "statisticsId" : -1 } }

Wenn DFE Statistiken verfügbar sind, sieht die Antwort wie folgt aus:

{ "status" : "200 OK", "payload" : { "autoCompute" : true, "active" : true, "statisticsId" : 1588893232718, "date" : "2020-05-07T23:13Z", "summary" : { "signatureCount" : 5, "instanceCount" : 1000, "predicateCount" : 20 } } }

Wenn die Generierung von DFE Statistiken fehlgeschlagen ist, weil sie beispielsweise die Größenbeschränkung für Statistiken überschritten hat, sieht die Antwort wie folgt aus:

{ "status" : "200 OK", "payload" : { "autoCompute" : true, "active" : false, "statisticsId" : 1588713528304, "date" : "2020-05-05T21:18Z", "note" : "Limit reached: Statistics are not available" } }

Deaktivierung der automatischen Generierung von Statistiken DFE

Standardmäßig ist die automatische Generierung von DFE Statistiken aktiviert, wenn Sie sie aktivierenDFE.

Sie können die automatische Generierung wie folgt deaktivieren:

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

Wenn die Anfrage erfolgreich ist, lautet der HTTP Antwortcode 200 und die Antwort lautet:

{ "status" : "200 OK" }

Sie können überprüfen, ob die automatische Generierung deaktiviert ist, indem Sie eine Statusanforderung ausgeben und überprüfen, ob das Feld autoCompute in der Antwort auf false festgelegt ist.

Durch das Deaktivieren der automatischen Generierung von Statistiken wird eine laufende Statistikberechnung nicht beendet.

Wenn Sie eine Anfrage zur Deaktivierung der automatischen Generierung an eine Reader-Instance und nicht an die Writer-Instance Ihres DB-Clusters stellen, schlägt die Anfrage mit dem HTTP Rückgabecode 400 fehl und es wird eine Ausgabe wie die folgende ausgegeben:

{ "detailedMessage" : "Writes are not permitted on a read replica instance", "code" : "ReadOnlyViolationException", "requestId":"8eb8d3e5-0996-4a1b-616a-74e0ec32d5f7" }

Eine Liste mit weiteren häufigen Fehlern finden Sie unter Häufige Fehler.

Automatische Generierung von Statistiken erneut aktivieren DFE

Standardmäßig ist die automatische Generierung von DFE Statistiken bereits aktiviert, wenn Sie sie aktivierenDFE. Wenn Sie die automatische Generierung deaktivieren, können Sie diese später wie folgt erneut aktivieren:

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

Wenn die Anfrage erfolgreich ist, lautet der HTTP Antwortcode 200 und die Antwort lautet:

{ "status" : "200 OK" }

Sie können überprüfen, ob die automatische Generierung aktiviert ist, indem Sie eine Statusanforderung ausgeben und prüfen, ob das Feld autoCompute in der Antwort auf true festgelegt ist.

Manuelles Auslösen der Generierung von Statistiken DFE

Sie können die DFE Statistikgenerierung wie folgt manuell einleiten:

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

Wenn die Anfrage erfolgreich ist, sieht die Ausgabe wie folgt aus, mit dem HTTP Rückgabecode 200:

{ "status" : "200 OK", "payload" : { "statisticsId" : 1588893232718 } }

Die statisticsId in der Ausgabe ist die ID der Statistikgenerierung, die zurzeit ausgeführt wird. Wenn zum Zeitpunkt der Anforderung bereits eine Ausführung bearbeitet wird, gibt die Anforderung die ID dieser Ausführung zurück, statt eine neue zu initiieren. Sie können jeweils nur eine Statistikgenerierung gleichzeitig ausführen.

Wenn während der Generierung der DFE Statistiken ein Failover auftritt, nimmt der neue Writer-Knoten den zuletzt verarbeiteten Checkpoint auf und setzt den Statistikvorgang von dort aus fort.

Verwendung der StatsNumStatementsScanned CloudWatch Metrik zur Überwachung der Statistikberechnung

Die StatsNumStatementsScanned CloudWatch Metrik gibt die Gesamtzahl der Anweisungen zurück, die seit dem Start des Servers für statistische Berechnungen gescannt wurden. Sie wird bei jedem Slice der Statistikberechnung aktualisiert.

Bei jeder Auslösung einer Statistikberechnung nimmt diese Zahl zu. Wenn keine Berechnung stattfindet, bleibt sie konstant. Wenn Sie ein Diagramm mit StatsNumStatementsScanned-Werten über die Zeit betrachten, erhalten Sie daher ein ziemlich klares Bild davon, wann und wie schnell Statistikberechnungen ausgeführt wurden:

Diagramm der StatsNumStatementsScanned Metrikwerte

Während der Berechnung zeigt Ihnen die Steigung im Diagramm, wie schnell diese ausgeführt wird. (Je steiler die Steigung, desto schneller werden Statistiken berechnet.)

Wenn das Diagramm einfach eine flache Linie bei 0 ist, wurde das Statistik-Feature aktiviert, es wurden jedoch keine Statistiken berechnet. Wenn das Statistik-Feature deaktiviert wurde oder wenn Sie eine Engine-Version verwenden, die keine Statistikberechnung unterstützt, ist StatsNumStatementsScanned nicht vorhanden.

Wie bereits erwähnt, können Sie die Statistikberechnung mithilfe der Statistiken deaktivieren. Wenn Sie sie jedoch deaktivierenAPI, kann dies dazu führen, dass die Statistiken nicht aktuell sind, was wiederum zu einer schlechten Generierung von Abfrageplänen für die DFE Engine führen kann.

Informationen Überwachung von Neptune mit Amazon CloudWatch zur Verwendung CloudWatch finden Sie unter.

Verwendung der AWS Identity and Access Management (IAM) -Authentifizierung mit DFE Statistikendpunkten

Mithilfe der IAM Authentifizierung können Sie mithilfe von awscurl oder einem anderen Tool, das mit und arbeitet, sicher auf DFE Statistikendpunkte zugreifen. HTTPS IAM Weitere Informationen dazu, wie Sie korrekte Anmeldeinformationen einrichten, finden Sie unter Verwendung awscurl mit temporären Anmeldeinformationen für eine sichere Verbindung zu einem DB-Cluster mit aktivierter IAM Authentifizierung. Anschließend können Sie eine Statusanforderung wie folgt senden:

awscurl "$STATISTICS_ENDPOINT" \ --region (your region) \ --service neptune-db

Oder Sie können beispielsweise eine JSON Datei mit dem Namen request.json erstellen, die Folgendes enthält:

{ "mode" : "refresh" }

Sie können die Generierung von DFE-Statistiken dann wie folgt manuell initiieren:

awscurl "$STATISTICS_ENDPOINT" \ --region (your region) \ --service neptune-db \ -X POST -d @request.json

DFEStatistiken löschen

Sie können alle Statistiken in der Datenbank löschen, indem Sie eine HTTP DELETE Anfrage an den Statistik-Endpunkt stellen:

curl -X "DELETE" "$STATISTICS_ENDPOINT"

Gültige HTTP Rückgabecodes sind:

  • 200   –   Die Statistiken wurden erfolgreich gelöscht.

    In diesem Fall würde eine typische Antwort wie folgt aussehen:

    { "status" : "200 OK", "payload" : { "active" : false, "statisticsId" : -1 } }
  • 204   –   Es gab keine Statistiken, die gelöscht werden konnten.

    In diesem Fall ist die Antwort leer (keine Antwort).

Wenn Sie eine Löschanforderung an einen Statistikendpunkt auf einem Reader-Knoten senden, wird eine ReadOnlyViolationException ausgelöst.

Häufige Fehlercodes bei DFE Statistikanfragen

Im Folgenden finden Sie eine Liste häufiger Fehler, die auftreten können, wenn Sie eine Anforderung an einen Statistikendpunkt senden:

  • AccessDeniedException   –   Rückgabecode: 400. Meldung: Missing Authentication Token.

  • BadRequestException(für Gremlin undopenCypher) — Rückgabecode:. 400 Meldung: Bad route: /pg/statistics.

  • BadRequestException(für RDF Daten) — Rückgabecode:. 400 Meldung: Bad route: /rdf/statistics.

  • InvalidParameterException   –   Rückgabecode: 400. Meldung: Statistics command parameter 'mode' has unsupported value 'the invalid value'.

  • MissingParameterException   –   Rückgabecode: 400. Meldung: Content-type header not specified..

  • ReadOnlyViolationException   –   Rückgabecode: 400. Meldung: Writes are not permitted on a read replica instance.

Wenn Sie beispielsweise eine Anfrage stellen, obwohl die Statistiken DFE und nicht aktiviert sind, erhalten Sie eine Antwort wie die folgende:

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