gpt4 book ai didi

impala - 如果无效元数据可以做同样的事情,为什么需要在 Impala 中刷新

转载 作者:行者123 更新时间:2023-12-01 15:02:17 25 4
gpt4 key购买 nike

如果我创建一个表,使用 Hive,在其中插入记录并首先在 Impala 中反射(reflect)同一个表,我必须运行 Invalidate Metadata,它反射(reflect)了执行程序上的元数据,也显示新添加的记录。
那么我的问题仍然是为什么我们需要做刷新表?

最佳答案

INVALIDATE METADATAREFRESH是对应的:

  • INVALIDATE METADATA是一个简单的异步操作
    从目录和协调器缓存中丢弃加载的元数据。
    在该操作之后,目录和所有 Impala 协调员
    只知道数据库和表的存在,什么都不知道
    更多的。表的元数据加载由任何后续触发
    查询。
  • REFRESH同步重新加载元数据。 REFRESH更多
    比在表完成后执行完整的元数据加载更轻量级
    无效。 REFRESH无法检测到由 HDFS 平衡器等操作触发的 block 位置变化(如 INVALIDATE METADATA 所做的那样),因此导致远程
    在查询执行期间读取会对性能产生负面影响。

    使用REFRESH在使特定表无效以分隔
    从针对该表运行的第一个查询加载元数据。

  • ====
    INVALIDATE METADATA在 Impala 外部、Hive 和其他 Hive 客户端(例如 SparkSQL)中进行以下更改时需要:
  • 现有表的元数据更改。
  • 添加了新表,Impala 将使用这些表。
  • SERVER 或 DATABASE 级别的 Sentry 权限从
    在黑斑羚之外。
  • 阻止元数据更改,但文件保持不变(HDFS
    重新平衡)。 UDF jar 更改。
  • 某些表不再被查询,您想删除它们
    来自目录和协调器缓存的元数据以减少内存
    要求。

  • 没有 INVALIDATE METADATA当impalad进行更改时需要。

    更多详情,请阅读 HERE

    关于impala - 如果无效元数据可以做同样的事情,为什么需要在 Impala 中刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946696/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com