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:

 

猜你喜欢

转载自oaksun.iteye.com/blog/1939984