Hbase表的设计

设计hbase表(表的查询相对于表的删除更多,所以设计表的时候要优先考虑查询)
  实际上描述了:多对多的对应关系:两张表(如下:人员-角色表的设计)!

1、人员-角色

    1.人员有多个角色,角色优先级

    2.角色有多个人员

    3.人员 删除添加角色

    4.角色 可以添加删除人员

    5.人员 角色 删除添加
    
 
person表
 
  rowkey                    CF1                      CF2                   
                        person_info                role                
                
  member_id          person_info:name        role:role_id1 = 优先级num            
                     person_info:age        role:role_id2 = 优先级num    

    001              cf1:name=xiaoming      cf2:101=1,cf2:102=0
    
role表
 
  rowkey              CF1                      CF2                   
                 role_info                   person        
                
  role_id         role_info:name            person:member_id1 = member_name    
                role_info:fullname        person:member_id2 = member_name    

    101         cf1:name=服务员         cf2: cf2:001=xiaoming001=xiaoming
    102         cf1:name=前台           
    
    
可以效仿 手机+UUID 生成主键ID;


hbase中没有像关系型数据库中的join语句(连接多张表),但是可以通过二级索引的方式查询!




2、组织架构 部门-子部门 (描述的是一对多表的设计)

    1.查询 顶级部门

    2.查询 每个部门的所有子部门(指的是二级子部门)

    3.部门 添加、删除子部门

    4.部门 添加、删除
    
    组织架构:
    1.Dept_no   部门编号
    2.Dept_name 部门编号
    3.Dept_pno  上级部门编号
    
    
    dept 表
    
    rowkey(rowkey在hbase中是按着字典排序的,所以设计rowkey的时候是将部门id放在uuid前面,而不是放在将uuid放在前面,部门级别越高,越会排在hbase数据库的前面)
    

    dept表
       
    rowkey      dept列簇           dept-cid列簇                     
    0|1_did     cf1:name  名称    cid代表子id name为子id名称            
                cf1:pid   父id    cf2:cid1=name1         
                                  cf2:cid2=name2            
                                  cf2:cid3=name3            
    0 代表 顶级部门
    1 代表 非顶级部门

    0_001   cf1:name=尚学堂教学部     cf2:1_101=尚学堂大数据教学组
    0_002   cf1:name=尚学堂财务部

    1_101   cf1:name=尚学堂大数据教学组  cf1:pid=0_001
    1_102   cf1:name=尚学堂Java教学组
    
    
    
    可以有多个rowkey数据!只有一个rowkey字段!
                   
                       
3、微博
    添加、删除关注好友 查看粉丝列表
    查看所关注的好友的微博 首页
    查看自己发布微博
    写微博


    粉丝关注用户表
    rowkey       cf1(存放关注列表)    cf2(存放粉丝列表)
    uid          cf1:uid=uname        cf2:uid=uname

    微博表
    rowkey                 cf1
    uid_(long.max-time)    cf1:content=微博内容   


    收微博表
    rowkey    cf1
    uid       cf1:id=uid_(long.max-time)   version=1000

      A  B  C  D
    C 粉丝 A B
    A 关注 C D
    B 关注 C
    D 粉丝 A                   
        

        
    我们可以设置版本号:1000,当超过版本号的个数时候,Hbase就会删除最旧的数据!或者当我们主动发送删除请求的时候,它也会删除!
    但是这两种情况的删除都是在region进行合并的时候删除的!
    
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值