如何将关系型数据表转换至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(内存中)和多个StoreFileHFile)中

二、设计原则:

(1)rowkey

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

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

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

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

(3) column

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

三、参考例子:

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

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

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

给出一种hbase的表结构

rowkey

ColumnFamily

car_id+create_at+org_id+type

地点1(x,y)

地点2(x,y)

 

http://blog.csdn.net/kirayuan/article/details/7441111

http://wwwcomy.iteye.com/blog/1771285

http://www.open-open.com/lib/view/open1417612091323.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值