为什么运行 MSCK REAY TABLE 命令需要很长时间?
上次更新日期:2021 年 6 月 8 日
当我运行 MSCK REPAIR TABLE 命令时,在结果出现之前需要很长时间。
-或者-
当我运行 MSCK REPUT TABLE 命令时,查询超时。
解决方法
返回此错误是因为 Amazon Athena 在运行 MSCK REPUT TABLE 命令时,将递归列出 Amazon Simple Storage Service (Amazon S3) 中的前缀和对象。如果您的 Amazon S3 前缀或对象太多,则该命令可能需要很长时间才能完成或者超时。
要消除此错误,请执行以下任意一种解决方法:
- 使用 AWS Glue Crawler 将分区添加到 Athena 表中。有关更多信息,请参阅 爬网程序的工作原理。如果您的 Amazon S3 前缀太多,使用 AWS Glue Crawler 可以缩短加载分区所花费的时间。有关更多信息,请参阅 AWS Glue 中的增量式爬网。
- 使用 ALTER TABLE ADD PARTITION 命令将分区添加到表中。
如果分区遵循可预测的模式,请考虑使用分区投影。Athena 在内存中生成分区,无需将它们添加到 AWS Glue 数据目录,也无需从数据目录中检索分区。因此,对于分区比重很大的表,查询处理时间可能会缩短。