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.
Optimieren einer Amazon-Neptune-Massenladung
Sie können mit den folgenden Strategien die Ladezeit für eine Neptune-Massenladung minimieren:
-
Bereinigen der Daten:
Achten Sie darauf, Ihre Daten vor dem Laden in ein unterstütztes Datenformat zu konvertieren.
Entfernen Sie alle Duplikate oder bekannten Fehler.
Reduzieren Sie die Anzahl der eindeutigen Prädikate (wie Eigenschaften von Kanten und Eckpunkten) so weit wie möglich.
-
Optimieren der Dateien:
Wenn Sie große Dateien laden, z. B. CSV Dateien aus einem Amazon S3 S3-Bucket, verwaltet der Loader die Parallelität für Sie, indem er sie in Blöcke zerlegt, die er parallel laden kann. Die Verwendung einer sehr großen Anzahl sehr kleiner Dateien kann diesen Prozess verlangsamen.
Wenn Sie mehrere Dateien aus einem Amazon-S3-Ordner laden, lädt der Loader automatisch zuerst Eckpunktdateien und anschließend Kantendateien.
Das Komprimieren der Dateien reduziert die Übertragungszeiten. Der Loader unterstützt die
gzip
-Komprimierung von Quelldateien.
-
Überprüfen der Loader-Einstellungen:
-
Wenn Sie während des Ladens keine anderen Operationen ausführen müssen, verwenden Sie den Parameter OVERSUBSCRIBE parallelism. Diese Parametereinstellung veranlasst den Bulk-Loader, alle verfügbaren CPU Ressourcen zu verwenden, wenn er ausgeführt wird. Im Allgemeinen werden 60 bis 70% der CPU Kapazität benötigt, um den Vorgang so schnell laufen zu lassen, wie es die I/O-Einschränkungen zulassen.
Anmerkung
Wenn auf
OVERSUBSCRIBE
oder gesetztparallelism
istHIGH
(Standardeinstellung), besteht beim Laden von openCypher Daten das Risiko, dass Threads auf eine Race-Bedingung und einen Deadlock stoßen, was zu einem Fehler führt.LOAD_DATA_DEADLOCK
Legen Sie in diesem Fallparallelism
auf eine niedrigere Einstellung fest und wiederholen Sie den Ladevorgang. Wenn Ihr Ladeauftrag mehrere Ladeanforderungen umfasst, verwenden Sie den Parameter
queueRequest
. Wenn SiequeueRequest
aufTRUE
festlegen, kann Neptune Ihre Abfragen in eine Warteschlange einstellen. So müssen Sie nicht warten, bis eine Abfrage abgeschlossen ist, bevor Sie eine weitere senden.Wenn Ihre Ladeanforderungen in eine Warteschlange eingestellt werden, können Sie mit dem Parameter
dependencies
Abhängigkeitsstufen einrichten, sodass der Ausfall eines Auftrags zum Ausfall abhängiger Aufträge führt. Dies kann Inkonsistenzen in den geladenen Daten vermeiden.-
Wenn ein Ladeauftrag die Aktualisierung zuvor geladener Werte umfasst, müssen Sie den Parameter
updateSingleCardinalityProperties
aufTRUE
festlegen. Andernfalls behandelt der Loader den Versuch, einen vorhandenen Wert mit einfacher Kardinalität zu aktualisieren, als Fehler. Bei Gremlin-Daten wird die Kardinalität auch in den Überschriften der Eigenschaftsspalten angegeben (siehe Eigenschaftenspalten-Header).Anmerkung
Der
updateSingleCardinalityProperties
Parameter ist für Resource Description Framework (RDF) -Daten nicht verfügbar. Sie können den Parameter
failOnError
verwenden, um festzulegen, ob Massenladeoperationen fehlschlagen oder fortgesetzt werden sollen, wenn ein Fehler auftritt. Sie können den Parametermode
auch verwenden, um sicherzustellen, dass ein Ladeauftrag ab dem Punkt weiter geladen wird, an dem ein früherer Auftrag fehlgeschlagen ist, anstatt bereits geladene Daten erneut zu laden.
-
-
Skalieren – Legen Sie die Sie die Writer-Instance Ihres DB-Clusters vor dem Massenladen auf die maximale Größe fest. Beachten Sie, dass Sie in diesem Fall alle Read-Replica-Instances im DB-Cluster entweder hochskalieren oder entfernen müssen, bis das Laden der Daten abgeschlossen ist.
Wenn der Massenladevorgang abgeschlossen ist, müssen Sie die Writer-Instance wieder herunterskalieren.
Wichtig
Wenn es aufgrund von Replikationsverzögerungen während eines Massenladens zu einem Zyklus wiederholter Read-Replica-Neustarts kommt, können Ihre Replikate wahrscheinlich nicht mit dem Writer im DB-Cluster Schritt halten. Sie können die Reader so skalieren, dass sie größer als der Writer sind. Sie können sie auch während des Massenladens vorübergehend entfernen und nach dem Abschluss des Vorgangs erneut erstellen.
Weitere Informationen zum Einrichten von Loader-Anforderungsparametern finden Sie unter Anforderungsparameter.