前言:Hive创建关联hbase表有2种形式,第一是建立hive内表,指向Hbase,第二是建立Hive外表,引用Hbase中已经存在的一张表
-
在Hbase中创建表,创建一个表名称为
hive_hbase_test
,列族名称为f
的Hbase表
create 'hive_hbase_test','f'
-
在Hive创建外联表,关联Hbase中对应的表
create external table hive_hbase_test( id string, pageId string, operationParam string ) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key, f:pageId, f:operationParam ")TBLPROPERTIES ("hbase.table.name"="hive_hbase_test");
-
外Hive表中插入数据,注意不能使用
load data
插入数据,不然后报A non-native table cannot be used as target for LOAD
,需要使用insert into
insert into hive_hbase_test select id,page_id,operation_param from test_txt;
-
查询HIVE中的数据
-
查询Hbase中的数据
6. 清理数据,不能使用hive的truncate
数据,因为数据的存储是有Hbase来管理的,所以可以使用
![无法使用HIVE清理数据][3]
![HBase清理数据][4]