hive刷新元数据
『壹』 apache atlas使用import-hive.sh导入hive历史元数据后没有lineage,并且报错
我从谷歌上找到的说明是,atlas没有支持到hive内部表(managed table)的lineage,只有External修饰的表才能生成血缘。但是解决方案我也没找到啊。。。
网页链接
『贰』 impala怎么判断从hive里刷新那部分元数据
Impala 获取hive 的 metadata
Impala 通常和Hive共用同一个metadata 数据库(通常是MySQL/PostgreSQL), 所以Impala 能够读取到Hive的元数据信息. 如果Impala需要访问Hive表, 需要将Hive metadata 刷新到impala中.
在Hive中Create/Drop表后, 或者HDFS rebalance,或者手工删除HDFS的文件后, 则需要在impala中执行下面两行命令:
INVALIDATE METADATA table_name;
describe table_name;
第一行命令 INVALIDATE METADATA 告诉impala 指定的 table 元数据已经过期, impala 将在下一次使用到该表时自动刷新元数据, 第二行命令即触发impala去更新元数据, 以免将来真正使用该表耗时太久.
如果Impala已经知道了Hive表的存在后, 又通过Hive增加或删除分区或alter table, 使用 refresh 命令即可更新元数据. refresh是对元数据进行增量更新, 和INVALIDATE METADATA相比, refresh命令使用成本低很多.
利用catalogd提供元数据服务。可以直接连DB也可以通过catalogd,一般是利用hive里的metastore获取数据。Impala高效的原因是其将原始数据缓存下来,catalogd启动会浏览缓存获取数据
因为impla默认catalogd会缓存,因此如果你重启的后,catalogd会将缓存数据存入到内存中,