hbase性能调优案例

1、人员-角色

  人员有多个角色  角色优先级
  角色有多个人员
  人员 删除添加角色
  角色 可以添加删除人员
  人员 角色 删除添加
 
设计思路
person表
rowkeycf1 - 人员基本信息 cf2 - 角色列表
pidcf1:pname=;cf1:age;.. cf2:rid=n数字、优先级;...
person表--举例说明
001  cf1:pname=小周;cf1:age=1;    cf2:102=0;
002  cf1:pname=小明;cf2:age=99;   cf2:101=1;cf2:102=0;
 
role表
rowkey cf1 - 角色基本信息cf2 - 人员列表
rid   cf1:rname=; cf2:pid=pname;...
role表--举例说明
101  cf1:rname=前台;    cf2:002=小明;
102  cf1:rname=销售;     cf2:001=小周;cf2:002=小明;
 

2、组织架构 部门-子部门

  查询 顶级部门
  查询 每个部门的所有子部门
  部门 添加、删除子部门
  部门 添加、删除 
 
设计思路
    1.    优先考虑查询的性能,(部门的添加删除要少于查询)
rowkeycf1 - 基本信息cf2 - 子部门列表
pidcf1:name;cf1:pid;...cf2:pid=name;...

pid 设计:

    0_标识    顶级部门
    1_标识    非顶级部门
 
举例说明
0_001        cf1:name=互联网;...                              cf2:1_002=开发部;cf2:1_003=测试部;
1_002        cf1:name=开发部;cf1:pid=0_001;...
1_003        cf1:name=测试部;cf1:pid=0_001;...
 

3、根据新浪微博系统:请建立微博系统的表

   发微博
   查看微博:
       1、查看首页微博
       2、查看某个用户发布的所有微博
   关注好友、取消关注、查看关注的好友列表
   查看粉丝列表
 
设计思路
用户表
    关注好友、取消关注、查看关注过的好友列表
    查看粉丝列表
rowkey cf1 - 关注列表cf2 - 粉丝列表
uidcf1:uid=uname;...cf2:uid=name;...

用户表--举例说明

001        小明                                                                                cf2:002=李雷
002        李雷                        cf1:001=小明
 
微博表
    完成查看某个用户发布的所有微博功能
rowkey cf1 - 微博信息
widcf1:weibo=微博内容
wid 设计:
    uid_(Long.max-time)
 
收微博表
    开启一个子线程,进行微博收集
    完成查看首页微博功能
rowkeycf1
uidcf1:collect=wid
(version=1000)
04-20 20:58