项目源码:https://github.com/cw1322311203/hbasedemo/tree/master/hbase-api
一,环境准备
二,HBaseAPI
2.1 获取Configuration对象
2.2 判断表是否存在
2.3 创建表
2.4 删除表
2.5 向表中插入数据
2.6 删除多行数据(三种标记)
2.7 获取所有数据
2.8 获取某一行数据
2.9 获取某一行指定“列族:列”的数据
三,HBaseUtils工具类
1.第一种工具类
2.第二种工具类:使用本地线程池方式
3.第三种工具类
具体代码在GitHub: https://github.com/cw1322311203/hbaseapi
新建项目后在pom.xml中添加依赖:
删除有三种标记
Delete标记: 删除特定列列指定的版本
DeleteFamily标记: 删除特定列族所有列
DeleteColumn标记: 删除特定列的所有版本
指定rowkey: 使用DeleteFamily标记
不加时间戳表示删除[指定rowkey]的所有数据
加时间戳表示删除[指定rowkey]中[时间戳版本小于或等于指定时间戳]的所有数据
指定rowkey+columnFamily: 使用DeleteFamily标记
不加时间戳表示删除[指定列族]的所有数据
加了时间戳就表示删除[指定列族]下[时间戳版本小于或等于指定时间戳]的所有数据
指定rowkey+columnFamily+column(addColumns): 使用DeleteColumn标记
不加时间戳表示删除[指定列]所有版本的数据
加时间戳表示删除[指定列]中[时间戳版本小于或等于指定时间戳]的所有数据
指定rowkey+columnFamily+column(addColumn): 使用Delete标记 (只删除单个版本数据,生产环境尽量别用)
不加时间戳表示删除[指定列]中[最新版本]的数据
加时间戳表示删除[指定列]中[指定时间戳版本]的数据
不推荐的原因是:操作不同(如flush前后操作产生的结果会不一样)结果可能不同
在flush前如果有多个版本的数据,此时进行addColumn(不加时间戳)操作,会将最新版本的数据删除,然后老版本的数据会出现
在flush后进行addColumn(不加时间戳)操作,会将最新版本的数据删除,而此时flush已将老版本的数据进行了删除,所有此时老版本的数据就不会出现了