首页 > 其他 > 详细

Hbase 如何用对rowkey加盐

时间:2020-05-23 16:24:18      阅读:81      评论:0      收藏:0      [点我收藏+]

EX. 业务原因: hbase 的 region 是将范围内的rowkey 放一起

但是如果某一段时期数据量大 , 就会造成region(分区) 数据的分布不均 , ,所以需要加盐 ,加哪里 ,放最前面

int num = 1000;

String rowkey_ori="2015880524002300_1232";
int saltCode=rowkey_ori.hashCode()%num;
if(saltCode>0){
String rowkey = String.format("%04d", saltCode)+rowkey_ori;
}else {
String rowkey = String.format("%04d", -saltCode)+rowkey_ori;
}

  解释:我这里是1000个分区

    第一个rowkey_ori 指的是之前的原始数据

    saltCode指的是根据哈希值取整 , 除1000取余数 , 那么就会得到 0-999 ,然后根据salCode 

    另外 , 哈希值可以是负数 , 所以我加了判断

Hbase 如何用对rowkey加盐

原文:https://www.cnblogs.com/alpha-cat/p/12942536.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!