hbase的过滤器查询
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日, hbase的过滤器有很多:大致分为两大类:比较过滤器和专用过滤器,过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端;hbase 过滤器的比较运算符: LESS --
千家信息网最后更新 2025年12月04日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安全错误
数据库的锁怎样保障安全
网络安全维护薪资
小学扶苗网络安全活动总结
工业网络技术硕士论文
软件开发程序员程序员
全民斗三国的服务器
网络安全和信息化有哪些内容
2021软件开发就业
王洪英计算机网络技术班主任
顺科软件开发深圳公司电话
进销存服务器
数据库怎么接受字段名称
广达集团 服务器
数据库质疑数据源
常州仟渔网络技术
服务器总是自动重启不能进入桌面
浙江软件开发费用是多少
揭阳通讯软件开发销售厂
数据处理编程软件开发
电影信息管理系统数据库题
html5服务器
印度信息技术和软件开发哪个好
建立用户信息数据库
换车网武汉网络技术
厦门猫呜王软件开发公司
我的世界神奇宝贝服务器发福利
数据库人物画像技术
医院网络安全入侵防范的对象
网络安全等级保护工作领导组
互联网高科技ppt
云相框服务器