Come posso risolvere l'errore "Provided key element doesn’t match the schema" che ricevo quando utilizzo Hive su Amazon EMR per importare tabelle DynamoDB?

2 minuti di lettura
0

Quando utilizzo Apache Hive per importare tabelle Amazon DynamoDB in Amazon EMR, ricevo l'errore "Provided key element doesn’t match the schema".

Risoluzione

Se hai uno schema errato, dati danneggiati o dati non corrispondenti, potresti ricevere il seguente errore:

"The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: #ABC###########)"

Se l'errore non dipende da uno schema errato, da dati danneggiati o da dati non corrispondenti, controlla i log dell'applicazione Hive. Per trovare i log dell'applicazione Hive, connettiti al nodo principale del cluster Amazon EMR e vai alla directory /mnt/var/log/hive.

Se hai attivato la registrazione, puoi trovarli in Amazon Simple Storage Service (Amazon S3). Utilizza un percorso simile a s3://log-location/cluster-id/node/primary-instance-id/applications/hive.

Esempio di log:

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"countryasin":"LOCATION '${INPUT}';","hts_type":null,"hts_code":null}
at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:565)
at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:86)
... 17 more
Caused by: java.lang.RuntimeException: com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: 0FF3KB36M2SJD8E79BUPOUP943VV4KQNSO5AEMVJF66Q9ASUAAJG)

La riga contenuta nel messaggio di errore, {"countryasin":"LOCATION '${INPUT}';","hts_type":null,"hts_code":null}, fa parte dello script Hive. Questo script Hive si trova nella stessa posizione Amazon S3 dei file di input. Il processo di importazione invia lo script Hive alla tabella DynamoDB come dati e lo utilizza nel processo di importazione. Per risolvere il problema, sposta lo script Hive in una posizione Amazon S3 diversa.

Informazioni correlate

Visualizza i file di log di Amazon EMR

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 mesi fa