HBase的表设计与rowKey设计

HBase  一张表须要有 row key ,而 rowkey 是按照 ASCII 码来排序的,这就像关系型数据库的索引一样, row key 的规则限制了读取数据的方式。如果业务方需要使用另一种读取数据的方式,就必须重新输出 row key 。从这个角度来看, HBase 没有关系型数据库方便。但是 Base 张表能够存储TB 甚至几十 TB 的数据,而关系型数据库必须要分库分表才能实现这个量级的数据存储。因此,对于海量数据的实时计算,一般会采用非关系型数据库,以应对大量的多并发读写。下面介绍在数据统计中表名设计和 rowkey 设计的些实践经验。

 

1.表名设计

设计规则:汇总层标识+数据域+主维度+时间维度
例如: dws trd _s lr dtr ,表示汇总层交易数据,根据卖家( sir )主维度+0 点截至当日(dtr)进行统计汇总。

这样做的好处是,所有主维度相同的数据都放在一张物理表中,避免表数量过多,难以维护。另外,可以从表名上直观地看到存储的是什么数据内容,方便排查问题。

 

 

2.rowKey设计

设计规则: MD5 +主维度+维度标识+子维度 +时间维度+子维度
例如:卖家 ID MD5 前四位+卖家 ID+ app 级类目 ID+ddd +二级类目 ID
 

以MD5 前四位作为 row key 的第 部分,可以把数据散列,让服务器整体负载是均衡的,避免热点问题。在上面的例子中,卖家 ID于主维度 ,在查数据时是必传的。每个统计维度都会生成一个维度标识,以便在 rowkey 上做区分。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值