Hbase'过滤器


HBase Filter

使用过滤器:
//集合用于存储过滤条件
		List<String> array = new ArrayList<String>();
//加入过滤条件
		array.add("action,event,TreasureDetail");
		array.add("action,label,Enter");
//调用相应过滤方法
		HBaseManager.setAndFilter(scan, array);
定义过滤方法:
	public static void setAndFilter(Scan scan, List<String> array) 
	{
	        FilterList filterList = new FilterList();
	        for (String v : array) { //循环判断每个条件
	            String[] s = v.split(",");
	            filterList.addFilter(new SingleColumnValueFilter(//将条件加入过滤器
	            Bytes.toBytes(s[0]), 
	            Bytes.toBytes(s[1]), 
	            CompareOp.EQUAL, 
	            Bytes.toBytes(s[2])
	            )
	            );
	        }
	        scan.setFilter(filterList);
	}
参数详解: 
	org.apache.hadoop.hbase.filter.CompareFilter.CompareOp
	CompareOp.GREATER//大于 
	CompareOp.GREATER_OR_EQUAL//大于或者登录
	CompareOp.EQUAL//等于
	CompareOp.NOT_EQUAL//不等与
	CompareOp.NO_OP //无操作
	CompareOp.LESS //小于
	CompareOp.LESS_OR_EQUAL //小于或者等于
 
	FilterList filterList = new FilterList();   //各个条件之间是且的关系(默认)
	FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ONE);     //各个条件之间是或的关系
//方法传入的List集合参数中包含了一个个的条件
	FilterList.Operator.MUST_PASS_ONE//OR
	FilterList.Operator.MUST_PASS_ALL //AND
	 
	org.apache.hadoop.hbase.filter.FilterList
	org.apache.hadoop.hbase.filter.SingleColumnValueFilter
	SingleColumnValueFilter(byte[] family, byte[] qualifier, CompareOp compareOp, byte[] value)
*/
/**
使用过滤器:
FilterList list = new FilterList();
HBaseManager.addTimeStampExcludeFilter(list, 
	HTableConstant.Bytes.toBytes("imei"),
	HTableConstant.Bytes.toBytes("date"), 
	Bytes.toBytes(date)
	);
scan.setFilter(list);
定义过滤器方法:
public static void addTimeStampExcludeFilter(FilterList list, byte[] family, byte[] qualifier, byte[] timestamp)  {
        SingleColumnValueExcludeFilter filter = 
		new SingleColumnValueExcludeFilter(family, qualifier, CompareOp.GREATER_OR_EQUAL, timestamp);
        list.addFilter(filter);
}
参数详解:
	list, //FilterList对象
	HTableConstant.Bytes.toBytes("imei"),//列族
	HTableConstant.Bytes.toBytes("date"), //列
	Bytes.toBytes(date)//value
	 
	org.apache.hadoop.hbase.filter.SingleColumnValueExcludeFilter
//简单的列值排除
	SingleColumnValueExcludeFilter(byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value) 
	family:列族
	qualifier:列
	compareOp:过滤条件
	value:值

	org.apache.hadoop.hbase.filter.SingleColumnValueFilter
//简单的列值包含
	SingleColumnValueFilter(byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value) 
	family:列族
	qualifier:列
	compareOp:过滤条件
	value:值
	
	org.apache.hadoop.hbase.filter.SkipFilter.SkipFilter(Filter filter)
//跳过
	ase.filter.QualifierFilter
//限定词过滤
	QualifierFilter(CompareOp op, WritableByteArrayComparable qualifierComparator)
	op:过滤条件
	qualifierComparator:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值