Regex SerDe - Amazon Athena

Regex SerDe

O Regex SerDe usa uma expressão regular (regex) para desserializar dados extraindo grupos regex em colunas de tabela.

Se uma linha nos dados não corresponder à regex, todas as colunas na linha serão retornadas como NULL. Se uma linha corresponder à regex, mas tiver menos grupos do que o esperado, os grupos ausentes serão NULL. Se uma linha nos dados corresponder à regex, mas tiver mais colunas do que grupos na regex, as colunas adicionais serão ignoradas.

Para obter mais informações, consulte Classe RegexSerDe na documentação do Apache Hive.

Nome da biblioteca de serialização

O nome da biblioteca de serialização do Regex SerDe é org.apache.hadoop.hive.serde2.RegexSerDe. Para obter informações sobre o código-fonte, consulte Classe RegexSerDe na documentação do Apache.

Exemplo

O exemplo a seguir cria uma tabela de logs do CloudFront usando o RegExSerDe. Substitua myregion em s3://athena-examples-myregion/cloudfront/plaintext/ pelo identificador da região onde o Athena é executado (por exemplo, s3://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/';