Lazy Simple SerDe para arquivos CSV, TSV e com delimitação personalizada
Como esse é o SerDe padrão no Athena para dados em formatos CSV, TSV e com delimitação personalizada, especificá-lo é opcional. Em sua instrução CREATE TABLE
, se você não especificar um SerDe e especificar somente ROW FORMAT DELIMITED
, o Athena usará esse SerDe. Use esse SerDe caso os dados não tenham valores entre aspas.
Para documentação de referência sobre o Lazy Simple SerDe, consulte a seção Hive SerDe
Nome da biblioteca de serialização
O nome da biblioteca de serialização do Lazy Simple SerDe é org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
. Para obter informações sobre o código-fonte, consulte LazySimpleSerDe.java
Ignorar cabeçalhos
Para ignorar os cabeçalhos nos dados ao definir a tabela, você pode usar a propriedade de tabela skip.header.line.count
, conforme mostrado no exemplo a seguir.
TBLPROPERTIES ("skip.header.line.count"="1")
Para obter exemplos que ignoram cabeçalhos, consulte as instruções CREATE TABLE
em Consultar os logs de fluxo do Amazon VPC e Consultar os logs do Amazon CloudFront.
O exemplo a seguir mostra como usar a biblioteca LazySimpleSerDe
para criar uma tabela no Athena com base em dados CSV. Para desserializar arquivos com delimitação personalizada usando esse SerDe, siga o padrão no exemplo, mas use a cláusula FIELDS TERMINATED
BY
para especificar um delimitador de caractere único diferente. O Lazy Simple SerDe não oferece suporte a delimitadores de vários caracteres.
nota
Substitua myregion
em s3://athena-examples-
pelo identificador da região onde o Athena é executado, por exemplo, myregion
/path/to/data/s3://athena-examples-us-west-1/path/to/data/
.
Use a instrução CREATE TABLE
para criar uma tabela do Athena usando os dados subjacentes em CSV armazenados no Amazon S3.
CREATE EXTERNAL TABLE flight_delays_csv ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, carrier STRING, tailnum STRING, flightnum STRING, originairportid INT, originairportseqid INT, origincitymarketid INT, origin STRING, origincityname STRING, originstate STRING, originstatefips STRING, originstatename STRING, originwac INT, destairportid INT, destairportseqid INT, destcitymarketid INT, dest STRING, destcityname STRING, deststate STRING, deststatefips STRING, deststatename STRING, destwac INT, crsdeptime STRING, deptime STRING, depdelay INT, depdelayminutes INT, depdel15 INT, departuredelaygroups INT, deptimeblk STRING, taxiout INT, wheelsoff STRING, wheelson STRING, taxiin INT, crsarrtime INT, arrtime STRING, arrdelay INT, arrdelayminutes INT, arrdel15 INT, arrivaldelaygroups INT, arrtimeblk STRING, cancelled INT, cancellationcode STRING, diverted INT, crselapsedtime INT, actualelapsedtime INT, airtime INT, flights INT, distance INT, distancegroup INT, carrierdelay INT, weatherdelay INT, nasdelay INT, securitydelay INT, lateaircraftdelay INT, firstdeptime STRING, totaladdgtime INT, longestaddgtime INT, divairportlandings INT, divreacheddest INT, divactualelapsedtime INT, divarrdelay INT, divdistance INT, div1airport STRING, div1airportid INT, div1airportseqid INT, div1wheelson STRING, div1totalgtime INT, div1longestgtime INT, div1wheelsoff STRING, div1tailnum STRING, div2airport STRING, div2airportid INT, div2airportseqid INT, div2wheelson STRING, div2totalgtime INT, div2longestgtime INT, div2wheelsoff STRING, div2tailnum STRING, div3airport STRING, div3airportid INT, div3airportseqid INT, div3wheelson STRING, div3totalgtime INT, div3longestgtime INT, div3wheelsoff STRING, div3tailnum STRING, div4airport STRING, div4airportid INT, div4airportseqid INT, div4wheelson STRING, div4totalgtime INT, div4longestgtime INT, div4wheelsoff STRING, div4tailnum STRING, div5airport STRING, div5airportid INT, div5airportseqid INT, div5wheelson STRING, div5totalgtime INT, div5longestgtime INT, div5wheelsoff STRING, div5tailnum STRING ) PARTITIONED BY (year STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\n' LOCATION 's3://athena-examples-
myregion
/flight/csv/';
Execute a MSCK REPAIR TABLE
para atualizar metadados da partição sempre que uma nova partição for adicionada a essa tabela:
MSCK REPAIR TABLE flight_delays_csv;
Consulte as 10 rotas principais atrasadas há mais de 1 hora:
SELECT origin, dest, count(*) as delays FROM flight_delays_csv WHERE depdelayminutes > 60 GROUP BY origin, dest ORDER BY 3 DESC LIMIT 10;
nota
Os dados da tabela de voos foram extraídos dos Voos
Para criar uma tabela do Athena com base em dados TSV armazenados no Amazon S3, use ROW FORMAT
DELIMITED
e especifique \t
como delimitador do campo de tabulação, \n
como separador de linhas e \
como o caractere de escape. O trecho a seguir mostra essa sintaxe. Nenhum exemplo de dados de voo do TSV está disponível no local de athena-examples
, mas, como na tabela CSV, você executaria MSCK REPAIR TABLE
para atualizar os metadados da partição sempre que uma nova partição fosse adicionada.
... ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ESCAPED BY '\\' LINES TERMINATED BY '\n' ...