【发布时间】:2021-03-05 05:56:02
【问题描述】:
我在 S3 中对我的 DATA_BUCKET 进行了分区,其结构为
S3/DATA_BUCKET/table_1/YYYY/MM/DD/files.parquet
现在我在 table_1 中有另外三个列,在 Athena 中显示为“partition_0”、“partition_1”和“partition_2”(分别代表年、月和日)。
到目前为止,我的应用程序一直在根据表中的“time_stamp”列进行与时间相关的查询:
select * from table_1 where time_stamp like '2023-01-17%'
现在要利用分区的性能,相应的新查询是:
select * from table_1 where partition_0 = '2023' and partition_1 = '01' and partition_2 = '17'
问题: 由于在我的应用程序中之前有很多关于 time_stamp 的查询,我不想更改它们,但仍以某种方式将这些查询转换为我的“partitions-type-queries”,就像上面一样。
在雅典娜内部有什么办法吗?
TIA
【问题讨论】:
-
老实说,我认为这个问题更像是“软件问题”,而不是 Athena 问题。我可以看到您的问题,我认为如果您所有的旧查询都是“从 t1 中选择 c1,c2,其中 time_stamp = #VAR”也许您可以将分区内容附加到所有旧查询中,将 #VAR 拆分为年、月和日?
标签: sql performance amazon-s3 query-optimization amazon-athena