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.
Anmerkung
Wenn Sie eine differenzierte Zugriffskontrolle auf Ihrem OpenSearch Cluster aktiviert haben, müssen Sie die IAM-Authentifizierung auch in Ihrer Neptune-Datenbank aktivieren.
Informationen zur Diagnose von Problemen mit der Replikation von Neptune nach OpenSearch finden Sie in den CloudWatch Protokollen für Ihre Poller-Lambda-Funktion. Diese Protokolle enthalten Details zur Anzahl der aus dem Stream gelesenen Datensätze und zur Anzahl der Datensätze, in die erfolgreich repliziert wurden. OpenSearch
Sie können auch die LOGGING-Ebene für Ihre Lambda-Funktion ändern, indem Sie die Umgebungsvariable LoggingLevel
ändern.
Anmerkung
Wenn diese LoggingLevel
Option auf gesetzt istDEBUG
, können Sie zusätzliche Details anzeigen, z. B. gelöschte Stream-Datensätze und den Grund, warum jeder gelöscht wurde, während Sie Daten StreamPoller von Neptune nach replizieren. OpenSearch Dies kann nützlich sein, wenn Sie feststellen, dass Ihnen Datensätze fehlen.
Die Neptune Streams-Verbraucheranwendung veröffentlicht zwei Metriken CloudWatch , die Ihnen auch bei der Diagnose von Problemen helfen können:
StreamRecordsProcessed
– Die Anzahl der Datensätze, die von der Anwendung pro Zeiteinheit verarbeitet werden. Dies ist bei der Verfolgung der Anwendungsausführungsrate hilfreich.StreamLagTime
– Die Zeitdifferenz in Millisekunden zwischen der aktuellen Zeit und der Commit-Zeit eines Streamdatensatzes, der verarbeitet wird. Diese Metrik zeigt an, wie stark die Consumer-Anwendung verzögert wird.
Darüber hinaus werden alle Metriken, die sich auf den Replikationsprozess beziehen, in einem Dashboard CloudWatch unter demselben Namen angezeigt, den Sie bei der Instanziierung der Anwendung mithilfe der Vorlage ApplicationName
angegeben haben. CloudWatch
Sie können sich auch dafür entscheiden, einen CloudWatch Alarm zu erstellen, der ausgelöst wird, wenn die Abfrage mehr als zweimal hintereinander fehlschlägt. Dies erreichen Sie, indem Sie das CreateCloudWatchAlarm
-Feld bei Anwendungsinstanziierung auf true
festlegen. Geben Sie dann die E-Mail-Adressen an, die beim Auslösen des Alarms benachrichtigt werden sollen.
Problembehandlung eines Prozesses, der beim Lesen von Datensätzen aus dem Stream fehlschlägt
Wenn ein Prozess beim Lesen von Datensätzen aus dem Stream fehlschlägt, stellen Sie sicher, dass Folgendes vorhanden ist:
Der Stream ist auf dem Cluster aktiviert.
Der Neptune-Stream-Endpunkt hat das korrekteFormat:
Für Gremlin oder OpenCypher:
https://
oder dessen Aliasyour cluster endpoint
:your cluster port
/propertygraph/streamhttps://
your cluster endpoint
:your cluster port
/pg/streamFür SPARQL:
https://
your cluster endpoint
:your cluster port
/sparql/stream
Der DynamoDB-Endpunkt ist für Ihre VPC konfiguriert.
Der Überwachungsendpunkt ist für Ihre VPC-Subnetze konfiguriert.
Problembehandlung bei einem Prozess, der beim Schreiben von Daten fehlschlägt OpenSearch
Wenn ein Prozess beim Schreiben von Datensätzen fehlschlägt OpenSearch, stellen Sie sicher, dass Sie über Folgendes verfügen:
Ihre Elasticsearch-Version ist 7.1 oder höher oder Opensearch 2.3 und höher.
OpenSearch kann über die Poller Lambda-Funktion in Ihrer VPC aufgerufen werden.
Die beigefügte Sicherheitsrichtlinie OpenSearch erlaubt eingehende HTTP/HTTPS-Anfragen.
Behebung von out-of-sync Problemen zwischen Neptune und einem bestehenden OpenSearch Replikations-Setup
Sie können die folgenden Schritte ausführen, um eine Neptune-Datenbank und OpenSearch -Domain wieder mit den neuesten Daten zu synchronisieren, falls out-of-sync Probleme zwischen ihnen aufgrund einer ExpiredStreamException
oder Datenbeschädigung auftreten.
Beachten Sie, dass dieser Ansatz alle Daten in der OpenSearch Domain löscht und sie mit dem aktuellen Status der Neptune-Datenbank erneut synchronisiert, sodass keine Daten in die Neptune-Datenbank neu geladen werden müssen.
Deaktivieren Sie den Replikationsprozess, wie unter Deaktivieren (Unterbrechen) des Stream-Poller-Prozesses beschrieben.
-
Löschen Sie den Neptun-Index auf der OpenSearch Domain mit dem folgenden Befehl:
curl -X DELETE "
(your OpenSearch endpoint)
/amazon_neptune" Erstellen Sie einen Klon der Datenbank (siehe Klonen von Datenbanken in Neptune).
-
Holen Sie sich die neueste
eventID
zu den Streams in der geklonten Datenbank, indem Sie einen Befehl dieser Art für den Streams-API-Endpunkt ausführen (weitere Informationen finden Sie unter Aufrufen der Neptune-Streams-REST-API):curl "https://
(your neptune endpoint)
:(port)
/(propertygraph or sparql)
/stream?iteratorType=LATEST"Notieren Sie sich die Werte in den Feldern
commitNum
undopNum
imlastEventId
-Objekt in der Antwort. Verwenden Sie das export-neptune-to-elasticsearch
Tool auf Github, um eine einmalige Synchronisation von der geklonten Datenbank zur Domain durchzuführen. OpenSearch -
Gehen Sie zur DynamoDB-Tabelle für den Replikationsstack. Der Name der Tabelle ist der Anwendungsname, den Sie in der AWS CloudFormation Vorlage angegeben haben (die Standardeinstellung ist
NeptuneStream
) mit einem-LeaseTable
Suffix. Mit anderen Worten: Der Standardtabellenname istNeptuneStream-LeaseTable
.Sie können Tabellenzeilen durch Scannen untersuchen, da die Tabelle nur eine Zeile enthalten sollte. Nehmen Sie mit den Werten
commitNum
undopNum
, die Sie oben aufgezeichnet haben, die folgenden Änderungen vor:Ändern Sie den Wert für das
checkpoint
-Feld in der Tabelle auf den Wert, den Sie fürcommitNum
notiert haben.Ändern Sie den Wert für das
checkpointSubSequenceNumber
-Feld in der Tabelle auf den Wert, den Sie füropNum
notiert haben.
Aktivieren Sie den Replikationsprozess erneut, wie unter Erneutes Aktivieren des Stream-Poller-Prozesses beschrieben.
Löschen Sie die geklonte Datenbank und den für das AWS CloudFormation
export-neptune-to-elasticsearch
Tool erstellten Stack.