我可以将群集A中的Hive表与群集B中的Hbase表一起加入

时间:2018-05-26 03:57:54

标签: hive hbase

我的客户有一个计算场景,一些数据存储在群集A中的Hive中,而其他一些数据存储在群集B中的Hbase中,然后他们想要用两种表格进行一些连接操作。

有没有办法让我在Hive中这样做:

select hive_table.col1, hbase_table.col2 from hive_table inner join hbase_table on hive_table.id = hbase_table.id    

hive表和hbase表存在于不同的集群中。

1 个答案:

答案 0 :(得分:2)

是的,可以将 Hive表(table1-假定它位于HDFS中) Hbase表(table2-hbase表)结合在一起。但是不建议这样做,因为当您尝试加入时,HBase在全表扫描中效率不高。最好的方法是将Hbase表转换为实木复合地板或AVRO。现在Hive的table1和Hbase的table2都驻留在HDFS中,这使其效率更高。

简而言之,我们可以联接Hive Metastore存储的任何表。 Hive表是否基于HDFS,Hbase构建并不重要。只要我们在Hive Metastore中拥有架构,就可以加入它们。

假定Hive元存储包含两个表的模式。

select hive_table.col1, hbase_table.col2 from hive_table inner join hbase_table on (hive_table.id = hbase_table.id);