将列表从 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.
的内容
我使用 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.
的内容