一、impala同步hive的元数据的两种方式
1、invalidate metadata
对于通过Hive创建,删除或者修改表等操作,Impala无法自动感知到Hive元数据的变化,想让Impala识别到这个变化需要在impala shell中输入invalidate metadata,该语句会使得impala原元数据失效并且重新从元数据库同步元数据信息。可以对所有表执行,也可以指定某张表
invalidate metadata; -- 废除所有表的元数据; 这种命令一般禁用
invalidate metadata [table]; -- 废除表table的元数据
2、refresh
对于通过hive加载,插入,改变的数据操作,或者通过hdfs对数据进行改变的操作,impala都无法自动识别数据的变化,可以使用REFRESH table_name,该语句可以让impala识别到数据的变化,可以对某张表更新元数据,也可以对某张表的某分区更新元数据。
refresh [table]; -- 刷新表table的元数据
refresh [table] partition [partition]; -- 刷新表table的partition分区元数据
3、同步元数据生产脚本(适合表结构没变的)
#bin/sh
set -e
shopt

本文介绍了如何在Impala中使用invalidatemetadata和refresh命令同步Hive元数据,包括场景、命令用法和生产脚本示例。重点强调了两者在数据更新效率和资源消耗上的区别,以及何时选择刷新特定表或分区。
最低0.47元/天 解锁文章
2669

被折叠的 条评论
为什么被折叠?



