3分钟了解HBase行键设计

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

内容简介:唯一原则:行键对应关系型数据库的唯一键,系统设计之初必须考虑有足够的唯一行键去支持业务的数据量。长度原则:长度适中,一般从几十到一百字节,建议使用定长,方便从行键提取所需数据,而无须查询出数据内容以节省网络开销。散列原则:避免递增,否则读写负载都会集中在某个热点分区,降低性能,甚至引起分区服务器过载而宕机。

HBase行键需要满足如下原则:

唯一原则:行键对应关系型数据库的唯一键,系统设计之初必须考虑有足够的唯一行键去支持业务的数据量。

长度原则:长度适中,一般从几十到一百字节,建议使用定长,方便从行键提取所需数据,而无须查询出数据内容以节省网络开销。

散列原则:避免递增,否则读写负载都会集中在某个热点分区,降低性能,甚至引起分区服务器过载而宕机。

HBase行键设计技巧

由于HBase不支持二级索引,所以HBase行键作为唯一的也是最有效的索引,需要尽可能多的糅合各种查询条件以提高查询效率,常见的设计技巧有:

反转补齐:对于用来存储实体数据的表,通常将实体ID(如用户ID)反转补齐位数后作为行键的开始,这样首先满足了对该实体数据查询的需求,同时由于反转了实体ID,所以最近产生的实体以及其数据不会落到同一个Region,避免了热点区间的产生。

使用GeoHash:GeoHash算法可以用来将多维数据映射为一维字符串,尤其是基于空间的经纬度数据,空间上靠近的经纬度点映射后的一维字符串在字典顺序上也靠近(当然会有特殊的临界问题)。

OpenTSDB:OpenTSDB是基于HBase的一个存储时序数据的数据库应用,通常用来存储一些系统的监控数据或者系统日志,OpenTSDB的行键设计类似对HBase的行键做了一个二次索引,格式为:

UID matric +TimeBase+UID tag1key +UID tag1value +UID tag2key +UID tag2value +UID tagNkey +UID tagNvalue

其行键设计会将所有的监控指标或者需要查询的业务标签均映射到一个等长的UID,然后将监控指标的UID作为行键的开始,这样设计有几个好处:

  1. 因为通常查询监控数据的时候都会选定一个监控指标(如CPU、内存等),这样相同监控指标的数据会相邻存储,提供查询效率。
  2. 将监控指标映射为等长的UID可以减少行键的长度与重复度,减少存储空间,同时可以方便的从行键根据偏移量反向推演出监控指标。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

网易一千零一夜

网易一千零一夜

网易杭研项目管理部 / 电子工业出版社 / 2016-9-1 / 46

本书是网易杭州研究院项目管理部多年来丰富的项目管理实践总结与干货分享。字字句句凝结了网易项目经理的甘与苦、汗与泪。 全书围绕项目管理体系,从敏捷实践、项目立项、需求管理、沟通管理,到计划进度管理、风险管理,真实反映了网易面向互联网产品项目管理实战经验与心路历程。 不论你是项目管理新手,还是资深项目经理,都可以从本书中获得启发与借鉴。一起来看看 《网易一千零一夜》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

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

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具