Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
JSON Hive SerDe
Hive JSON SerDe è comunemente usato per elaborare dati JSON come eventi. Questi eventi sono rappresentati come stringhe su una sola riga di testo con codifica JSON separati da una nuova riga. Hive JSON SerDe non consente la duplicazione di chiavi o nomi di chiavi. map
struct
Nota
SerDe Si aspetta che ogni documento JSON si trovi su una singola riga di testo senza caratteri di terminazione di riga che separano i campi del record. Se il testo JSON è in un bel formato di stampa, potresti ricevere un messaggio di errore come HIVE_CURSOR_ERROR: Row is not a valid JSON Object o HIVE_CURSOR_ERROR:: Unexpected end-of-input: expected: expected close marker for OBJECT
quando tenti di interrogare la tabella dopo averla JsonParseException creata
. Per ulteriori informazioni, consulta JSON Data Files
L'istruzione DDL di esempio seguente utilizza Hive JSON SerDe per creare una tabella basata su esempi di dati pubblicitari online. Nella clausola LOCATION
, sostituire myregion
in s3://DOC-EXAMPLE-BUCKET.elasticmapreduce/samples/hive-ads/tables/impressions
con l'identificativo della Regione in cui si esegue Athena (ad esempio, s3://us-west-2.elasticmapreduce/samples/hive-ads/tables/impressions
).
CREATE EXTERNAL TABLE impressions ( requestbegintime string, adid string, impressionid string, referrer string, useragent string, usercookie string, ip string, number string, processid string, browsercookie string, requestendtime string, timers struct < modellookup:string, requesttime:string >, threadid string, hostname string, sessionid string ) PARTITIONED BY (dt string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION 's3://DOC-EXAMPLE-BUCKET.elasticmapreduce/samples/hive-ads/tables/impressions';
Specificazione dei formati di timestamp con Hive JSON SerDe
Per analizzare i valori del timestamp dalla stringa, è possibile aggiungere il sottocampo WITH
SERDEPROPERTIES
per la clausola ROW FORMAT SERDE
e usarla per specificare il parametro timestamp.formats
. Nel parametro specifica un elenco separato da virgole di uno o più modelli di timestamp, come nell'esempio seguente:
... ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' WITH SERDEPROPERTIES ("timestamp.formats"="yyyy-MM-dd'T'HH:mm:ss.SSS'Z',yyyy-MM-dd'T'HH:mm:ss") ...
Per ulteriori informazioni, consulta Marche temporali
Caricamento della tabella per l'esecuzione di query
Dopo aver creato la tabella, eseguire MSCK REPAIR TABLE per caricare la tabella e renderla eseguibile da Athena:
MSCK REPAIR TABLE impressions
CloudTrail Interrogazione dei log
Puoi usare Hive JSON SerDe per interrogare i log. CloudTrail Per ulteriori informazioni ed esempi delle istruzioni CREATE TABLE
, consulta la pagina Interrogazione dei log AWS CloudTrail.