gpt4 book ai didi

amazon-web-services - AWS Athena MSCK REPAIR TABLE对于小型数据集而言花费的时间太长

转载 作者:行者123 更新时间:2023-12-04 11:00:52 24 4
gpt4 key购买 nike

我在使用Amazon Athena时遇到问题,我有一个带有4个分区级别的小存储桶(36430对象,9.7 mb)(my-bucket/p1 = ab/p2 = cd/p3 = ef/p4 = gh/file.csv)但是当我运行命令时
MSCK REPAIR TABLE db.table
花费了25分钟以上的时间,而且我已经计划将TB大小的数据放到Athena上,如果这个问题仍然存在,我就不会这样做

有人知道为什么花太长时间吗?

提前致谢

最佳答案

MSCK REPAIR TABLE 可能是一项昂贵的操作,因为它需要扫描文件系统(S3存储桶)中表的子树。由于需要遍历其他子目录,因此多级分区可能使其成本更高。假设所有可能的分区值组合都出现在数据集中,这可能会变成组合爆炸。

如果要将新分区添加到现有表中,则可能会发现为各个新分区运行 ALTER TABLE ADD PARTITION 命令更为有效。这避免了在文件系统中扫描表的整个子树的需要。它不像简单地运行MSCK REPAIR TABLE那样方便,但是有时优化是值得的。可行的策略通常是使用MSCK REPAIR TABLE进行初始导入,然后在将新数据添加到表中时使用ALTER TABLE ADD PARTITION进行日常维护。

如果使用ALTER TABLE ADD PARTITION直接管理分区确实不可行,那么执行时间可能是不可避免的。减少分区数可能会减少执行时间,因为它不需要遍历文件系统中的许多目录。当然,分区是不同的,这可能会影响查询执行时间,因此这是一个折衷方案。

关于amazon-web-services - AWS Athena MSCK REPAIR TABLE对于小型数据集而言花费的时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45107866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com