
# 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列族中。
![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/caution_3.0-zh-cn.png)
HBase表以"*命名空间* :*表名*"格式进行存储，若在创建表时不指定命名空间，则默认存储在"default"中。其中，"hbase"命名空间为系统表命名空间，请不要对该系统表命名空间进行业务建表或数据读写等操作。
#### 功能分解
根据上述的业务场景进行功能分解，需要开发的功能点如[表2]所示。
 表2在HBase中开发的功能 
| **序号** | **步骤**                                                                                                                      | **代码实现**                                                                          |
|:---|:---|:---|
| 1      | 根据[表1](https://support.huaweicloud.com/devg-mrs/mrs_06_0013.html#mrs_06_0013__zh-cn_topic_0036026573_table27353390)中的信息创建表。 | 请参见[创建HBase表](https://support.huaweicloud.com/devg-mrs/mrs_06_0018.html)。         |
| 2      | 导入用户数据。                                                                                                                     | 请参见[插入HBase数据](https://support.huaweicloud.com/devg-mrs/mrs_06_0021.html)。        |
| 3      | 增加"教育信息"列族，在用户信息中新增用户的学历、职称等信息。                                                                                             | 请参见[修改HBase表](https://support.huaweicloud.com/devg-mrs/mrs_06_0020.html)。         |
| 4      | 根据用户编号查询用户姓名和地址。                                                                                                            | 请参见[使用Get读取HBase数据](https://support.huaweicloud.com/devg-mrs/mrs_06_0023.html)。   |
| 5      | 根据用户姓名进行查询。                                                                                                                 | 请参见[使用HBase过滤器Filter](https://support.huaweicloud.com/devg-mrs/mrs_06_0025.html)。 |
| 6      | 用户销户，删除用户信息表中该用户的数据。                                                                                                        | 请参见[删除HBase数据](https://support.huaweicloud.com/devg-mrs/mrs_06_0022.html)。        |
| 7      | A业务结束后，删除用户信息表。                                                                                                             | 请参见[删除HBase表](https://support.huaweicloud.com/devg-mrs/mrs_06_0019.html)。         |
   
#### 关键设计原则
HBase是以RowKey为字典排序的分布式数据库系统，RowKey的设计对性能影响很大，具体的RowKey设计请考虑与业务结合。
