Optimieren einer Amazon-Neptune-Massenladung - 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.

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 gesetzt parallelism ist HIGH (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 Fall parallelism auf eine niedrigere Einstellung fest und wiederholen Sie den Ladevorgang.

    • Wenn Ihr Ladeauftrag mehrere Ladeanforderungen umfasst, verwenden Sie den Parameter queueRequest. Wenn Sie queueRequest auf TRUE 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 auf TRUE 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 Parameter mode 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.