Hive映射HBase表的方法

HBase比较适合key-value形式的存储和查询,对于多条件查询的情况,查询效率基本依赖rowkey的设计。对于实时性要求不高的情况,可以通过Hive进行离线查询。这时需要在Hive中建立一张可以映射到HBase的表以便进行查询。

假设有张HBase的表queryword,设计如下

| rowkey | s |
| --- | --- | --- |
| md5(word)[8:-8] + timestamp | word, pv, uv, date |

Hive中建立映射的方式如下

create external table queryword
(id string,
word string,
pv string,
uv string,
date string)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ("hbase.columns.mapping"="
:key,
s:word,
s:pv,
s:uv,
s:date");

需要注意的有下面几点

  • 表名前需要指明external,告诉Hive这是一个已经存在的外部表
  • 通过org.apache.hadoop.hive.hbase.HBaseStorageHandler指定这是HBase里的表
  • HBase和Hive中的字段需要一一对应

执行完创建表语句之后就可以在hive里进行查询了

你可能感兴趣的:(Hive映射HBase表的方法)