1

语境:

我们想使用 Athena 来查询 S3 存储桶,该存储桶遵循 AWS 建议的最佳实践,即使用均匀分布的值作为对象名称的前缀

s3://datasets-daily/<random-prefix>/format=parquet/dataset=navigation/year=2015/month=12/day=31/subregion=000/slice=01/part-00292-ddbc7e53-8256-46de-a1c3-55f65f808c96.c000.gz.parquet

该数据集为 40TB,包含 850k 个文件和 140k 个分区。我们的分区限制已增加到 250k。

问题:

可以msck repair table_name在这种结构中自动分区数据,还是因为我们使用前缀,所以我们是否应该为每个键手动定义每个分区?

实验:

我们已经测试了创建表并应用msck了以下结果:

LOCATION 's3://datasets-daily/-->msck超时;SELECT *什么都不返回

LOCATION 's3://datasets-daily/*/-->msck快速完成;SELECT *什么都不返回

在第一种情况下,查询在十小时后超时:

2017/05/22 20:57:36 UTC-5 MSCK REPAIR TABLE datasets_daily N/A FAILED 36003.56 0KB

4

0 回答 0