Come posso risolvere gli errori di elaborazione in Amazon Neptune Bulk Loader?
Sto cercando di utilizzare Amazon Neptune Bulk Loader per caricare dati da un bucket Amazon Simple Storage Service (Amazon S3). Tuttavia, alcune richieste non vanno a buon fine. Come posso risolvere questo problema?
Breve descrizione
Per risolvere i problemi relativi a richieste di dati che continuano ad avere esito negativo, controlla lo stato di ogni processo. Identifica poi i lavori con esito negativo effettuando le seguenti operazioni:
- Usa l'API Bulk Loader predefinita per ogni singolo caricamento e controlla lo stato di ogni lavoro.
- Usa uno script di amministrazione e uno script automatico in un unico lavoro. È possibile creare ed eseguire lo script automatico su un sistema Linux o UNIX.
Prendi nota di queste limitazioni:
- L'API Neptune Bulk Loader non fornisce una visualizzazione istantanea di tutte le operazioni di caricamento.
- Se l'autorizzazione AWS Identity and Access Management (IAM) è abilitata sul cluster Neptune, le richieste all'API Bulk Loader devono essere firmate.
- L'API Bulk Loader memorizza nella cache le informazioni solo sugli ultimi 1024 processi di caricamento. Memorizza solo i dettagli degli ultimi 10.000 errori per processo.
Soluzione
Usa l'API Bulk Loader predefinita
1. Recupera gli ID del loader:
$ 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. Controlla lo stato di ogni processo, singolarmente, per verificare che il processo sia stato completato con esito positivo:
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": [] } } }
Usa uno script di amministrazione
Puoi utilizzare uno script di amministrazione per identificare un processo di Neptune Bulk Loader non riuscito nel tuo processo di produzione. Lo script di amministrazione genera un output nel seguente formato per tutti i processi di caricamento:
Startime-loadid:status,S3location,Errors
Nota: lo script di amministrazione può essere utilizzato da qualsiasi sistema Linux che abbia accesso al cluster Neptune.
Crea ed esegui lo script automatico su un sistema Linux o UNIX
1. Crea lo script utilizzando un editor di testo:
$ vi script
2. Assicurati di sostituire Cluster-endpoint:Port con i valori appropriati:
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. Salva lo script, quindi fornisci le autorizzazioni per la sua esecuzione:
chmod +x script
4. Installa la libreria dipendente:
sudo yum install jq
5. Esegui lo script:
$ ./script
Questo è un esempio di output:
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
Informazioni correlate
Contenuto pertinente
- AWS UFFICIALEAggiornata 5 mesi fa
- In che modo posso risolvere i problemi relativi a ReportBatchItemFailures della funzione Lambda SQS?AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa