HBase查询(1)---Comparision Filters比较过滤器

1.1  RowFilter

构造函数

public RowFilter(CompareOp rowCompareOp, WritableByteArrayComparable rowComparator) {} 

选择比较rowkey来确定选择合适的行信息。

示例代码:

package filter;

import java.io.IOException;

import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.BinaryComparator;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.RegexStringComparator;
import org.apache.hadoop.hbase.filter.RowFilter;
import org.apache.hadoop.hbase.filter.SubstringComparator;
import org.apache.hadoop.hbase.util.Bytes;

public class RowFilterExample extends FilterExampleBase{


	public static void main(String[] args) throws IOException {
		new RowFilterExample().doMain();
	}
	
	@Override
	public void testFilter() throws IOException {
		System.out.println("-----------------testFilter() start-------------");
		HTable table = new HTable(config, tableName);

		Scan scan = new Scan();
		// scan.addColumn(Bytes.toBytes("c1"), Bytes.toBytes("a"));

		Filter filter1 = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, 
                                       new BinaryComparator(Bytes.toBytes("r2")));
		scan.setFilter(filter1);
		ResultScanner scanner1 = table.getScanner(scan);
		showScanner(scanner1);
		scanner1.close();

		showLine();
		Filter filter2 = new RowFilter(CompareFilter.CompareOp.EQUAL, 
                                   new RegexStringComparator(".*3"));
		scan.setFilter(filter2);
		ResultScanner scanner2 = table.getScanner(scan);
		showScanner(scanner2);
		scanner2.close();

		showLine();
		Filter filter3 = new RowFilter(CompareFilter.CompareOp.EQUAL, 
                                new SubstringComparator("4"));
		scan.setFilter(filter3);
		ResultScanner scanner3 = table.getScanner(scan);
		showScanner(scanner3);
		scanner3.close();
		System.out.println("-----------------testFilter() end-------------");
	}
}

结果:
start create table......
test is exist delete!!!
create table over......
start insert......
end insert......


-----------------findAll() start-------------
{rowkey:r1 c1:a=r1c1a c1:b=r1c1b c2:a=r1c2a c2:b=r1c2b}
{rowkey:r2 c1:a=r2c1a c2:b=r2c2b}
{rowkey:r3 c1:a=c1a c1:b=r3c1b c2:a=r3c2b c2:b=r3c2b}
{rowkey:r4 c1:a=c1a c1:b=r4c1b c2:a=r4c2b c2:b=r4c2b}
-----------------findAll() end-------------


-----------------testFilter() start-------------
{rowkey:r1 c1:a=r1c1a c1:b=r1c1b c2:a=r1c2a c2:b=r1c2b}
{rowkey:r2 c1:a=r2c1a c2:b=r2c2b}
-----------------
{rowkey:r3 c1:a=c1a c1:b=r3c1b c2:a=r3c2b c2:b=r3c2b}
-----------------
{rowkey:r4 c1:a=c1a c1:b=r4c1b c2:a=r4c2b c2:b=r4c2b}
-----------------testFilter() end-------------

 1.2  FamilyFilter

构造函数

public FamilyFilter(CompareOp familyCompareOp, WritableByteArrayComparable familyComparator) {}  

通过和列簇比较得到,返回结果为真的数据,示例: 

package filter;

import java.io.IOException;

import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.SubstringComparator;
import org.apache.hadoop.hbase.filter.ValueFilter;
import org.apache.hadoop.hbase.util.Bytes;

public class FamilyFilterExample extends FilterExampleBase{

	public static void main(String[] args) throws IOException {
		new FamilyFilterExample().doMain();
	}

	public void testFilter() throws IOException {

		Filter filter = new ValueFilter(CompareFilter.CompareOp.EQUAL, 
                                           new SubstringComparator("c1"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
hbase-client-project-2.4.16.jar是一个用于连接HBase数据库的Java客户端项目。HBase是一个分布式、面向列的NoSQL数据库,它可以存储大规模数据,并提供高可靠性和高性能的数据访问。而hbase-client-project-2.4.16.jar则是用来连接HBase数据库的Java客户端库。通过这个库,开发人员可以在Java应用中方便地访问HBase数据库,进行数据的读取、写入和管理操作。 hbase-client-project-2.4.16.jar库提供了丰富的API,使得开发人员可以编写简洁、高效的代码来操作HBase数据库。通过这个库,可以轻松地建立与HBase集群的连接,创建、删除表格,进行数据的增删改查等操作。此外,hbase-client-project-2.4.16.jar也提供了一些高级特性,比如支持过滤器、批量操作、数据版本控制等功能,让开发人员能够更加灵活地利用HBase数据库进行数据处理。 除此之外,hbase-client-project-2.4.16.jar还支持与HBase的安全认证和权限控制,可以保障数据访问的安全性。开发人员可以使用这个库来编写安全的Java应用,确保对HBase数据库的数据进行合法、受控的访问。 总之,hbase-client-project-2.4.16.jar是一个强大、灵活的Java客户端库,为开发人员提供了便捷的方式来连接、操作HBase数据库。无论是小规模的应用还是大规模的数据处理需求,它都能够满足开发人员的要求,帮助他们更有效地利用HBase数据库。 (字数: 258)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值