presto/athena中嵌套日期分区的hive比较查询

ddhy6vgd  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(416)

我将Parquet数据存储在s3上,以hive能够理解的格式进行分区

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

表模式还指定 year, month, day 作为分区字段。
是否可以比较查询,特别是 LIKE, IN, BETWEEN 在日期上,用这种数据组织?aws雅典娜最佳实践博客似乎暗示了它的可能性( SELECT count(*) FROM lineitem WHERE l_shipdate >= '1996-09-01' AND l_shipdate < '1996-10-01' ),但我不知道如何指定复合字段( l_shipdate 在查询中),在表创建或查询期间。

2ledvvac

2ledvvac1#

是的,这是可能的,但它看起来不太优雅)

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'

相关问题