Hbase包含key映射为hive表

本文介绍了如何使用Hive与HBase进行集成的方法,详细解释了通过特定的SQL语句创建外部表,并将Hive表与HBase表关联起来的过程。文章提供了具体的SQL示例,演示了如何设置HBase的列族和列与Hive表字段之间的映射。

1,语法

CREATE EXTERNAL TABLE hive 表明 (hive字段名称1 数据类型, hive字段名称2 数据类型)

STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITH SERDEPROPERTIES ( 和 hive 字段名称1 对应的 hbase 的列名,和 hive 字段名称2 对应的 hbase 的列名)

TBLPROPERTIES("hbase.table.name" = "hbase 的表明");

当需要映射hbase的key 的时候参考下面的方式

CREATE EXTERNAL TABLE hive 表明 (hive字段名称1(需要映射hbase的可以) 数据类型, hive字段名称2 数据类型)

STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITH SERDEPROPERTIES ( 'hbase.columns.mapping'=":key,和 hive 字段名称2 对应的 hbase 的列名)

TBLPROPERTIES("hbase.table.name" = "hbase 的表明");

eg:

CREATE EXTERNAL TABLE dim_sys_date(
`date_key` string , 
`date_seed` date ,
`day_of_week` int,
`day_of_week_desc` string,
`day_of_month` int,
`day_of_year` int ,
`is_last_day_of_month` int ,
`week_of_year` int,
`week_of_year_desc` string,
`year_week` int,
`first_day_of_week` date,
`last_day_of_week` date,
`month` int,
`month_desc` string,
`year_month` int,
`quarter` int,
`quarter_desc` string,
`year_quarter` string,
`year` string,
`is_weekend` string
) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' 
WITH SERDEPROPERTIES ( 
'hbase.columns.mapping'=":key,
calendar:dateSeed,
calendar:dayOfWeek,
calendar:dayOfWeekDesc,
calendar:dayOfMonth,
calendar:dayOfYear,
calendar:isLastDayOfMonth,
calendar:weekOfYear,
calendar:weekOfYearDesc,
calendar:yearAndWeek,
calendar:firstDayOfWeek,
calendar:lastDayOfWeek,
calendar:month,
calendar:monthDesc,
calendar:yearAndMonth,
calendar:quarter,
calendar:quarterOfDesc,
calendar:yearAndQuarter,
calendar:year,
calendar:isWeekend
"
) 
TBLPROPERTIES("hbase.table.name" = "dim_sys_date");

转载于:https://my.oschina.net/u/2470834/blog/749531

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值