首页 > 解决方案 > Athena 究竟何时需要使用 MSCK REPAIR TABLE 重新扫描分区?

问题描述

从文档中不清楚,您是否需要在MSCK REPAIR TABLE每次将新数据添加到分区时运行,或者仅当数据中出现全新的分区值时(即通过在 S3 中插入​​新的“文件夹”时创建某个路径中的对象 [我知道,S3 中没有真正的文件夹])。

有人知道它应该如何工作吗?

标签: amazon-athena

解决方案


Athena 依赖于“Hive 表布局”,为此使用了 Glue 元存储。在 Glue 中,您注册的是分区,而不是单个文件

如果您创建一个新的分区文件夹,则需要注册它(MSCK REPAIR TABLE除其他外,这就是这样做的)。

如果您只是添加新文件,则无需执行任何操作。

注意:MSCK REPAIR TABLE不一定是发现新分区的更快方法。Presto 319 带有内置的Hive 连接器程序:sync_partition_metadata可用于此目的。当然,这在直接使用 Presto 时可用。它在 Athena 中不可用(即使它基于 Presto)。


推荐阅读