过滤器查询
hbase过滤器的分类
1、比较过滤器
行键过滤器 RowFilter Filter filter1 = new RowFilter(CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("row-22"))); scan.setFilter(filter1); 列族过滤器 FamilyFilter Filter filter1 = new FamilyFilter(CompareFilter.CompareOp.LESS, new BinaryComparator(Bytes.toBytes("colfam3"))); scan.setFilter(filter1); 列过滤器 QualifierFilter Filter filter = new QualifierFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("col-2"))); scan.setFilter(filter1); 值过滤器 ValueFilter Filter filter = new ValueFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator(".4") ); 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); 前缀过滤器 PrefixFilter----针对行键 Filter filter = new PrefixFilter(Bytes.toBytes("row1")); scan.setFilter(filter1); 列前缀过滤器 ColumnPrefixFilter Filter filter = new ColumnPrefixFilter(Bytes.toBytes("qual2")); scan.setFilter(filter1);
RowFilter
api
提取rowkey以01结尾数据 Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new RegexStringComparator(".*01$")); 提取rowkey以包含201407的数据 Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("201407")); 提取rowkey以123开头的数据 Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new BinaryPrefixComparator("123".getBytes()));
故乡明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话