HBase样例程序开发思路
通过典型场景,您可以快速学习和掌握HBase的开发过程,并且对关键的接口函数有所了解。
场景说明
假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,如表1所示,A业务操作流程如下:
- 创建用户信息表。
- 在用户信息中新增用户的学历、职称等信息。
- 根据用户编号查询用户姓名和地址。
- 根据用户姓名进行查询。
- 查询年龄段在[20–29]之间的用户信息。
- 数据统计,统计用户信息表的人员数、年龄最大值、年龄最小值、平均年龄。
- 用户销户,删除用户信息表中该用户的数据。
- A业务结束后,删除用户信息表。
表1 用户信息 编号
姓名
性别
年龄
地址
12005000201
Zhang San
Male
19
Shenzhen City, Guangdong Province
12005000202
Li Wanting
Female
23
Hangzhou City, Zhejiang Province
12005000203
Wang Ming
Male
26
Ningbo City, Zhejiang Province
12005000204
Li Gang
Male
18
Xiangyang City, Hubei Province
12005000205
Zhao Enru
Female
21
Shangrao City, Jiangxi Province
12005000206
Chen Long
Male
32
Zhuzhou City, Hunan Province
12005000207
Zhou Wei
Female
29
Nanyang City, Henan Province
12005000208
Yang Yiwen
Female
30
Wenzhou City, Zhejiang Province
12005000209
Xu Bing
Male
26
Weinan City, Shaanxi Province
12005000210
Xiao Kai
Male
25
Dalian City, Liaoning Province
数据规划
合理地设计表结构、行键、列名能充分利用HBase的优势。本样例工程以唯一编号作为RowKey,列都存储在info列族中。
HBase表以“命名空间:表名”格式进行存储,若在创建表时不指定命名空间,则默认存储在“default”中。其中,“hbase”命名空间为系统表命名空间,请不要对该系统表命名空间进行业务建表或数据读写等操作。
功能分解
根据上述的业务场景进行功能分解,需要开发的功能点如表2所示。
序号 |
步骤 |
代码实现 |
---|---|---|
1 |
根据表1中的信息创建表。 |
请参见创建HBase表。 |
2 |
导入用户数据。 |
请参见插入HBase数据。 |
3 |
增加“教育信息”列族,在用户信息中新增用户的学历、职称等信息。 |
请参见修改HBase表。 |
4 |
根据用户编号查询用户姓名和地址。 |
请参见使用Get读取HBase数据。 |
5 |
根据用户姓名进行查询。 |
请参见使用HBase过滤器Filter。 |
6 |
用户销户,删除用户信息表中该用户的数据。 |
请参见删除HBase数据。 |
7 |
A业务结束后,删除用户信息表。 |
请参见删除HBase表。 |
关键设计原则
HBase是以RowKey为字典排序的分布式数据库系统,RowKey的设计对性能影响很大,具体的RowKey设计请考虑与业务结合。