如果无效元数据可以做同样的事情,为什么需要在Impala中刷新
使用配置单元如果我创建一个表,在其中插入记录,并在Impala中反映同一个表,首先我必须运行InvalidateMetadata,它反映执行器上的元数据,还显示新添加的记录。如果无效元数据可以做同样的事情,为什么需要在Impala中刷新,impala,Impala,使用配置单元如果我创建一个表,在其中插入记录,并在Impala中反映同一个表,首先我必须运行InvalidateMetadata,它反映执行器上的元数据,还显示新添加的记录。 那么我的问题仍然是为什么我们需要刷新表?使元数据无效和刷新是对应的: 使元数据无效是一种异步操作,它 从目录和协调器缓存中丢弃加载的元数据。 在该操作之后,目录和所有Impala协调员 只知道数据库和表的存在,什么都不知道 更多表的元数据加载由任何后续操作触发 查询 刷新同步重新加载元数据刷新更多 轻量级,而不是在创建表
那么我的问题仍然是为什么我们需要刷新表?
使元数据无效
和刷新
是对应的:
是一种异步操作,它 从目录和协调器缓存中丢弃加载的元数据。 在该操作之后,目录和所有Impala协调员 只知道数据库和表的存在,什么都不知道 更多表的元数据加载由任何后续操作触发 查询使元数据无效
同步重新加载元数据<代码>刷新更多 轻量级,而不是在创建表后进行完全元数据加载 无效<代码>刷新无法检测由诸如HDFS平衡器之类的操作触发的块位置更改(如刷新
所做的),因此导致远程 在查询执行期间进行读取,但会对性能产生负面影响 在使特定表无效后使用使元数据无效
,以分隔 从针对该表运行的第一个查询加载元数据刷新
在Impala之外、配置单元和其他配置单元客户端(如SparkSQL)中进行以下更改时,需要使用
使元数据无效
:
- 现有表的元数据将发生更改
- 添加了新表,黑斑羚将使用这些表
- 服务器或数据库级别的Sentry权限从 在黑斑羚之外
- 阻止元数据更改,但文件保持不变(HDFS 再平衡)。UDF罐子改变了
- 某些表不再查询,您希望删除它们的 目录和协调器缓存中的元数据以减少内存 要求
使元数据无效
有关更多详细信息,请阅读