我在 S3 上有一个 Parquet 数据湖,结构如下:
s3://bucket/deviceid/table_x/20230102/xyz.parquet
这里,我使用的是分区结构
yyyymmdd
。
在设置表时,我希望添加“分区投影”,以避免在添加新分区时必须使用 Glue 爬虫(或类似工具)来更新我的表。
我目前使用的设置如下,其中
date
是我的分区列(int
)。
我的问题是:
将分区投影定义为
date
类型而不是 int
类型会更好吗?然后将格式指定为yyyymmdd
。我之所以这么认为,主要是因为我担心 AWS 文档指出“分区投影间隙”可能会导致性能问题。如果我使用整数范围并查询 20100101 到 20110101 期间,我当然拥有 1000 个整数的范围 - 但实际上只有 365 天。我不清楚 Athena/Glue 如何认识到,如果我使用整数,我的分区投影实际上会被解释为日期 - 以及它是否会因此正确地忽略“无效”日期整数,例如 20102060。