impala同步hive数据

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

一、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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值