开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天
一、本篇笔记重点内容:
- 编程实现增加表数据
- 编程实现单行查询
- 编程实现单行查询
二、 详细知识点介绍
Table类是HBase中重要的表数据操作类,拥有对数据增加、删除、修改、查询等的接口。Table类的常用方法如下表所示:
编程实现增加表数据
插入 数据 (在 之前创建好表的基础上操作 )
使用put对象,对指定列数据插入,(分为单行插入和批量插入)
调用Table的put(Put put)方法,来提交数据,传入参数Put类是需要实例化数据信息,通常包括行键值、列族、字段名、字段值等信息,当然,孔可以加入时间戳,如果不加时间戳,则系统会自动引入。类Put用于格式化要提交的数据,它的常用方法如下表所示。
1) 创建好类,并配置好Hbase的加载信息(同之前信息),并创建表操作对象
public static void main(String[] args) throws IOException {
// 一、配置文件设置
// 创建用于客户端的配置类实例
Configuration config = HBaseConfiguration.create();
// 设置连接zookeeper的地址
// hbase客户端连接的是zookeeper
config.set(“hbase.zookeeper.quorum“, “localhost:2181“);
// 二、 获得要操作的表的对象。
// 第一个参数“config“为配置文件;第二个参数“account1“为数据库中的表名。
// (注:“account1“为上节中所创建的表)
HTable table = new HTable(config, “account1“);
}
2) 设置Put对象
public static void main(String[] args) throws IOException {
// 一、配置文件设置
// 创建用于客户端的配置类实例
Configuration config = HBaseConfiguration.create();
// 设置连接zookeeper的地址
// hbase客户端连接的是zookeeper
config.set(“hbase.zookeeper.quorum“, “localhost:2181“);
// 二、 获得要操作的表的对象。
// 第一个参数“config“为配置文件;第二个参数“account1“为数据库中的表名。
// (注:“account1“为上节中所创建的表)
HTable table = new HTable(config, “account1“);
// 三、设置Put对象
// 设置行健值为“rk001“
Put put = new Put(Bytes.toBytes(“rk001“));
// 设置列族、列、cell值
// 其中“baseinfo“位列族;“name“为列;“ZhangFei“为cell值
put.add(Bytes.toBytes(“baseinfo“), Bytes.toBytes(“name“), Bytes.toBytes(“ZhangFei“));
}
3)插入一行数据并释放资源
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
public class PutTest {
public static void main(String[] args) throws IOException {
// 一、配置文件设置
// 创建用于客户端的配置类实例
Configuration config = HBaseConfiguration.create();
// 设置连接zookeeper的地址
// hbase客户端连接的是zookeeper
config.set(“hbase.zookeeper.quorum“, “localhost:2181“);
// 二、 获得要操作的表的对象。
// 第一个参数“config“为配置文件;第二个参数“account1“为数据库中的表名。
// (注:“account1“为上节中所创建的表)
HTable table = new HTable(config, “account1“);
// 三、设置Put对象
// 设置行健值为“rk001“
Put put = new Put(Bytes.toBytes(“rk001“));
// 设置列族、列、cell值
// 其中“baseinfo“位列族;“name“为列;“ZhangFei“为cell值
put.add(Bytes.toBytes(“baseinfo“), Bytes.toBytes(“name“), Bytes.toBytes(“ZhangFei“));
// 四、插入一行数据
table.put(put);
// 五、释放资源
table.close();
}
}
编程实现单行查询
调用Table的get(Get get)方法,可以查询某一行所有列族的数据,传入的参数Get需要指定行键值。类Get用于格式要查询的元数据,通过此对象设定查询条件。常用方法如下表所示:
编程实现集合查询
调用Table的getScanner(Scan scan)方法,可以查询表集合的数据,需要传入的参数为Scan类,在Scan类里面,可以指定全部的表数据,也可以指定某行键值区间的数据。
类Scan用于格式化要查询数据集合的数据,通过此对象设定集合查询条件。它常用的方法如下表所示: