设为首页 加入收藏

TOP

如何将关系型数据表转换至hbase数据表
2015-11-21 01:34:16 来源: 作者: 【 】 浏览:0
Tags:如何 关系型 数据 转换 hbase

首先需要把关系型数据库的数据表的数据增加由 “纵向延伸”,转变为HBase数据表的“横向延伸”

一、Hbase的存储结构

a) HBase以表(HTable)的形式存储数据

b) HTable包括很多行,每行通过RowKey唯一标记,行按照RowKey的字典序排列,表在行的方向上分割为多个HRegion

c) 每行包括一个RowKey和多个Column Family,数据按照Column Family进行物理切割,即不同Column Family的数据放在不同的Store中,一个Column Family放在一个Strore中

d) HRegion由多个Store组成。一个Store由物理上存在的一个MemStrore(内存中)和多个StoreFile(HFile)中

二、设计原则:

(1)rowkey

a) rowkey是hbase的key-value存储中的key,通常使用用户要查询的字段作为rowkey查询结果作为valueHBase中RowKey是按照字典序排列的
?

(2)Column Family的设计需遵循:

a) 不同Column Family的数据,在物理上是分开的,尽量避免一次请求需要拿到的Column分布在不同的Column Family中;

b) CF的数量尽量要少,原因是过多的columnfamily之间会互相影响

(3) column

对于column需要扩展的应用,column可以按普通的方式设计,但是对于列相对固定的应用,最好采用将一行记录封装到一个column中的方式,这样能够节省存储空间。封装的方式推荐protocolbuffer。

三、参考例子:

(1) Oracle关系数据表有100亿车联网监控数据

其中x表示经度,y表示纬度,creat_at:创建时间,type:1表示报警点,2表示正常点,org_id:组织机构id

需要支持:a、查询指定天指定车辆的轨迹,b、下载指定天指定单位所有报警点,

给出一种hbase的表结构

rowkey

ColumnFamily

? ?

car_id+create_at+org_id+type

地点1(x,y)

地点2(x,y)

? ?
? ? ? ? ?

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Improvementsto the Hive Optimiz.. 下一篇方法说---mac下安装homebrew与mon..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: