HBase RowKey的设计要点

HBase中的RowKey主要有以下的作用:

  1. 读写数据时通过Row Key找到对应的Region
  2. MemStore中的数据按RowKey字典顺序排序
  3. HFile中的数据按RowKey字典顺序排序

底层的HFile最终是按照RowKey进行切分的,所以我们的设计原则是结合业务的特点,并考虑高频查询,尽可能的将数据打散到整个集群中。

RowKey的设计-Salting

Salting的原理是将固定长度的随机数放在行键的起始处

缺点:由于前缀是随机生成的,因而如果想要按照字典顺序找到这些行,则需要做更多的工作。从这个角度上看,Salting增加了写操作的吞吐量,却也增大了读的开销。

RowKey的设计-Hashing

Hashing原理将RowKey进行hash计算,然后取hash的部分字符串和原来的RowKey进行拼接。

优缺点:可以一定程度打散整个数据集,但是不利于Scan,由于不同数据的hash值可能一样,实际应用一般使用Md5计算,然后截取前几位的字符串。

RowKey的设计-Reversing

Reversing的原理是反转一段固定长度或者全部的键

优缺点:有效地打乱了行键,但是却牺牲了行排序的属性。

HBase的生态主要包括:

  1. Phoenix:主要提供使用 SQL 的方式来查询 HBase 里面的数据。一般能够在毫秒级别返回,比较适合 OLTP 场景。
  2. Spark:我们可以使用 Spark 进行 OLAP 分析;也可以使用 Spark SQL 来满足比较复杂的 SQL 查询场景;使用 Spark Streaming 来进行实时流分析。
  3. Solr:原生的 HBase 只提供了 Rowkey 单主键,如果我们需要对 Rowkey 之外的列进行查找,这时候就会有问题。幸好我们可以使用 Solr 来建立二级索引/全文索引充分满足我们的查询需求。
  4. HGraphDB:HGraphDB是分布式图数据库。依托图关联技术,帮助金融机构有效识别隐藏在网络中的黑色信息,在团伙欺诈、黑中介识别等。
  5. GeoMesa:目前基于NoSQL数据库的时空数据引擎中功能最丰富、社区贡献人数最多的开源系统。
  6. OpenTSDB:基于HBase的分布式的,可伸缩的时间序列数据库。适合做监控系统;譬如收集大规模集群(包括网络设备、操作系统、应用程序)的监控数据并进行存储,查询。

参考出处微信公众号:过往记忆大数据

你的鼓励是我分享技术最大的动力!如有错误之处,请指正,不胜感激。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值