hive映射hbase表【说明】
一般来说,hive映射表数据都是映射hdfs上的数据,直接通过location
指定映射目录,然后可以查询数据。但是hive映射hbase表数据,是直接映射hbase中的表。
hbase需要被hive映射的表的建表语句
create 'events_db:user_friend', 'uf'
【注释】
- events_db: 是命名空间
- user_friend: 是hbase中的表名
- uf: 是列族
hive创建表映射hbase中user_friend表
- 开启动态分区
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
- 关闭对所有字段的排序
set hive.optimize.sort.dynamic.partition=true;
- 关闭自动选择的join方式
set hive.auto.convert.join=false;
- 创建数据库
create database if not exists eventskb07;
- 创建映射表
create external table eventskb07.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:friend_id')
tblproperties('hbase.table.name' = 'events_db:user_friend');
【注释】
- 第一行中
row_key
不需要改动,表示的是行键 - 第三行中的
:key
也不需要改动成自己的key,就是key - 第三行中的
uf
是映射hbase中的列族