设为首页 加入收藏

TOP

Hbase中的列式表映射到hive的外表
2019-01-17 01:45:14 】 浏览:79
Tags:Hbase 映射 hive 外表
版权声明:作者原创,转载请附上文章链接。 https://blog.csdn.net/qq_36330643/article/details/79802851

在做数据ETL中,可能原始数据在列式存储Hbase中,这个时候,如果我们想清洗数据,可以考虑把Hbase表映射为Hive的外表,然后使用Hive的HQL来清除处理数据,具体过程参考下面例子:

步骤

1,创建Hbase表
2,映射Hive表

步骤一

说明:cf 列簇名,只put了少量测试列
create ‘cofeed_info’,{NAME => ‘cf’, REPLICATION_SCOPE => 1}
put ‘cofeed_info’, ‘100001’, ‘cf:id’, ‘101’
put ‘cofeed_info’, ‘100001’, ‘cf:title’, ‘这是测试用的数据’
put ‘cofeed_info’, ‘100001’, ‘cf:insert_time’, ‘45679848161564’

步骤二

说明:虽然很多列在Hbase表中当前并没有,不过没关系,:key表示rowkey
CREATE EXTERNAL TABLE cofeed_info
(
rowkey string,
id string,
title string,
tourl string,
content string,
data_provider string,
b_class string,
b_catogory string,
source string,
insert_time timestamp,
dt string
) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ WITH
SERDEPROPERTIES (“hbase.columns.mapping”=
“:key,
cf:id,
cf:title,
cf:tourl,
cf:content,
cf:data_provider,
cf:b_class,
cf:b_catogory,
cf:source,
cf:insert_time,
cf:dt”) TBLPROPERTIES (“hbase.table.name” = “cofeed_info”);

结果

hive> desc cofeed_info;
OK
rowkey string from deserializer
id string from deserializer
title string from deserializer
tourl string from deserializer
content string from deserializer
data_provider string from deserializer
b_class string from deserializer
b_catogory string from deserializer
source string from deserializer
insert_time timestamp from deserializer
dt string from deserializer
说明:Hbase中没有的列簇为NULL了.
hive> select * from cofeed_info;
OK
100001 101 这是测试用的数据 NULL NULL NULL NULL NULL NULL NULL NULL


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇HBase Java 编程 下一篇hbase完全分布式安装与配置

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目