在Impala中,切换到Hiveshell来执行一些数据加载或转换的操作很方便,尤其是对于Impala当前可以查询但不能写入的文件格式而言,例如RCFile、SequenceFile和Avro。
- 当您通过Hive创建、删除或更改表之后切换回impala-shell解释器时,需要执行
INVALIDATEMETADATA
语句,以便Impala识别新的或更改的对象。
- 当您通过Hive(甚至通过手动HDFS操作,例如hdfs命令)加载、插入或更改现有表中的数据之后切换回impala-shell解释器时,需要执行
REFRESHtable_name
语句,以便Impala识别新的或更改的数据。
注意:
最初,Impala不支持Hive UDF(Hive自定义函数),但从Impala 1.2版本开始,该功能就可以在Impala中使用了。
您最初通过Hive进行的一些转换现在可以通过Impala完成。在Impala1.2之前,需要在您连接并发出查询的每个Impala节点上发出EFRESH
andINVALIDATEMETADATA
语句。
在Impala1.2及更高版本中,当您在任何Impala节点上发出这些语句中的任何一条时,结果将广播到集群中的所有Impala节点,使其真正成为Hive中每一轮DDL或ETL操作后的一步操作。