实现HBase与Hive之间数据互通互导

栏目: 数据库 · 发布时间: 6年前

内容简介:今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。我在这里讲的干货比较多,没有废话,跟不上的同学多关注下我的Hive实战课程,并且后续会推出Hive和HBase的高级课程,敬请关注!

今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。

我在这里讲的干货比较多,没有废话,跟不上的同学多关注下我的Hive实战课程,并且后续会推出Hive和HBase的高级课程,敬请关注!

https://edu.hellobi.com/course/283

实现HBase与Hive之间数据互通互导

首先不了解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'

实现HBase与Hive之间数据互通互导

插入几条数据:

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与Hive之间数据互通互导

看一下HBase中刚刚建好的数据表:

实现HBase与Hive之间数据互通互导

三、关于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表

实现HBase与Hive之间数据互通互导

五、检验一下二者数据互通互道:

Hive端查询:

select * from students;

实现HBase与Hive之间数据互通互导

HBase端插入数据:

put 'students','12003','info:name','Mathew'

实现HBase与Hive之间数据互通互导

Hive端数据查询:

select * from students;

实现HBase与Hive之间数据互通互导

Hive端数据数据插入:

insert into table hbase_to_hive_students values('12004','bill','25','Shandong','Qingdao');

实现HBase与Hive之间数据互通互导

HBase端数据查询:

scan'students'

实现HBase与Hive之间数据互通互导

OK,做到这里,大家可以发现,无论在Hive里面insert还是在HBase里面put插入,两端是都能看到新数据的,这也就完成了Hive与HBase间的数据互通互导。

实现HBase与Hive之间数据互通互导 实现HBase与Hive之间数据互通互导

本文由马修 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。

转载、引用前需联系作者,并署名作者且注明文章出处。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。


以上所述就是小编给大家介绍的《实现HBase与Hive之间数据互通互导》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

叠加体验:用互联网思维设计商业模式

叠加体验:用互联网思维设计商业模式

穆胜 / 机械工业出版社 / 2014-11 / 39.00

本书在互联网思维改变一切的背景下,详细介绍了如何运用互联网思维重构商业模式,主要包括以下内容:①互联网经济中的商业逻辑(即“互联网思维”),不仅给出了消费方面的逻辑变革,还给出了在生产端的逻辑变革以及“跨界”的逻辑变革。②给出了一个“三层产品体验模型”,厘清了互联网思维,打造完美终端、云端服务和价值群落三层体验,企业可以选择做不同层面的体验组合,这即是选择了不同的市场策略。但是,企业要基业长青,终......一起来看看 《叠加体验:用互联网思维设计商业模式》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试