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

sib*_*ane 4 hive presto amazon-athena

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

s3://<base_path>/year=2019/month=11/day=08/files.pq
Run Code Online (Sandbox Code Playgroud)

表模式还指定year, month, day为分区字段。

是否可以将查询(特别LIKE, IN, BETWEEN是日期查询)与这种数据组织进行比较?AWS Athena 最佳实践博客似乎建议其可能 ( SELECT count(*) FROM lineitem WHERE l_shipdate >= '1996-09-01' AND l_shipdate < '1996-10-01'),但我无法弄清楚如何l_shipdate在表创建期间或查询期间指定复合字段(在查询中)。

Ily*_*sil 5

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

\n\n
SELECT col1, col2\nFROM my_table \nWHERE CAST(date_parse(concat(CAST(year AS VARCHAR(4)),\'-\',\n                             CAST(month AS VARCHAR(2)),\'-\',\n                             CAST(day AS VARCHAR(2))\n                             ), \'%Y-%m-%d\') as DATE) \nBETWEEN DATE \'2018-01-01\' AND DATE \'2018-01-31\'\n
Run Code Online (Sandbox Code Playgroud)\n