hbase性能调优案例
1、人员-角色
人员有多个角色 角色优先级
角色有多个人员
人员 删除添加角色
角色 可以添加删除人员
人员 角色 删除添加
设计思路
person表
rowkey | cf1 - 人员基本信息 | cf2 - 角色列表 |
pid | cf1: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. 优先考虑查询的性能,(部门的添加删除要少于查询)
rowkey | cf1 - 基本信息 | cf2 - 子部门列表 |
pid | cf1: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 - 粉丝列表 |
uid | cf1:uid=uname;... | cf2:uid=name;... |
用户表--举例说明
001 小明 cf2:002=李雷
002 李雷 cf1:001=小明
微博表
完成查看某个用户发布的所有微博功能
rowkey | cf1 - 微博信息 |
wid | cf1:weibo=微博内容 |
wid 设计:
uid_(Long.max-time)
收微博表
开启一个子线程,进行微博收集
完成查看首页微博功能
rowkey | cf1 |
uid | cf1:collect=wid (version=1000) |