amazon-athena - Athena 究竟何时需要使用 MSCK REPAIR TABLE 重新扫描分区?
问题描述
从文档中不清楚,您是否需要在MSCK REPAIR TABLE
每次将新数据添加到分区时运行,或者仅当数据中出现全新的分区值时(即通过在 S3 中插入新的“文件夹”时创建某个路径中的对象 [我知道,S3 中没有真正的文件夹])。
有人知道它应该如何工作吗?
解决方案
Athena 依赖于“Hive 表布局”,为此使用了 Glue 元存储。在 Glue 中,您注册的是分区,而不是单个文件。
如果您创建一个新的分区文件夹,则需要注册它(MSCK REPAIR TABLE
除其他外,这就是这样做的)。
如果您只是添加新文件,则无需执行任何操作。
注意:MSCK REPAIR TABLE
不一定是发现新分区的更快方法。Presto 319 带有内置的Hive 连接器程序:sync_partition_metadata
可用于此目的。当然,这在直接使用 Presto 时可用。它在 Athena 中不可用(即使它基于 Presto)。
推荐阅读
- mysql - 使用提示窗口恢复我在 mysql/mariaDB 中的压缩和加密存档文件
- python - AttributeError:“列表”对象没有属性“相似性”
- python - 为什么 pd.to_timedelta 在提供 int 系列时会失败?
- string - YAML 多行符号在 Jekyll 数据文件中不起作用
- python - 我无法弄清楚以下代码是如何工作的?
- java - 我该如何解决这个明显的合并错误
- node.js - 如何在 NodeJS 上修改数组
- r - 从 R 中的列表访问列表
- python - Pyspark - 将字符串转换为时间戳 - 获取空值
- javascript - 如何使用 setAttribute 将回调中的值添加到新元素中?