【发布时间】:2019-09-15 17:47:00
【问题描述】:
如果我使用 Hive 创建一个表,在其中插入记录并首先在 Impala 中反映同一个表,我必须运行 Invalidate Metadata,它反映了执行程序上的元数据也显示新添加的记录。 那我的问题还是为什么我们需要做刷新表?
【问题讨论】:
标签: impala
如果我使用 Hive 创建一个表,在其中插入记录并首先在 Impala 中反映同一个表,我必须运行 Invalidate Metadata,它反映了执行程序上的元数据也显示新添加的记录。 那我的问题还是为什么我们需要做刷新表?
【问题讨论】:
标签: impala
INVALIDATE METADATA 和 REFRESH 是对应的:
INVALIDATE METADATA 是一个简单的异步操作
从目录和协调器缓存中丢弃加载的元数据。
在该操作之后,目录和所有 Impala 协调员
只知道数据库和表的存在,什么都不知道
更多的。表的元数据加载由任何后续触发
查询。REFRESH 同步重新加载元数据。 REFRESH 更多
比在表完成后执行完整的元数据加载更轻量级
无效。 REFRESH 无法检测到由 HDFS 平衡器等操作触发的块位置的变化(如 INVALIDATE METADATA 所做的那样),因此导致远程
在查询执行期间读取会对性能产生负面影响。
在使特定表无效后使用REFRESH 分隔
从针对该表运行的第一个查询加载元数据。
====
当在 Impala 外部、Hive 和其他 Hive 客户端(例如 SparkSQL)中进行以下更改时,需要INVALIDATE METADATA:
当impalad 进行更改时,不需要INVALIDATE METADATA。
更多详情,请阅读HERE
【讨论】: