【发布时间】:2021-02-10 02:12:02
【问题描述】:
我想使用 Athena 分区投影来编写过滤日期分区列的查询。问题是我需要将投影的物理数据格式(S3 文件前缀)与用户查询的日期格式不同。
例如,我在 S3 中的物理数据格式将前缀存储为 URL 编码日期:s3://bucket/table_root/landing_time=yyyy-MM-dd%20HH%3Amm%3Ass.S'
但我希望用户能够使用可读日期(无 URL 编码格式)查询 Athena:
select * from table_root where landing_time='2020-01-01 12:00:00.0'
我尝试使用下表设置进行分区投影:
projection.landing_time.range: NOW-2YEARS,NOW
projection.landing_time.type: date
projection.landing_time.interval: 1
projection.landing_time.interval.unit: HOURS
projection.landing_time.format: yyyy-MM-dd'%20'HH'%3A00%3A00.0'
projection.enabled: true
我看到分区投影允许使用表属性进行自定义路径派生:storage.location.template: s3://bucket/table_root/a=${a}/${b}/some_static_subdirectory/${c}/
但我仍然看不到任何方法来自定义日期列的投影格式并允许它与用于运行查询的格式不同。有没有办法做到这一点?
【问题讨论】: