hbase的过滤器查询
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日, hbase的过滤器有很多:大致分为两大类:比较过滤器和专用过滤器,过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端;hbase 过滤器的比较运算符: LESS --
千家信息网最后更新 2026年11月03日hbase的过滤器查询
hbase的过滤器有很多:大致分为两大类:比较过滤器和专用过滤器,过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端;
hbase 过滤器的比较运算符:
LESS ----- < LESS_OR_EQUAL ----- <= EQUAL ----- = NOT_EQUAL ----- <> GREATER_OR_EQUAL ----- >= GREATER ----- > NO_OP #排除所有 HBase 过滤器的比较器(指定比较机制):
BinaryComparator 按字节索引顺序比较指定字节数组,采用 Bytes.compareTo(byte[])BinaryPrefixComparator 跟前面相同,只是比较左端的数据是否相同NullComparator 判断给定的是否为空BitComparator 按位比较RegexStringComparator 提供一个正则的比较器,仅支持 EQUAL 和非 EQUALSubstringComparator 判断提供的子串是否出现在 value 中。1. 比较过滤器
//行键过滤器 RowFilterFilter filter1 = new RowFilter(CompareOp.LESS_OR_EQUAL, newBinaryComparator(Bytes.toBytes("user0000")));scan.setFilter(filter1);//列簇过滤器 FamilyFilterFilter filter1 = new FamilyFilter(CompareOp.LESS, newBinaryComparator(Bytes.toBytes("base_info")));scan.setFilter(filter1);//列过滤器 QualifierFilterFilter filter = new QualifierFilter(CompareOp.LESS_OR_EQUAL, newBinaryComparator(Bytes.toBytes("name")));scan.setFilter(filter1);//值过滤器 ValueFilterFilter filter = new ValueFilter(CompareOp.EQUAL, new SubstringComparator("zhangsan") );scan.setFilter(filter1); //时间戳过滤器 TimestampsFilterList tss = new ArrayList();tss.add(1495398833002l);Filter filter1 = new TimestampsFilter(tss);scan.setFilter(filter1); 2.专用过滤器
//单列值过滤器 SingleColumnValueFilter ----会返回满足条件的整行SingleColumnValueFilter filter = new SingleColumnValueFilter( Bytes.toBytes("colfam1"), Bytes.toBytes("col-5"), CompareFilter.CompareOp.NOT_EQUAL, new SubstringComparator("val-5"));filter.setFilterIfMissing(true); //如果不设置为 true,则那些不包含指定 column 的行也会返回scan.setFilter(filter1); //单列值排除器 SingleColumnValueExcludeFilter -----返回排除了该列的结果SingleColumnValueExcludeFilter filter = new SingleColumnValueExcludeFilter( Bytes.toBytes("colfam1"), Bytes.toBytes("col-5"), CompareFilter.CompareOp.NOT_EQUAL, new SubstringComparator("val-5"));filter.setFilterIfMissing(true); //如果不设置为 true,则那些不包含指定 column 的行也会返回scan.setFilter(filter1);//前缀过滤器 PrefixFilter----针对行键Filter filter = new PrefixFilter(Bytes.toBytes("row1"));scan.setFilter(filter1); //列前缀过滤器 ColumnPrefixFilterFilter filter = new ColumnPrefixFilter(Bytes.toBytes("qual2"));scan.setFilter(filter1); 实战案例:
public class HBase_Filter01 { private static String ZK_KEY = "hbase.zookeeper.quorum"; private static String ZK_VALUE = "hadoop01:2181,hadoop02:2181,hadoop03:2181"; private static Configuration conf; private static Connection connection; private static Admin admin; static { conf = HBaseConfiguration.create(); conf.set(ZK_KEY,ZK_VALUE); try { connection= ConnectionFactory.createConnection(conf); admin=connection.getAdmin(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { Scan scan=new Scan(); ValueFilter filter = new ValueFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator("a")); scan.setFilter(filter); TableName tableName =TableName.valueOf("user_info"); try { Table table = connection.getTable(tableName); ResultScanner scanner = table.getScanner(scan); Iterator iterator=scanner.iterator(); while(iterator.hasNext()){ Result result = iterator.next(); System.out.println(result.list()); byte[] row = result.getRow(); System.out.println(new String(row)); } } catch (IOException e) { e.printStackTrace(); } }}
过滤器
数据
条件
相同
前缀
字节
比较器
专用
作用
只是
大类
实战
客户
客户端
数组
时间
是在
机制
案例
正则
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司怎么样
广州大一互联网络科技有限公司
中关村互联网科技集团
河南真二互联网科技有限公司
朗新科技与工业互联网
腾讯阿里互联网科技
互联网 科技公司
杭州互联网科技公司
互联网科技logo设计
沃里互联网科技
上游互联网科技
甘肃拓世互联网科技有限公司
互联网系的金融科技公司
汽车互联网创新科技园
彤创互联网科技有限公司
苏州五指互联网络科技有限
阿大互联网科技有限公司
天津腾达互联网科技有限公司
中国互联网公司排名锤子科技
如何强化互联网金融科技
博彦科技互联网金融
互联网与科技发展
互联网科技战争
互联网科技革命
米客互联网科技
深圳艾佳互联网科技
互联网科技产品
南山科技园互联网公司有哪些
昊天互联网科技有限公司
郑州欣桑互联网科技有限公司