更新时间:2024-08-03 GMT+08:00

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所示。

表2 在HBase中开发的功能

序号

步骤

代码实现

1

根据表1中的信息创建表。

请参见创建HBase表

2

导入用户数据。

请参见插入HBase数据

3

增加“教育信息”列族,在用户信息中新增用户的学历、职称等信息。

请参见修改HBase表

4

根据用户编号查询用户姓名和地址。

请参见使用Get读取HBase数据

5

根据用户姓名进行查询。

请参见使用HBase过滤器Filter

6

用户销户,删除用户信息表中该用户的数据。

请参见删除HBase数据

7

A业务结束后,删除用户信息表。

请参见删除HBase表

关键设计原则

HBase是以RowKey为字典排序的分布式数据库系统,RowKey的设计对性能影响很大,具体的RowKey设计请考虑与业务结合。