hbaseRowkey设计

1.RowKey的设计需要充分考虑到业务的读写特点

  1. 当客户端需要频繁写一张表,随机的RowKey会获得更好的性能
  2. 当客户端需要频繁的读一张表,有序的rowkey则会获得更好的性能

2. Rowkey特性

  1. 唯一性:Rowkey必须能够唯一的识别一行数据
  2. 散列性:避免访问热点,降低查询效率
  3. 尽可能短:在不影响业务的前提下,建议越短越好

2.1 唯一性

必须设计上保证其唯一性,rowkey是按照字典顺序排序存储的,可充分利用这个特点,将经常一起读的数据存储到一起。

2.2 散列性

rowkey的第一个字段必须要做哈希处理,字段之间用ascii码的03分隔符分隔
如 rowkey=md5(第一个字段)+X03+第二个字段+X003+第三个字段

2.3 长度尽可能短

rowkey是一个二进制码流,最大长度64kb,实际应用中一般为10-100bytes
原因:
若一个rowkey长度100b,1000W行数据仅仅rowkey就要占用:
100*1000W=10亿个字节(将近1G)

3.RowKey设计案例

明细主表rowkey设计
rowkey:系统账号+交易日期+时间戳+账户交易序号+客户账号+账号序号+交易日志号
索引表rowkey设计
rowkey:系统账号+交易日期+时间戳(排序)+账户交易序号+客户账号+账号序号+交易日志号

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44352020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值