码迷,mamicode.com
首页 > 其他好文 > 详细

Hbase表设计

时间:2018-04-28 15:52:21      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:reg   hbase   保存   hba   没有   cti   http   多个   key   

HBase与RDBMS的区别: Hbase的cell具有版本描述(versioned),行是有序的,列(Qualifier)在所属列簇(column families)存在是,由客户端添加。

  1. Hbase中没有Joins的概念。如果要join,在设计的时候,要考虑用大表的思维解决。
  2. Row Keys设计: 主键,在region里按字母顺序排列(Byte数组)。写入的时候要分散,避免造成数据只保存在几个结点上,如order表 可以把order id 做reverse 操作用于row key。

                   注:多个条件查询,可以选择组合rowkey。

                          读取数据时候,只能按rowkey或者scan全表

         3.列簇CF设计:尽量CF的数量1-2个。设计hbase shema的时候。要尽量只有一个column family

         Flush: MemStore 中的数据达到一定的阈值,被Flush成HDFS中的HFile文件。

         Compaction: 可以把多个HFile的”交错无序状态“,变成单个Hfile的”有序状态“,降低读取时延。

            技术分享图片

 

           引:http://baijiahao.baidu.com/s?id=1596690073555129451&wfr=spider&for=pc

           案例:

                  1. 学生表,课程表,多对多。

                    RDBMS:

                    技术分享图片

                    Hbase:

                   技术分享图片

 

                 2. person  身份证表  1:1

                    RDBMS

                  技术分享图片

                  Hbase:

                  技术分享图片

 

               3. 订单: roder表和order detail       1:N

                 RDBMS

                 技术分享图片

 

Hbase表设计

标签:reg   hbase   保存   hba   没有   cti   http   多个   key   

原文地址:https://www.cnblogs.com/Jesse-Li/p/8967682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!