首页 理论教育 使用HBase Java API实现数据访问

使用HBase Java API实现数据访问

时间:2023-06-26 理论教育 版权反馈
【摘要】:本节通过一个具体的编程实例来学习说明如何使用HBase Java API解决实际问题。程序代码的主要框架如下:建立HBase连接和关闭连接。1)建立HBase连接。在使用HBase数据库前,必须首先建立连接,通过连接可以获取Admin子类,完成对数据库模型的操作。代码中,首先为configuration配置对象设置HBase数据库的存储路径hbase.rootdir。注意,使用上述代码添加数据时,需要分别为参数tableName、rowKey、colFamily、col和val赋值。

使用HBase Java API实现数据访问

本节通过一个具体的编程实例来学习说明如何使用HBase Java API解决实际问题。在本实例中,首先创建一个学生成绩表scores,用来存储学生各门课程的考试成绩,然后向scores添加数据。表scores的概念视图如表6-5所示,学生的名字name为行键,年级grade是一个只有一个列的列族,score是一个列族,每一门课程都是score的一个列,如english、math、Chinese等。score的列可以随时添加。例如,后续学生又参加了其他课程的考试,如computing、physics等,那么就可以添加到score列族。因为每个学生参加考试的课程也会不同,所以,并不一定表中的每一个单元都会有值。在该实例中,要向学生成绩表scores中添加的数据如表6-6所示。

表6-5 学生成缋表scores的概念视图

表6-6 学生成绩表scores的数据

(1)程序框架

首先,实例化configuration对象,建立与HBase连接;其次,在建立连接的数据库中,创建表和插入数据;最后,表中所插入的浏览课程成绩。程序代码的主要框架如下:

(2)建立HBase连接和关闭连接。

1)建立HBase连接。

在使用HBase数据库前,必须首先建立连接,通过连接可以获取Admin子类,完成对数据库模型的操作。建立连接的代码如下。

代码中,首先为configuration配置对象设置HBase数据库的存储路径hbase.rootdir。本实例使用HDFS作为HBase的底层存储方式,所以在代码中把configuration的第二个参数赋值为HDFS://localhost:9000/hbase。

2)关闭数据库连接。

对HBase数据库操作结束之后,需要关闭数据库的连接,具体代码如下。

(3)创建表。

创建HBase数据库表的时候,首先需要定义表的模型,包括表的名称、行键和列族的名称。具体代码如下。

(www.xing528.com)

注意,在调用上述代码创建学生成绩表scores时,需要指定参数myTableName为“scores”,colFamily为“{"grade","score"}”,即createTable("scores",{"grade","score"})。

(4)添加数据。

为HBase数据库表添加数据,需要指定行键、列族、列限定符、时间戳,其中,时间戳可以在添加数据时由系统自动生成。因此,向表里添加数据时,需要提供行键、列族和列限定符及数据值信息,具体代码如下。

注意,使用上述代码添加数据时,需要分别为参数tableName、rowKey、colFamily、col和val赋值。例如,要添加图2的第一个学生的数据,就需要使用如下4行代码。

insertData("scores","dandan","grade","","6");

insertData("scores","dandan","score","english","95");

insertData("scores","dandan","score","math","100");

insertData("scores","dandan","score","Chinese","92");

同样,可通过以下代码,添加第二个学生的数据。

insertData("scores","sansan","grade","","6");

insertData("scores","sansan","score","english","87");

insertData("scores","sansan","score","math","95");

insertData("scores","sansan","score","Chinese","98");

(5)浏览数据。

在向数据库表添加数据以后,就可以查询表中的数据了。

同样,在使用上述代码查询学生课程的成绩时,需要进行参数赋值。例如,查询学生“dandan”的“math”课程的成绩,其实现代码为:getData("scores","dandan","score","math")。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈