【问题标题】:Pass in list from S3 to Athena query将列表从 S3 传递到 Athena 查询
【发布时间】:2021-02-21 02:55:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: mysql amazon-web-services amazon-s3 aws-glue amazon-athena


    【解决方案1】:

    这不是 SQL 标准的一部分。

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

    WHERE city IN (SELECT city FROM city_table)
    

    这样,所有信息都在 Athena 内部,但 Athena 实际上是去 S3 读取表的内容。

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 2020-09-26
      • 2018-10-22
      • 2017-06-26
      • 2018-05-12
      相关资源
      最近更新 更多