Hbase关于过滤器对表的操作

使用过滤器对表操作

  • Hbase关于过滤器对表的操作
  • scan方法实例
  • 过滤器有:行键过滤器、列族与列过滤器、值过滤器、时间过滤器、行键过滤器
  • 行键过滤器
  • 列族与列过滤器
  • 值过滤器
  • 时间过滤器
  • 分页过滤器

scan方法实例


hbase的查询实现提供两种方式(get和scan):
1.按指定RowKey 获取唯一一条记录, 用get方法
2.按指定的条件获取一批记录, scan 方法

scan扫描
全表扫描scan “表名” (慎用,效率低)
限定只显示多少条scan “表名”,{LIMIT=>XXX}
指定查询某几个列scan “表名”,{LIMIT=>XXX,COLUMNS=>[]}
根据ROWKEY查询scan “表名”,{STARTROW=>'1001',STOPROW=>'1003'}
根据ROWKEY来查询scan “表名”,{LIMIT=>XXX,COLUMNS=>[], ROWPREFIXFILTER=>’ROWKEY’}
scan案例:

1、扫描出bookinfo的所有数据

scan 'booksystem:bookinfo'

2、获取前2行数据

scan 'booksystem:bookinfo' ,{LIMIT=>2}

3、获取前2行的name和price列

scan 'booksystem:bookinfo',{LIMIT=>2,COLUMNS=>['info1:name','info1:price']}

4、从102行数据开始显示数据

scan 'booksystem:bookinfo',{STARTROW=>'102',COLUMNS=>['info1:name','info1:price']}

5、显示102-103的数据

scan 'booksystem:bookinfo',{STARTROW=>'102',COLUMNS=>['info1:name','info1:price'],STOPROW=>'104'}

6、从102开始要1行数据

scan 'booksystem:bookinfo',{STARTROW=>'102',COLUMNS=>['info1:name','info1:price'],LIMIT=>1}

7、根据行键直接查询数据

scan 'booksystem:bookinfo',{ROWPREFIXFILTER=>'101',COLUMNS=>['info1:name','info1:price']}

在 HBase 中,get 和 scan 操作都可以使用过滤器来设置输出的范围,类似 SQL 里的 Where 查询条件。

过滤器有:行键过滤器、列族与列过滤器、值过滤器、时间过滤器、行键过滤器

使用过滤器的语法格式如下所示:

scan ‘表名’, { FILTER => “过滤器(比较运算符, ‘比较器’)” }
行键过滤器

行键过滤器

RowFilter 可以配合比较器和运算符,实现行键字符串的比较和过滤。
例如,匹配行键中大于 102 的数据,可使用 binary 比较器;匹配以 10 开头的行键,可使用 substring 比较器,
(大概就是明确就使用binary
模糊就使用substring)
注意 substring 不支持大于或小于运算符。

案例:
1、过滤出行键为101的数据

scan 'booksystem:bookinfo',FILTER=>"RowFilter(=,'binary:101')"

2、过滤出行键>=102的数据

scan 'booksystem:bookinfo',FILTER=>"RowFilter(>=,'binary:102')"

3、过滤出行键是10开头的数据

scan 'booksystem:bookinfo',FILTER=>"RowFilter(=,'substring:10')“

4、过滤出行键中包含3的数据

scan 'booksystem:bookinfo',FILTER=>"RowFilter(=,'substring:3')"

列族与列过滤器

针对列族进行过滤的过滤器为 FamilyFilter,其语法结构与 RowFilter 类似,不同之处在于 FamilyFilter 是对列族名称进行过滤的。例如,以下命令扫描Student表显示列族为 Grades 的行。

scan 'Student', FILTER=>" FamilyFilter(= , 'substring:Grades')"

1、过滤出列族为info2的列数据

scan 'booksystem:bookinfo',FILTER=>"FamilyFilter(=,'binary:info2')“

2、过滤出列族名包含info的数据

scan 'booksystem:bookinfo',FILTER=>"FamilyFilter(=,'substring:info')


案例
1、过滤出type列 QualifierFilter

scan 'booksystem:bookinfo',FILTER=>"QualifierFilter(=,'substring:type')”

2、过滤出包含e的列

scan 'booksystem:bookinfo',FILTER=>"QualifierFilter(=,'substring:e')“

3、过滤出列名以n 开头的列 ColumnPrefixFilter

scan 'booksystem:bookinfo',FILTER=>"ColumnPrefixFilter('n')“

4、过滤出列名前缀为n和p的列 MultipleColumnPrefixFilter

scan 'booksystem:bookinfo',FILTER=>"MultipleColumnPrefixFilter('n','p')"

5、过滤出name-type之间的列 ColumnRangeFilter

scan 'booksystem:bookinfo',FILTER=>"ColumnRangeFilter('name',true,'type',false)"`

值过滤器

在 HBase 的过滤器中也有针对单元格进行扫描的过滤器,即值过滤器

1、查询值里面包含a的数据

scan 'booksystem:bookinfo',FILTER=>"ValueFilter(=,'substring:a')“

2、查询在info1的列族中name的值为python的数据 SingleColumnValueFilter

scan 'booksystem:bookinfo',FILTER=>"SingleColumnValueFilter('info1','name',=,'binary:python')“

3、查询以n开头的列,并且值为python的数据

scan 'booksystem:bookinfo',FILTER=>"ColumnPrefixFilter('n') AND ValueFilter(=,'substring:python')"

时间过滤器

过滤出时间在1632304196714,1637730331143的数据

scan "booksystem:bookinfo",FILTER=>"TimestampsFilter(1632304196714,1637730331143)“

分页过滤器

scan "booksystem:bookinfo",{STARTROW=>'101',FILTER=>"PageFilter(2)"}

Hbase关于过滤器对表的操作相关推荐

  1. Hbase的过滤器查询

    hbase过滤器的比较运算符: LESS < LESS_OR_EQUAL <= EQUAL = NOT_EQUAL <> GREATER_OR_EQUAL >= GREA ...

  2. HBase安装phoenix实战shell操作

    Hbase安装参考https://rumenz.com/rumenbiji/hadoop-hbase-install.html 由于我们安装的是 hbase-2.3.1-bin.tar.gz ,所以需 ...

  3. oracle-DDL对表的操作

    在对表操作之前,一定要先了解基本数据类型: 常用的数据类型: Varchar2():表示字符串,一般保存长度比较小的内容(200以内建议使用,oracle独有,其他数据库为varchar) numbe ...

  4. spark读Hbase数据集成Hbase Filter(过滤器)

    文章目录 过滤器简介 spark 读Hbase集成Filter TableInputFormat 源码 代码示例 基于hbase版本2.3.5 过滤器简介 Hbase 提供了种类丰富的过滤器(filt ...

  5. HBase常用Shell与JavaAPI操作

    HBase常用Shell与JavaAPI操作 1.常用shell 2.JavaAPI操作 2.1.HBaseAdmin类 2.2.HBaseConfiguration类 2.3.HTableDescr ...

  6. 在Hbase使用过滤器(行键过滤器、列族与列过滤器、值过滤器)

    本文介绍Hbase中的过滤器: 1.行键过滤器 2.列族与列过滤器 3.值过滤器 4.其他过滤器 格式如下: scan'表名',{FILTER=>过滤器(比较运算符,'比较器')"} ...

  7. HBase安装配置以及Java操作hbase

    2019独角兽企业重金招聘Python工程师标准>>> Apache HBase Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储. 当您需要对大数据 ...

  8. HBase - Filter - 过滤器的介绍以及使用

    博文作者:那伊抹微笑 csdn 博客地址:http://blog.csdn.net/u012185296 1 过滤器 HBase 的基本 API,包括增.删.改.查等. 增.删都是相对简单的操作,与传 ...

  9. HBase Filter 过滤器概述

    HBase过滤器是一套为完成一些较高级的需求所提供的API接口. 过滤器也被称为下推判断器(push-down predicates),支持把数据过滤标准从客户端下推到服务器,带有 Filter 条件 ...

最新文章

  1. 通过带数据盘的自定义镜像来创建使用应用程序网关的虚拟机规模集
  2. 我的LINUX学习之路之二十一之web服务器简单搭建
  3. [转载]JavaScript 的轻框架开发
  4. python中dtype什么意思_浅谈python 中的 type(), dtype(), astype()的区别
  5. error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
  6. 简单介绍Javascript匿名函数和面向对象编程
  7. 应用交付工程师Troubleshooting经验分享2
  8. 【渝粤教育】国家开放大学2018年春季 0179-21T数据库基础与应用 参考试题
  9. Ajax+PHP快速上手及简单应用
  10. 获取当前 jar 包的运行路径
  11. 湖工微型计算机及原理题目,2017年湖北工业大学电气与电子工程学院942微机原理与应用考研导师圈点必考题汇编...
  12. 赛思永盛120G固体硬盘拆解,YS9082HC主控方案,布局很像公版2258XT和2259XT
  13. 08CMS之后台二次开发
  14. indesign安装包.exe 自动简繁互转for_adobe Indesign (ID)插件集打包下载
  15. 数据表与简单java类映射(角色权限)
  16. ValueError: Only images with 2 spatial dimensions are supported. If using with color/multichannel im
  17. 卷积操作中的group
  18. Openharmony应用NAPI详解--基础篇
  19. 苹果取消iPhone 13显示屏的维修限制,Face ID不再受影响
  20. 左耳听风——笔记三:面试技巧

热门文章

  1. cmd 新建html文件,cmd 打开文件 怎么用cmd打开文件?(看下图)
  2. 使用cmd命令创建指定大小文件
  3. java友元类_友元实例:友元类及友元函数
  4. js keyup、keypress和keydown事件 详解
  5. Mac版 Android Studio 手动导入插件plugins方法
  6. FFmpeg 使用 Nvidia GPU 进行转码加速
  7. 动态追踪技术(中) - Dtrace、SystemTap、火焰图
  8. 天玑810和骁龙870哪个好
  9. 一个三十岁中国男人的婚姻思考 转帖
  10. BeetlSQL框架学习(一)——初识BeetlSQL,特点,内置sql的使用,Pojo代码生成等...