HBase窄表和宽表的设计问题

[复制链接]
查看11 | 回复3 | 2021-1-27 06:11:03 | 显示全部楼层 |阅读模式
HBase支持宽表设计,但在网上查了很多资料,发现大部分表都设计成窄表
请问在什么应用中,HBASE会设计成宽表?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:11:03 | 显示全部楼层
HBASE宽表应用很多
比如BBS,可以用帖子的URL地址作为ROWKEY保存
而后面的每一个回复,作为单独的COLUMNS
回复越多,COLUMNS就越多,表就变宽了
COLUMNS的qualifier名称设计很简单
假设你的表FC="_0"
qualifier={"_0:_00000001","_0:_00000002","_0:_00000003",.....,"_0:_0XXXXXXX"}
对于每个ROW的数据,qualifier也是按字典排序的,所以qualifier的左边需要补"0"
还有一种设计方法,假设BBS每一页显示100行
qualifier={"_0:_0000100","_0:_0000101","_0:_0000102"...."_0:_0000200","_0:_0000201"....,"_0:_0XXXXXXX"}
用页数编号加每一页的行数来定义qualifier
VALUE中放每一行的具体内容
回复

使用道具 举报

千问 | 2021-1-27 06:11:03 | 显示全部楼层
谢谢斑竹分享宝贵经验
回复

使用道具 举报

千问 | 2021-1-27 06:11:03 | 显示全部楼层
引用1楼tntzbzc的回复:HBASE宽表应用很多
比如BBS,可以用帖子的URL地址作为ROWKEY保存
而后面的每一个回复,作为单独的COLUMNS
回复越多,COLUMNS就越多,表就变宽了
COLUMNS的qualifier名称设计很简单
假设你的表FC="_0"
qualifier={"_0:_00000001","_0:_00000002","_0:_00000003",.....,"_0:_0XXXXXXX"}
对于每个ROW的数据,qualifier也是按字典排序的,所以qualifier的左边需要补"0"
还有一种设计方法,假设BBS每一页显示100行
qualifier={"_0:_0000100","_0:_0000101","_0:_0000102"...."_0:_0000200","_0:_0000201"....,"_0:_0XXXXXXX"}
用页数编号加每一页的行数来定义qualifier
VALUE中放每一行的具体内容

按版主这个表schema设计,假设现在要搜索该帖子的某个回复,条件比如是回帖时间或者回帖人,是否需要全表扫描呢?是否有办法像索引那样直接定位到某个region某个store或某个hfile?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行