zoukankan      html  css  js  c++  java
  • hbase的rowkey设计原则和实现方式

    一:hbase的存储形式

    hbase的内部使用KeyValue的形式存在,其key是有rowkey:family:column:logTimevalue是其存储的内容。

    其在region的是大多以升序的形式排列,唯一的是logtime是以降序的形式进行排列。

    所以,按照越靠近左边的信息越容易被检索到。其设计时,要考虑把重要的信息放左边,不重要的信息放到右边。这样可以提高查询数据的速度。这样,最重要的提高索引速度的就是设计合适的rowkey。

    二:rowkey的设计原则

    1:长度原则,最短越好,最大不能超过64K。太长的影响有两点,一是极大影响了HFile的存储效率。二是缓存memstore不能得到有效利用,缓存不能存放太多的信息,造成检索效率的降低。

    2:唯一原则

    保证rowkey的唯一性,这条没有什么要讲的。

    3:自己一条原则

    尽量保证经常一起用的rowkey存储在同一个region上,有助于提升检索效率。但要避免热点问题。

    4:对于常用的检索的rowkey,尽量使用高表(行多列少),二部选择宽表(列多行少)。

    三:rowkey引起热点问题的集中解决方法

    1-加盐:在rowkey前面加一个冗余信息,这样可以把数据分散到不同的region中。

       优点:可以有效的防止rowkey集中分配到一个或多个region中。有效避免了热点问题;

       缺点:无形中增加了rowkey的长度范围检索得不到有效使用。

    2-字段交换,提升权重:如果rowkey中含有几个信息字段,可以调整信息字段的顺序。

       缺点:对于单个信息字段,或者无论怎么调整都会遇到region热点的rowkey是解决不了的。

    3-随机键:把rowkey进行hash化,在分配到不同的服务器上。和加盐的方式相似;

    以下是顺序读的性能排行(由高到低,写性能与读性能相反):顺序键 -> 使用加盐键 -> 提升字段键  -> 随机键

    强加几个知识点:

    1-尽量使用范围查询代替前缀查询;

    2-数据多时,用分页查询;

  • 相关阅读:
    IIS7中的几种身份鉴别方式(一)Basic身份验证
    IIS7中的几种身份鉴别方式(二)集成身份验证
    java集合
    SharePoint 2010中welcome page的设置细节
    SharePoint中使用Linq出现未将对象引用到实例化的解决方法
    SharePoint 2010中关于An error was encountered while retrieving the user profile的处理方式记录
    The Need for an Architectural Body of Knowledge
    The Softer Side of the Architect
    Event Receivers 学习小结
    使用SmtpClient发送带图片的邮件的代码实现
  • 原文地址:https://www.cnblogs.com/parent-absent-son/p/10200202.html
Copyright © 2011-2022 走看看