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

HBase样例程序开发思路

通过典型场景,您可以快速学习和掌握HBase的开发过程,并且对关键的接口函数有所了解。

场景说明

假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,如表1所示,A业务操作流程如下:

  • 创建用户信息表。
  • 在用户信息中新增用户的学历、职称等信息。
  • 根据用户编号查询用户姓名和地址。
  • 根据用户姓名进行查询。
  • 查询年龄段在[20-29]之间的用户信息。
  • 数据统计,统计用户信息表的人员数、年龄最大值、年龄最小值、平均年龄。
  • 用户销户,删除用户信息表中该用户的数据。
  • A业务结束后,删除用户信息表。
    表1 用户信息

    编号

    姓名

    性别

    年龄

    地址

    12005000201

    张三

    19

    广东省深圳市

    12005000202

    李婉婷

    23

    河北省石家庄市

    12005000203

    王明

    26

    浙江省宁波市

    12005000204

    李刚

    18

    湖北省襄阳市

    12005000205

    赵恩如

    21

    江西省上饶市

    12005000206

    陈龙

    32

    湖南省株洲市

    12005000207

    周微

    29

    河南省南阳市

    12005000208

    杨艺文

    30

    重庆市开县

    12005000209

    徐兵

    26

    陕西省渭南市

    12005000210

    肖凯

    25

    辽宁省大连市

数据规划

合理地设计表结构、行键、列名能充分利用HBase的优势。本样例工程以唯一编号作为RowKey,列都存储在info列族中。

HBase表以“命名空间:表名”格式进行存储,若在创建表时不指定命名空间,则默认存储在“default”中。其中,“hbase”命名空间为系统表命名空间,请不要对该系统表命名空间进行业务建表或数据读写等操作。

功能分解

根据上述的业务场景进行功能分解,需要开发的功能点如表2所示。

表2 在HBase中开发的功能

序号

步骤

代码实现

1

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

请参见创建HBase表

2

导入用户数据。

请参见向HBase表中插入数据

3

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

请参见修改HBase表

4

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

请参见使用Get API读取HBase表数据

5

根据用户姓名进行查询。

请参见使用Filter过滤器读取HBase表数据

6

为提升查询性能,创建二级索引或者删除二级索引。

请参见创建HBase表二级索引基于二级索引查询HBase表数据

7

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

请参见删除HBase表数据

8

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

请参见删除HBase表

关键设计原则

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