HBase Filter
Filter
- CompareFilter
是高层的抽象类,下面我们将看到他的实现类和实现类代表的各种过滤条件
- RowFilter,FamliyFilter,QualifierFilter,ValueFilter
行,列组,列,值等的过滤
1.RowFilter
相关的过滤方法使用:
提取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()));
- SingleColumnValueFilter
单值过滤器是以特定“列”的“值”为过滤内容,值得是单列的值。而行值过滤器比较的是所有列的值。与其进行比较。
//时间范围的查找, 比如是2012-12-12到2013-01-23日之间的数据FilterList filter =newFilterList();if(timeFrom !=null) {String sDate = String.valueOf(timeFrom.getTime());SingleColumnValueFilter scvf =newSingleColumnValueFilter(Bytes.toBytes("CF"), Bytes.toBytes("Date"), CompareOp.GREATER_OR_EQUAL,Bytes.toBytes(String.valueOf(sDate)));filter.addFilter(scvf);}if(timeTo !=null) {String sDate = String.valueOf(timeTo.getTime());SingleColumnValueFilter scvf =newSingleColumnValueFilter(Bytes.toBytes("CF"), Bytes.toBytes("Date"), CompareOp.LESS_OR_EQUAL,Bytes.toBytes(String.valueOf(sDate)));filter.addFilter(scvf);}
- FilterMissing
指的是对于找不到该列的行的时候,做的特殊处理。true,不返回该行,false 返回该行
- PrefixFilter
前缀过滤器将会过滤掉不匹配的记录,过滤的对象是主键的值。
- PageFilter
分页过滤器,通过pageSize设置每次返回的行数,这需要客户端在遍历的时候记住页开始的地方,配合scan的startkey一起使用
- FilterList
过滤器集合,Hbase的过滤器设计遵照于设计模式中的组合模式,以上的所有过滤器都可以叠加起来共同作用于一次查询
- KeyOnlyFilter
设置过滤的结果集中只包含键而忽略值,
- FirstKeyOnlyFilter
在键过滤器的基础上,根据列有序,只包含第一个满足的键,返回每个行的第一列的KV,可以用于有效的执行行计数操作。
- ColumnPrefixFilter
这里过滤的对象是列的值。
- TimestampsFilter
这里参数是一个集合,只有包含在集合中的版本才会包含在结果集中
作者:WJustHM
链接:https://www.jianshu.com/p/0485cb607c2f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
HBase Filter的更多相关文章
- HBase filter shell操作
创建表 create 'test1', 'lf', 'sf' lf: column family of LONG values (binary value) -- sf: column family ...
- 一个自定义 HBase Filter -“通过RowKeys来高性能获取数据”
摘要: 大家在使用HBase和Solr搭建系统中经常遇到的一个问题就是:“我通过SOLR得到了RowKeys后,该怎样去HBase上取数据”.使用现有的Filter性能差劲,网上也没有现成的自定义Fi ...
- 生成HFile文件后倒入数据出现Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.filter.Filter
数据导入的时候出现: at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclar ...
- HBase - Filter - 过滤器的介绍以及使用
1 过滤器HBase 的基本 API,包括增.删.改.查等.增.删都是相对简单的操作,与传统的 RDBMS 相比,这里的查询操作略显苍白,只能根据特性的行键进行查询(Get)或者根据行键的范围来查询( ...
- HBase - Filter - 过滤器的介绍以及使用 | 那伊抹微笑
博文作者:那伊抹微笑 csdn 博客地址:http://blog.csdn.net/u012185296 itdog8 地址链接 : http://www.itdog8.com/thread-214- ...
- HBase Filter 过滤器之 Comparator 原理及源码学习
前言:上篇文章HBase Filter 过滤器概述对HBase过滤器的组成及其家谱进行简单介绍,本篇文章主要对HBase过滤器之比较器作一个补充介绍,也算是HBase Filter学习的必备低阶魂技吧 ...
- HBase Filter 过滤器之RowFilter详解
前言:本文详细介绍了HBase RowFilter过滤器Java&Shell API的使用,并贴出了相关示例代码以供参考.RowFilter 基于行键进行过滤,在工作中涉及到需要通过HBase ...
- HBase Filter 过滤器之FamilyFilter详解
前言:本文详细介绍了 HBase FamilyFilter 过滤器 Java&Shell API 的使用,并贴出了相关示例代码以供参考.FamilyFilter 基于列族进行过滤,在工作中涉及 ...
- 就没有我遇不到的报错!java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter/Filter
本来准备用HBase的Bulkload将HDFS的HFile文件导入到HBase的myuser2表中,用的是yarn jar的命令 yarn jar /export/servers/hbase-1.2 ...
- HBase Filter 过滤器之QualifierFilter详解
前言:本文详细介绍了 HBase QualifierFilter 过滤器 Java&Shell API 的使用,并贴出了相关示例代码以供参考.QualifierFilter 基于列名进行过滤, ...
随机推荐
- js上传文件(可自定义进度条)
//本地上传图片.语音 function rsc_UploadFile(file) { ]; //创建一个FormData空对象,然后使用append方法添加key/value var fd = ne ...
- OpenStack之queens版本创建负载均衡器时报错问题!
采用kolla-ansible部署完毕后,创建负载均衡器时会提示如下的报错 解决办法: 修改网络节点的neutron-lbaas-agent容器 进入lbaas容器里 [root@openstack0 ...
- Docker(2):快速入门及常用命令
什么是Docker? Docker 是世界领先的软件容器平台.开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题.运维人员利用 Docker 可以在隔离容器中并行运行和管理 ...
- L310
Facelift( 紧肤术) followed by a week on a beach in Thailand? Hip surgery with a side of shopping inSing ...
- MySQL:用户管理
用户管理部分 一.数据库不安全因素 非授权用户对数据库的恶意存取和破坏: 数据库中重要或敏感的数据被泄露: 安全环境的脆弱性: 二.数据库安全的常用方法 用户标识和鉴别[使用口令鉴别]::该方法由系统 ...
- 关于lunece的搜索的分页和多字段搜索关键词
关于全文检索lunece的分页,我们需要用到的是以下方法 IndexSearch类下的searchAfter方法. IndexSearch isearch=new IndexSearch(a); is ...
- python scrapy解码方法和时间格式转换
import scrapy from datetime import datetime class BianSpider(scrapy.Spider): name = 'bian' # allowed ...
- ES6 let和const 的相同点与区别
相同点: 1. 一旦声明 值不能再改变,即不能重复声明. 2.不存在变量提升. 3.都存在暂时性死区. 不同点: 1.const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化 ...
- React Native Headless JS(后台任务)(转载)
React Native Headless JS(后台任务) Headless JS是一种使用js在后台执行任务的方法.它可以用来在后台同步数据.处理推送通知或是播放音乐等等. JS端的API 首先我 ...
- 20165228 2017-2018-2 《Java程序设计》第2周学习总结
20165228 2017-2018-2 <Java程序设计>第2周学习总结 教材学习内容总结 标识符:名字 组成:字母/下划线/美元符号或数字 注意:标识符的第一个字符不能是数字字符,且 ...