前言:数据写入到hbase后,可以在利用hbase和hive的集成,把数据同步到hive中进行相关的操作,hive查询更加方便。
代码如下:
//动态分区
hive> set hive.exec.dynamic.partition=true;
hive> set hive.exec.dynamic.partition.mode=nostrict;
hive> set hive.auto.convert.join=false;
//创建数据库
create database events;
use events;
----------------------------user_friend------------------------------------------
//实现hbase和hive的集成
hive>
create external table events.hb_user_friend(row_key String,user_id String,friend_id String)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ('hbase.columns.mapping'=':key,uf:userid,uf:id')
tblproperties ('hbase.table.name'='events_db:user_friend');
//将外部表的数据同步到内部表
hive>
create table user_friend
stored as ORC AS
select * from hb_user_friend
//删除外部表
hive>
drop table hb_user_friend;
------------------------------event_attendee----------------------------------------
//实现hbase和hive的集成
hive>
create external table events.hb_user_friend(row_key String,event_id String,userid String,attend_type String)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ('hbase.columns.mapping'=':key,euat:eventid,euat:userid,euat:state')
tblproperties ('hbase.table.name'='events_db:event_attendee');
//将外部表的数据同步到内部表
hive>
create table event_attendee
stored as ORC AS
select * from hb_user_friend
//删除外部表
hive>
drop table hb_user_friend;