《表2 行键唯一值:Hbase行键优化设计与热点防治策略》
步骤二:行键组成。第一,Salt。让数据均衡分布到各个Region,结合预拆分,对查询键即Warehouse表的check_id求hashcode值,modulus(numRegions)作为前缀,注意补齐数据,使用语句StringUtils.leftPad (Integer.toString (Math.abs (check_id.hashCode ()%numRegion) ) ,1,’0’) 表示。如果数据量达上百G以上,numRegions为2位数,Salt也为2位数[7]。第二,Hash散列。check_id是不定长的字符数字串,为使数据散列化,方便行键查询和比较,对check_id采用MD5散列化,实现32位定长化,语句是MD5Hash.getMD5AsHex(Bytes.toBytes (check_id)) 。第三,唯一性。将以上Salt+Hhash值作为行键前缀,结合check表的主键id保障行键唯一性。Warehouse表的行键设计如表2所示。
图表编号 | XD0079767400 严禁用于非法目的 |
---|---|
绘制时间 | 2019.08.15 |
作者 | 陈玉林、王武 |
绘制单位 | 湖南现代物流职业技术学院、湖南现代物流职业技术学院 |
更多格式 | 高清、无水印(增值服务) |