目录
1、过滤器
过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端
过滤器的类型很多,但是可以分为两大类
-
比较过滤器
-
专用过滤器
2、比较过滤器使用
-
HBase过滤器的比较运算符:
LESS <
LESS_OR_EQUAL <=
EQUAL =
NOT_EQUAL <>
GREATER_OR_EQUAL >=
GREATER >
NO_OP 排除所有
-
HBase比较过滤器的比较器(指定比较机制):
BinaryComparator 按字节索引顺序比较指定字节数组,采用Bytes.compareTo(byte[])
BinaryPrefixComparator 跟前面相同,只是比较左端前缀的数据是否相同
NullComparator 判断给定的是否为空
BitComparator 按位比较
RegexStringComparator 提供一个正则的比较器,仅支持 EQUAL 和非EQUAL
SubstringComparator 判断提供的子串是否出现在中

比较过滤器

1)rowKey过滤器RowFilter
-
通过RowFilter过滤比rowKey 0003小的所有值出来
/**
* 查询所有的rowkey比0003小的所有的数据
*/
@Test
public void rowFilter() throws IOException {
//Table table = connection.getTable(TableName.valueOf(TABLE_NAME));
Scan scan = new Scan();
//获取我们比较对象
BinaryComparator binaryComparator = new BinaryComparator("0003".getBytes());
/***
* rowFilter需要加上两个参数
* 第一个参数就是我们的比较规则
* 第二个参数就是我们的比较对象
*/
RowFilter rowFilter = new RowFilter(CompareFilter.CompareOp.LESS, binaryComparator);
//为我们的scan对象设置过滤器
scan.setFilter(rowFilter);
ResultScanner scanner = table.getScanner(scan);
for (Result result : scanner) {
List<Cell> cells = result.listCells();
for (Cell cell : cells) {
byte[] family_name = CellUtil.cloneFamily(cell);
byte[] qualifier_name = CellUtil.cloneQualifier(cell);
byte[] rowkey = CellUtil.cloneRow(cell);
byte[] value = CellUtil.cloneValue(cell);
//判断id和age字段,这两个字段是整形值
if("age"
目录1、过滤器2、比较过滤器使用3、专用过滤器使用4、多过滤器综合查询FilterList1、过滤器过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端过滤器的类型很多,但是可以分为两大类 比较过滤器 专用过滤器 2、比较过滤器使用 HBase过滤器的比较运算符: LESS <LESS_OR_EQUAL <=EQUAL =NOT_EQUAL <>GREATER_OR_EQUAL >=
最低0.47元/天 解锁文章
4066

被折叠的 条评论
为什么被折叠?



