Presto/Athena 中嵌套日期分区的比较查询

Comparison query on nested date partition in Presto/Athena

我将 parquet 数据存储在 S3 上,以 Hive 理解的格式进行分区

s3://<base_path>/year=2019/month=11/day=08/files.pq

table 架构还将 year, month, day 指定为分区字段。

是否可以使用这种数据组织来比较查询,特别是 LIKE, IN, BETWEEN 日期查询? AWS Athena best practices 博客似乎暗示了它的可能性(SELECT count(*) FROM lineitem WHERE l_shipdate >= '1996-09-01' AND l_shipdate < '1996-10-01'),但我无法弄清楚如何在 table 期间指定复合字段(查询中的 l_shipdate)创建或查询期间。[​​=17=]

是的,可以,但看起来不是很优雅)

SELECT col1, col2
FROM my_table 
WHERE CAST(date_parse(concat(CAST(year AS VARCHAR(4)),'-',
                             CAST(month AS VARCHAR(2)),'-',
                             CAST(day AS VARCHAR(2))
                             ), '%Y-%m-%d') as DATE) 
BETWEEN DATE '2018-01-01' AND DATE '2018-01-31'