更新时间: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设计请考虑与业务结合。