将列表从 S3 传递到 Athena 查询

Pass in list from S3 to Athena query

我使用 AWS Glue 从 S3 存储桶中聚合数据,现在使用 Athena 查询该数据。我现在可以从 S3 传递一个单独的文件来查询我的数据集吗?

例如,如果我有以下查询:

SELECT city,population,coordinates
FROM "Country"."Japan" 
WHERE city IN ('Tokyo','Kyoto','Osaka');

我想在 S3 中放置一个列出 ('Tokyo'、'Kyoto'、'Osaka') 的 .txt 文件,以便我的查询类似于:

SELECT city,population,coordinates
FROM "Country"."Japan" 
WHERE city IN << some file path in s3 >>;

这不是 SQL 标准的一部分。

但是,您可以在 Amazon Athena 中创建另一个包含城市列表的 table。 table 的 LOCATION 参数(指向数据)可以指向文本文件,每行都有一个城市的名称。然后你可以使用:

WHERE city IN (SELECT city FROM city_table)

这样一来,所有的信息都是'within'Athena,但是Athena实际上是去S3读取table.

的内容