通过Hive访问HBase表中的现有行

时间:2012-04-07 18:35:53

标签: hbase hive

有没有办法通过Hive访问现有的HBase表记录?

2 个答案:

答案 0 :(得分:2)

是的,这绝对是可能的。因为Hbase没有提供类似于" JOINS"对于不熟悉NOSQL术语的用户来说,Hive也很容易。你只需要在Hive中创建一个表来提供与现有Hbase表的映射。你在创建这个映射时应该小心..正确包括Hbase表中存在的所有内容。我想在这里添加一个重要的东西。我们不应该将Hive视为Hbase的替代品,因为它适用于批处理而不适用于全实时应用程序

答案 1 :(得分:2)

根据Hive HBase Integration wiki page,可以使用如下的create table命令:

CREATE TABLE hbase_table_1(key int, value string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")
TBLPROPERTIES ("hbase.table.name" = "xyz");

但是,请记住,在Hive 0.8及更早版本中创建这样的表只允许您访问通过相应Hive表插入的HBase表中的数据。如果您的HBase表中没有任何预先存在的数据未通过Hive表插入,您也无法通过Hive表查询它。

启动Hive 0.9,JIRA 1634,它将允许Hive表访问HBase表中存在的所有数据,无论它是如何插入的。