从雅典娜查询 s3 中的文件
query from athena a file in s3
我是这方面的新手。我在亚马逊 s3 中有这个文件。
如何从 Athena 查询这个 .tar.gz?
我假设我必须以某种方式解压缩并“恢复”到“athena”?但是我不知道怎么做。
您不能查询压缩包。 Athena 需要 gzip 或未压缩的文本文件。其他选项是 ORC 或 parquet 文件。您需要解压该文件并创建一个仅包含 .txt 的 gzip 文件。
您可以在 AWS Athena 中直接查询 .gz 格式的文件以及任何平面文件。如果您的 tar 文件包含多个 .gz 文件并且它们的文件格式相同,那么您不需要将它们压缩为 .tsv。
因为您已经转换为 .tsv 文件,请确保将相同格式的文件放入文件夹中,例如
s3://bucketname/folder/file1.gz
s3://bucketname/folder/file2.gz
等file1 和 file2 应该具有相同的结构。
然后在此基础上定义您的 AWS Athena table。下面的示例脚本 -
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 每次向此 table 添加新分区时刷新分区元数据 table。
MSCK REPAIR TABLE table_name ;
参考 - https://docs.aws.amazon.com/athena/latest/ug/lazy-simple-serde.html#tsv-example
我是这方面的新手。我在亚马逊 s3 中有这个文件。
如何从 Athena 查询这个 .tar.gz?
我假设我必须以某种方式解压缩并“恢复”到“athena”?但是我不知道怎么做。
您不能查询压缩包。 Athena 需要 gzip 或未压缩的文本文件。其他选项是 ORC 或 parquet 文件。您需要解压该文件并创建一个仅包含 .txt 的 gzip 文件。
您可以在 AWS Athena 中直接查询 .gz 格式的文件以及任何平面文件。如果您的 tar 文件包含多个 .gz 文件并且它们的文件格式相同,那么您不需要将它们压缩为 .tsv。
因为您已经转换为 .tsv 文件,请确保将相同格式的文件放入文件夹中,例如 s3://bucketname/folder/file1.gz s3://bucketname/folder/file2.gz
等file1 和 file2 应该具有相同的结构。
然后在此基础上定义您的 AWS Athena table。下面的示例脚本 -
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 每次向此 table 添加新分区时刷新分区元数据 table。
MSCK REPAIR TABLE table_name ;
参考 - https://docs.aws.amazon.com/athena/latest/ug/lazy-simple-serde.html#tsv-example