内容简介:今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。我在这里讲的干货比较多,没有废话,跟不上的同学多关注下我的Hive实战课程,并且后续会推出Hive和HBase的高级课程,敬请关注!
今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。
我在这里讲的干货比较多,没有废话,跟不上的同学多关注下我的Hive实战课程,并且后续会推出Hive和HBase的高级课程,敬请关注!
https://edu.hellobi.com/course/283
首先不了解HBase的同学可以看一下我之前写过的一片博文:
《白话解说:SQL与NoSQL》 https://ask.hellobi.com/blog/Matthew112/12341
一、那么看完之后我们先来简单了解一下HBase如何存放数据及对应语法:
HBase 建一张学生表,Row Key是学生编号,两个column family分别为基本信息(info)、地址(address)。
1.行键:决定一行数据。
2.列簇:每个列簇可以有多个列成员(course:Math,course:English),以类似于K-V的形式存储数据。
3.建表语句:create 'table name','column name01','column name02',...,'column nameXX'。
4.插入数据:put 'table name','row key','column name:','value'
二、接下来我们再HBase里面进行实操,建表插数:
建立一张表:
create 'students','info','address'
插入几条数据:
put 'students','12001','info:name','max'
put 'students','12001','info:age','20'
put 'students','12001','address:province','Liaoning'
put 'students','12001','address:city','Dalian'
put 'students','12002','info:name','leo'
put 'students','12002','info:age','21'
put 'students','12002','address:province','Hebei'
put 'students','12002','address:city','Guojizhuang'
看一下HBase中刚刚建好的数据表:
三、关于HBase的题外话:
HBase查询数据的语法对于一个 SQL 使用者来说简直就是折磨,在随后的HBase课程中我会向大家详细介绍其两种查询数据的方法及二者的区别:put、scan。
毕竟HBase才是真正意义上的数据库(存储处理海量数据的NoSQL),Hive可以理解为Hadoop的SQL编程接口,敬请关注我的后续HBase课程吧。
四、建立一章Hive表,实现其与HBase数据互通互导:
CREATE EXTERNAL TABLE hbase_to_hive_students(key string, name string,age string,province string,city string)-- key是hbase的rowkey, 各个字段是hbase中的quailiter
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' -- 使用的类
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name,info:age,address:province,address:city") -- 字段映射关系
TBLPROPERTIES ("hbase.table.name" = "students"); -- 映射的HBase表
五、检验一下二者数据互通互道:
Hive端查询:
select * from students;
HBase端插入数据:
put 'students','12003','info:name','Mathew'
Hive端数据查询:
select * from students;
Hive端数据数据插入:
insert into table hbase_to_hive_students values('12004','bill','25','Shandong','Qingdao');
HBase端数据查询:
scan'students'
OK,做到这里,大家可以发现,无论在Hive里面insert还是在HBase里面put插入,两端是都能看到新数据的,这也就完成了Hive与HBase间的数据互通互导。
本文由马修 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。
以上所述就是小编给大家介绍的《实现HBase与Hive之间数据互通互导》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 办公环境下 kubernetes 网络互通方案
- RSA加解密,Java和C#互通
- 柏贞尧:如何建设校园市场联盟?需强化互联互通
- 动态路由实现OSPF和RIP协议实现全网互连互通
- Mirth Connect 互联互通 第五章 查询发送者通道
- 整合ucenter,实现discuz与python或者nodejs网站互通
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Trading and Exchanges
Larry Harris / Oxford University Press, USA / 2002-10-24 / USD 95.00
This book is about trading, the people who trade securities and contracts, the marketplaces where they trade, and the rules that govern it. Readers will learn about investors, brokers, dealers, arbit......一起来看看 《Trading and Exchanges》 这本书的介绍吧!