hbase多条件查询,hive列式存储

圈圈笔记 136

Hive 和 HBase 都是大数据 Hadoop 生态内比较长红的明星组件,HBase 的列式存储和查询方法显的较为高冷,相比之下 Hive 的使用更平易近人,毕竟人人都爱SQL。我们可以让二者结合发挥各自的强项,使用HBase的列式存储,来一次暧昧之旅。

数据已经存储在HBase中,使用Hive生成外表关联HBase表

演示:

建立HBase表createt_user,base_info插入数据putt_user,001,base_info:username,zhangsanputt_user,002,base_info:username,lisiputt_user,003,base_info:username,wangwu建立Hive external tableCREATEEXTERNALTABLEhive_hbase_ext_t_user(keyString, usernamestring)STOREDBYorg.apache.hadoop.hive.hbase.HBaseStorageHandlerWITHSERDEPROPERTIES ("hbase.columns.mapping"=":key,base_info:username")
TBLPROPERTIES ("hbase.table.name"="t_user","hbase.mapred.output.outputtable"="t_user");查询select*fromhive_hbase_ext_t_user;在hive中插入数据insertintohive_hbase_ext_t_uservalues(004,zhaoqi);在HBase中插入数据putt_user,005,base_info:username,huhan

注意:通过这种方式创建的hive schema到hbase schema的映射关系在删除hive外表不会删除对应hbase表。

删除hive external table不影响HBase表数据的实际存储:

HBase中还未创建表,使用Hive创建表映射HBase表

演示:

创建hive表CREATETABLEhive2hbase_t_user02(keyint, usernameString)STOREDBYorg.apache.hadoop.hive.hbase.HBaseStorageHandlerWITHSERDEPROPERTIES ("hbase.columns.mapping"=":key,base_info:username")
TBLPROPERTIES ("hbase.table.name"="t_user02","hbase.mapred.output.outputtable"="t_user02");查看HBase表结构(创建hive表后会自动在HBase中创建映射的表结构)describet_user02在hive中插入数据insertintohive2hbase_t_user02select*fromhive_hbase_ext_t_user;在HBase中查询scan t_user02

注意:由于创建的是hive 内部表,Hbase数据会随着hive表删除而删除。

上一篇:

下一篇:

  推荐阅读

分享