AWS Athena 分区投影 - 使用整数或日期表示 yyyymmdd

问题描述 投票:0回答:1

我在 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。

amazon-web-services aws-glue amazon-athena
1个回答
0
投票

通过使用子文件夹结构

yyyy/mm/dd
并使用日期样式分区投影来解决此问题,如此答案中所述。

© www.soinside.com 2019 - 2024. All rights reserved.