Leeren eines Amazon-Neptune-DB-Clusters über die Fast-Reset-API - 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.

Leeren eines Amazon-Neptune-DB-Clusters über die Fast-Reset-API

Über die Fast-Reset-REST-API können Sie ein Neptune-Diagramm schnell und einfach zurücksetzen und dessen Daten vollständig entfernen.

Sie können dies in einem Neptune-Notebook über die Zeilen-Magics %db_reset ausführen.

Anmerkung

Dieses Feature ist ab Neptune-Engine-Version 1.0.4.0 verfügbar.

  • In den meisten Fällen ist eine Fast-Reset-Operation innerhalb weniger Minuten abgeschlossen. Die Dauer ist in gewisser Weise von der Auslastung des Clusters bei Einleitung der Operation abhängig.

  • Eine Fast-Reset-Operation führt nicht zu zusätzlichen E/As.

  • Die Größe des Speicher-Volumes nimmt nach einem Fast Reset nicht ab. Stattdessen wird der Speicher wiederverwendet, wenn neue Daten eingefügt werden. Daher sind die Volume-Größen von Snapshots gleich, die vor und nach einer Fast-Reset-Operation erstellt werden. Die Volume-Größen wiederhergestellter Cluster, die Snapshots vor und nach einer Fast-Reset-Operation verwenden, sind ebenfalls gleich.

  • Im Rahmen der Zurücksetzungsoperation werden alle Instances im DB-Cluster neu gestartet.

    Anmerkung

    In seltenen Fällen können diese Serverneustarts auch zu einem Failover des Clusters führen.

Wichtig

Die Fast-Reset-Operation kann die Integration Ihres Neptune-DB-Clusters mit anderen Services unterbrechen. Beispiele:

  • Eine Fast-Reset-Operation löscht alle Stream-Daten aus Ihrer Datenbank und setzt Streams vollständig zurück. Daher müssen Sie Ihre Stream-Konsumenten möglicherweise neu konfigurieren, damit sie funktionieren.

  • Eine Fast-Reset-Operation entfernt alle von Neptune ML verwendeten Metadaten zu SageMaker-Ressourcen, einschließlich Aufträgen und Endpunkten. Sie sind weiter in SageMaker vorhanden und Sie können vorhandene SageMaker-Endpunkte weiter für Neptune-ML-Inferenzabfragen verwenden. Die Neptune-ML-Management-APIs funktionieren jedoch nicht mehr mit ihnen.

  • Integrationen wie die Volltextsuchintegration mit ElasticSearch werden ebenfalls durch eine Fast-Reset-Operation vollständig gelöscht und müssen manuell neu eingerichtet werden, bevor sie wieder verwendet werden können.

Löschen aller Daten aus einem Neptune-DB-Cluster über die API
  1. Zunächst generieren Sie ein Token, mit dem Sie dann die Datenbankzurücksetzung ausführen können. Dieser Schritt soll verhindern, dass eine Datenbank versehentlich zurückgesetzt wird.

    Hierzu senden Sie eine HTTP POST-Anforderung an den Endpunkt /system auf der Writer-Instance Ihres DB-Clusters, um die Aktion initiateDatabaseReset anzugeben.

    Der curl-Befehl, der den JSON-Inhaltstyp verwendet, wäre:

    curl -X POST \ -H 'Content-Type: application/json' \ https://your_writer_instance_endpoint:8182/system \ -d '{ "action" : "initiateDatabaseReset" }'

    Oder mit dem Inhaltstyp x-www-form-urlencoded:

    curl -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ https://your_writer_instance_endpoint:8182/system \ -d 'action=initiateDatabaseReset '

    Die Anforderung initiateDatabaseReset gibt das Zurücksetzungs-Token in der JSON-Antwort wie folgt zurück:

    { "status" : "200 OK", "payload" : { "token" : "new_token_guid" } }

    Das Token bleibt nach der Ausgabe eine Stunde (60 Minuten) gültig.

    Wenn Sie die Anforderung an eine Reader-Instance oder an den Statusendpunkt senden, gibt Neptune eine ReadOnlyViolationException aus.

    Wenn Sie mehrere initiateDatabaseReset-Anforderungen senden, ist nur das zuletzt generierte Token für den zweiten Schritt gültig, in dem Sie die Zurücksetzung tatsächlich durchführen.

    Wenn der Server direkt nach Ihrer initiateDatabaseReset-Anforderung neu gestartet wird, wird das generierte Token ungültig und Sie müssen eine neue Anforderung senden, um ein neues Token zu erhalten.

  2. Als Nächstes senden Sie eine performDatabaseReset-Anforderung mit dem Token, das Sie von initiateDatabaseReset erhalten haben, an den Endpunkt /system auf der Writer-Instance Ihres DB-Clusters. Dies löscht alle Daten aus Ihrem DB-Cluster.

    Der Befehl curl, der den JSON-Inhaltstyp verwendet, wäre:

    curl -X POST \ -H 'Content-Type: application/json' \ https://your_writer_instance_endpoint:8182/system \ -d '{ "action" : "performDatabaseReset", "token" : "token_guid" }'

    Oder mit dem Inhaltstyp x-www-form-urlencoded:

    curl -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ https://your_writer_instance_endpoint:8182/system \ -d 'action=performDatabaseReset&token=token_guid'

    Die Anforderung gibt eine JSON-Antwort zurück. Wenn die Anforderung akzeptiert wird, lautet die Antwort:

    { "status" : "200 OK" }

    Wenn das von Ihnen gesendete Token nicht mit dem ausgegebenen Token übereinstimmt, sieht die Antwort wie folgt aus:

    { "code" : "InvalidParameterException", "requestId":"token_guid", "detailedMessage" : "System command parameter 'token' : 'token_guid' does not match database reset token" }

    Wenn die Anforderung akzeptiert wird und die Zurücksetzung beginnt, startet der Server neu und löscht die Daten. Sie können während der Zurücksetzung keine weiteren Anforderungen an den DB-Cluster senden.

Verwenden der Fast-Reset-API mit IAM-Auth

Wenn Sie IAM-Auth für Ihren DB-Cluster aktiviert haben, können Sie awscurl verwenden, um Fast-Reset-Befehle zu senden, die mit IAM-Auth authentifiziert werden:

Verwenden von awscurl zum Senden von Fast-Reset-Anforderungen mit IAM-Auth
  1. Legen Sie die Umgebungsvariablen AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY korrekt fest (ebenfalls AWS_SECURITY_TOKEN, wenn Sie temporäre Anmeldeinformationen verwenden).

  2. Eine initiateDatabaseReset-Anforderung sieht wie folgt aus:

    awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "initiateDatabaseReset" }'
  3. Eine performDatabaseReset-Anforderung sieht wie folgt aus:

    awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "performDatabaseReset" }'

Verwenden der Zeilen-Magics %db_reset der Neptune-Workbench zum Zurücksetzen eines DB-Clusters

Die Neptune-Workbench unterstützt die Zeilen-Magics %db_reset, mit der Sie eine schnelle Datenbankzurücksetzung in einem Neptune-Notebook ausführen können.

Wenn Sie die Zeilen-Magics ohne Parameter aufrufen, wird ein Bildschirm angezeigt, in dem Sie gefragt werden, ob Sie alle Daten im Cluster löschen möchten. Mit der Aktivierung des Kontrollkästchens bestätigen Sie, dass die Cluster-Daten nach dem Löschen nicht mehr verfügbar sind. An diesem Punkt können Sie auswählen, ob Sie die Daten löschen oder den Vorgang abbrechen möchten.

Eine gefährlichere Option ist der Aufruf von %db_reset mit den Optionen -y oder --yes, wodurch der Löschvorgang ohne weitere Aufforderung ausgeführt wird.

Sie können die Zurücksetzung auch in zwei Schritten ausführen, genau wie bei der REST-API:

%db_reset --generate-token

Die Antwort ist:

{ "status" : "200 OK", "payload" : { "token" : "new_token_guid" } }

Aktion:

%db_reset --token new_token_guid

Die Antwort ist:

{ "status" : "200 OK" }

Häufige Fehlercodes für Fast-Reset-Operationen

Neptune-Fehlercode HTTP-Status Fehlermeldung Beispiel

InvalidParameterException

400

Systembefehlsparameter 'action' enthält den nicht unterstützten Wert 'XXX'

Ungültiger Parameter

InvalidParameterException

400

Zu viele Werte angegeben für: action

Eine Fast-Reset-Anforderung mit mehr als einer Aktion, die mit dem Header 'Content-Type:application/x-www-form-urlencoded' gesendet wurde

InvalidParameterException

400

Dupliziertes Feld 'action'

Eine Fast-Reset-Anforderung mit mehr als einer Aktion, die mit dem Header 'Content-Type: application/json' gesendet wurde

MethodNotAllowedException

400

Schlechte Route: /bad_endpoint

Anforderung wurde an einen falschen Endpunkt gesendet

MissingParameterException

400

Fehlende erforderliche Parameter: [action]

Eine Fast-Reset-Anforderung enthält den erforderlichen Parameter 'action' nicht

ReadOnlyViolationException

400

Schreibvorgänge auf einer Read–Replica-Instance sind nicht zulässig

Eine Fast-Reset-Anforderung wurde an einen Lese- oder Statusendpunkt gesendet

AccessDeniedException

403

Fehlendes Authentifizierungstoken

Eine Fast-Reset-Anforderung wurde ohne korrekte Signaturen an einen DB-Endpunkt unter Aktivierung von IAM-Auth gesendet

ServerShutdownException

500

Die Datenbankzurücksetzung ist in Bearbeitung. Wiederholen Sie die Abfrage, wenn der Cluster verfügbar ist.

Beim Start der Fast-Reset-Operation schlagen vorhandene und eingehende Gremlin/SPARQL-Abfragen fehl.