【发布时间】:2021-04-29 17:54:51
【问题描述】:
我们有大型数据集在 S3 中分区,例如 s3://bucket/year=YYYY/month=MM/day=DD/file.csv。
在 Athena 中查询不同年份的数据并利用分区的最佳方法是什么?
这是我对 2018-03-07 到 2020-03-06 的数据尝试的:
查询 1 - 在我取消之前运行了 2 分 45 秒
SELECT dt, col1, col2
FROM mytable
WHERE year BETWEEN '2018' AND '2020'
AND dt BETWEEN '2018-03-07' AND '2020-03-06'
ORDER BY dt
查询 2 - 运行大约 2 分钟。但是,如果时间段是从 2005 年到 2020 年,我认为效率不高
SELECT dt, col1, col2
FROM mytable
WHERE (year = '2018' AND month >= '03' AND dt >= '2018-03-07')
OR year = '2019' OR (year = '2020' AND month <= '03' AND dt <= '2020-03-06')
ORDER BY dt
【问题讨论】:
标签: sql amazon-web-services hive partitioning amazon-athena