

# Regex SerDe
<a name="regex-serde"></a>

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](https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r1.2.2/api/org/apache/hadoop/hive/serde2/RegexSerDe.html) na documentação do Apache Hive.

## Nome da biblioteca de serialização
<a name="regex-serde-library-name"></a>

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](https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r1.2.2/api/org/apache/hadoop/hive/serde2/RegexSerDe.html) na documentação do Apache. 

## Exemplo
<a name="regex-serde-examples"></a>

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/';
```