Wie kann ich Verarbeitungsfehler in Amazon Neptune Bulk Loader beheben?
Ich versuche, Amazon Neptune Bulk Loader zu verwenden, um Daten aus einem Amazon Simple Storage Service (Amazon S3)-Bucket zu laden. Einige der Anfragen scheitern jedoch. Wie kann ich dieses Problem beheben?
Kurzbeschreibung
Überprüfen Sie den Status der einzelnen Aufträge, um Probleme mit fehlgeschlagenen Datenanforderungen zu beheben. Ermitteln Sie dann die fehlgeschlagenen Aufträge, indem Sie wie folgt vorgehen:
- Verwenden Sie die Standard-API des Bulk Loader für jede einzelne Ladung und überprüfen Sie den Status jedes Auftrags.
- Verwenden Sie ein Admin-Skript und ein automatisiertes Skript in einem Job. Sie können das automatisierte Skript in einem Linux- oder UNIX-System erstellen und ausführen.
Beachten Sie diese Einschränkungen:
- Die Neptune-Bulk-Loader-API bietet keine Snapshot-Ansicht aller Ladevorgänge.
- Wenn die Autorisierung für AWS Identity and Access Management (IAM) auf dem Neptune-Cluster aktiviert ist, müssen die Bulk-Load-API signiert werden.
- Die Bulk Loader-API speichert nur Informationen zu den letzten 1024 Ladejobs. Es speichert nur die Fehlerdetails der letzten 10.000 Fehler pro Job.
Behebung
Verwenden Sie die Standard-API des Bulk Loader
1. Abrufen der Loader-IDs:
$ curl -G 'https://neptunedemo-cluster.cluster-cw7ehemc1eeo.us-east-1.neptune.amazonaws.com:8182/loader'|jq { "status": "200 OK", "payload": { "loadIds": [ "c32bbd24-99a7-45ee-972c-21b7b9cab3e2", "6f6342fb-4ea3-452c-ac69-b4d117e37d5a", "647114a6-6ed4-4018-896c-e84a08fcf864", "521d33fa-7050-44d7-a961-b64ef4e2d1db", "d0d4714e-7cf8-415e-89f5-d07ed2732bf2" ] } }
2. Prüfen Sie nacheinander den Status jedes einzelnen Jobs, um sicherzustellen, dass der Job erfolgreich war:
curl -G 'https://neptunedemo-cluster.cluster-cw7ehemc1eeo.us-east-1.neptune.amazonaws.com:8182/loader/c32bbd24-99a7-45ee-972c-21b7b9cab3e2?details=true&errors=true&page=1&errorsPerPage=3'|jq { "status": "200 OK", "payload": { "feedCount": [ { "LOAD_COMPLETED": 2 } ], "overallStatus": { "fullUri": "s3://demodata/neptune/", "runNumber": 5, "retryNumber": 0, "status": "LOAD_COMPLETED", "totalTimeSpent": 3, "startTime": 1555574461, "totalRecords": 8, "totalDuplicates": 8, "parsingErrors": 0, "datatypeMismatchErrors": 0, "insertErrors": 0 }, "errors": { "startIndex": 0, "endIndex": 0, "loadId": "c32bbd24-99a7-45ee-972c-21b7b9cab3e2", "errorLogs": [] } } }
Verwenden Sie ein Admin-Skript
Sie können ein Admin-Skript verwenden, um einen fehlgeschlagenen Neptune-Bulk-Loader-Job in Ihrem Produktionsprozess zu identifizieren. Das Admin-Skript generiert eine Ausgabe im folgenden Format für alle Ladejobs:
Startime-loadid:status,S3location,Errors
Hinweis: Das Admin-Skript kann von jedem Linux-System aus verwendet werden, das Zugriff auf den Neptune-Cluster hat.
Sie können das automatisierte Skript in einem Linux- oder UNIX-System erstellen und ausführen
1. Erstellen Sie das Skript mit einem Texteditor:
$ vi script
2. Stellen Sie sicher, dass Sie cluster-endpoint:Port durch die entsprechenden Werte ersetzen:
cluster_ep="https://cluster-endpoint:Port/loader" for loadId in $(curl --silent -G "${cluster_ep}?details=true" | jq '.payload.loadIds[]'); do clean_loadId=$(echo -n ${loadId} | tr -d '"') time=$(date -d@$(curl --silent -G "${cluster_ep}/${clean_loadId}?details=true" | jq '.payload.overallStatus.startTime')) echo -n $time '-' echo -n ${clean_loadId}: $(curl --silent -G "${cluster_ep}/${clean_loadId}?details=true" | jq '.payload.overallStatus.status') echo -n ',S3 LOCATION': $(curl --silent -G "${cluster_ep}/${clean_loadId}?details=true" | jq '.payload.overallStatus.fullUri') echo -n ',ERRORS': $(curl --silent -G "${cluster_ep}/${clean_loadId}?details=truei&errors=true&page=1&errorsPerPage=3" | jq '.payload.errors.errorLogs') echo done
3. Speichern Sie das Skript und stellen Sie dann die Berechtigungen für die Ausführung des Skripts bereit:
chmod +x script
4. Installieren Sie die abhängige Bibliothek:
sudo yum install jq
5. Führen Sie das Skript aus:
$ ./script
Dies ist eine Beispielausgabe:
Thu Apr 18 08:01:01 UTC 2019 -c32bbd24-99a7-45ee-972c-21b7b9cab3e2: "LOAD_COMPLETED",S3 LOCATION: "s3://demodata/neptune/",ERRORS: null Fri Apr 5 07:04:00 UTC 2019 -6f6342fb-4ea3-452c-ac69-b4d117e37d5a: "LOAD_COMPLETED",S3 LOCATION: "s3://demodata/neptune/",ERRORS: null Fri Apr 5 07:01:30 UTC 2019 -647114a6-6ed4-4018-896c-e84a08fcf864: "LOAD_COMPLETED",S3 LOCATION: "s3://demodata/neptune/",ERRORS: null Tue Mar 19 17:36:02 UTC 2019 -521d33fa-7050-44d7-a961-b64ef4e2d1db: "LOAD_COMPLETED",S3 LOCATION: "s3://demodata/neptune/",ERRORS: null Tue Mar 19 17:35:45 UTC 2019 -d0d4714e-7cf8-415e-89f5-d07ed2732bf2: "LOAD_COMPLETED",S3 LOCATION: "s3://demodata/neptune/",ERRORS: null
Verwandte Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren