HBase表设计图解

本文介绍了HBase的Get和Scan操作。Get操作中,为实现负载均衡,通常对业务ID进行md5或Hash处理作为RowKey。Scan操作利用表的字典排序特性,但需注意设置startkey和stopkey,并在大量数据时分批处理以避免服务器和客户端的压力。盐桶(salt_bucket)的使用有助于进一步优化Scan操作。
摘要由CSDN通过智能技术生成

1.Get操作

需求:根据业务ID,获取这个业务ID对应的属性

以上图为例:

为什么要进行md5 或 Hash 或进行反转?

一句话说明:负载均衡,可以将记录平均分到不同的region

 

比如:业务id有时候开头是跟业务相关的一些编码。有个可能某个编码下面对应记录比较多,某些编码对应比较少。

比如上图示例中1111开头的有3条数据。其他前缀的都在3条以下

所以通过md5或者其他方式进行散列。

 

MD5  =>   DHS中选十六进制(string)

手机号反转=>DHS中选十进制(string)

其他自定义hash并序列化存储的=>DHS中选二进制

 

api:

写入:table.put  

查询:通过rowkey精准查询:table.get( Get(rowkey) )

 

DHS选“十六进制String类型”

MD5开头前缀作为rowkey代码写法:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值