Regex SerDe - Amazon Athena

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à.

Regex SerDe

Regex SerDe utilizza un'espressione regolare (regex) per deserializzare i dati estraendo i gruppi regex nelle colonne della tabella.

Se una riga nei dati non corrisponde a regex, tutte le colonne nella riga vengono restituite come NULL. Se una riga corrisponde a regex ma ha meno gruppi del previsto, i gruppi mancanti sono NULL. Se una riga nei dati corrisponde a regex ma contiene più colonne rispetto ai gruppi in regex, le colonne aggiuntive vengono ignorate.

Per ulteriori informazioni, consulta Class RegexSerDe nella documentazione di Apache Hive.

Nome della libreria di serializzazione

Il nome della libreria di serializzazione per SerDe Regex è. org.apache.hadoop.hive.serde2.RegexSerDe Per informazioni sul codice sorgente, consulta Class RegexSerDe In nella documentazione di Apache.

Esempio

L'esempio seguente crea una tabella dai CloudFront log utilizzando. RegExSerDe Replace (Sostituisci) myregion accedi s3://athena-examples-myregion/cloudfront/plaintext/ con l'identificatore della regione in cui esegui Athena (ad esempios3://athena-examples-us-west-1/cloudfront/plaintext/,).

CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, os STRING, Browser STRING, BrowserVersion STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION 's3://athena-examples-myregion/cloudfront/plaintext/';