从athena查询s3中的文件

时间:2018-05-22 10:03:34

标签: amazon-s3 amazon-athena

我是新手。我在亚马逊s3中有这个文件。

如何从Athena查询此.tar.gz?

enter image description here

我假设我必须以某种方式解压缩并'恢复'到'athena'?但我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

您无法查询tarball。 Athena需要gzip压缩文件或未压缩文本文件。其他选项是ORC或镶木地板文件。您需要解压缩文件并创建一个只包含.txt的gzip文件。

答案 1 :(得分:0)

您可以直接在AWS Athena中查询.gz格式的文件以及任何平面文件。如果您的tar文件包含多个.gz文件,并且它们具有相同的文件格式,那么您不需要将它们压缩到.tsv。

因为您已经转换为.tsv文件,请确保将相同格式的文件放入文件夹,例如 S3://bucketname/folder/file1.gz S3://bucketname/folder/file2.gz

等。 file1和file2应该具有相同的结构。

然后在此基础上定义您的AWS Athena表。下面的示例脚本 -

CREATE EXTERNAL TABLE table_name (
yr INT,
 quarter INT,
 month INT,
 dayofmonth INT,
 dayofweek INT,
 flightdate STRING
)
 PARTITIONED BY (year STRING)
 ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\t'
  ESCAPED BY '\\'
  LINES TERMINATED BY '\n'
 LOCATION 's3://bucketname/folder/';

保持同类文件不是强制性的,但建议您在同一文件夹下添加删除文件,并在每次更改时更新分区信息。

每次将新分区添加到此表时,运行MSCK REPAIR TABLE以刷新分区元数据。

MSCK REPAIR TABLE table_name ;

参考 - https://docs.aws.amazon.com/athena/latest/ug/lazy-simple-serde.html#tsv-example