>*+(n-1) 根据列名模糊查询,col1 to col2显示col1到col2之间的列 例1:00000051|* +9 [i:ts,i:path] 例2:00000051|* +9 [i:p*+...('c2') 列名的前缀是c2 列值过滤 SingleColumnValueFilter('i', 'path', =, 'substring:student') 列族为i,列名为path,列值包含student...substring:111') 列值中包含111 ValueFilter(=,'binary:111') 列值等于111 以上过滤器是大部分常用的过滤器,在hue-hbase中另有一些过滤器未在此文档中描述...以下是我自己整理的一部分参考语法: hbase中有单纯根据列值查询的ValueFilter和根据列名和列值查询的SingleColumnValueFilter,可根据需要选择。...下表中是按照根据列名和列值来进行查询的参考 SQL hue_hbase select col1,col2 [col1,col2] where col1="student" SingleColumnValueFilter
简介: 根据技术调研的过程可以明显的体会到hbase的存储方式和数据库的存储有着明显的区别,查询的方式也有着很大不同,HBase主要是通过这种filter来对数据进行筛选。...同时对于数据的体量较大(10亿级别以上的数据数据量),检索和修改的场景较多时是比较适合使用hbase。 ...表中,所有列值为“张三”的数据 注意1:ValueFilter 过滤器可以利用 get 和 scan 方法对单元格进行过滤,但是使用 get 方法时,需要指定行键 SingleColumnValueFilter...:在指定的列族和列中进行比较的值过滤器 scan 'test', {FILTER => "SingleColumnValueFilter('liecuA', 'name', =, 'substring...总结 一次查询可以使用多个Filter进行多维度筛选 ,各Filter之间使用关系运算符:AND 或 OR 进行连接,请使用大些字母避免使用shell 方式查找无效!!!
2.2.比较的关键字是一个比较器ByteArrayComparable SingleColumnValueFilter(byte[] family, byte[] qualifier, CompareFilter.CompareOp...3.列名过滤器 由于HBase采用键值对保存内部数据,列名过滤器过滤一行的列名(ColumnFamily:Qualifiers)是否存在 , 对应前节所述列值的情况。...familyComparator) 注意: 1.如果希望查找的是一个已知的列族,则使用 scan.addFamily(family); 比使用过滤器效率更高. 2.由于目前HBase对多列族支持不完善...3.5.基于列范围(不是行范围)过滤数据ColumnRangeFilter 可用于获得一个范围的列,例如,如果你的一行中有百万个列,但是你只希望查看列名从bbbb到dddd的范围 该方法从 HBase...4.RowKey 当需要根据行键特征查找一个范围的行数据时,使用Scan的startRow和stopRow会更高效,但是,startRow和stopRow只能匹配行键的开始字符,而不能匹配中间包含的字符
2.2 过滤器分类 HBase 内置过滤器可以分为三类:分别是比较过滤器,专用过滤器和包装过滤器。分别在下面的三个小节中做详细的介绍。...创建一个比较过滤器需要两个参数,分别是比较运算符和比较器实例。...:基于列限定符(列名)来过滤数据; ValueFilterr :基于单元格 (cell) 的值来过滤数据; DependentColumnFilter :指定一个参考列来过滤其他列的过滤器,过滤的原则是基于参考列的时间戳来进行筛选...4.1 单列列值过滤器 (SingleColumnValueFilter) 基于某列(参考列)的值决定某行数据是否被过滤。...(true); scan.setFilter(singleColumnValueFilter); 4.2 单列列值排除器 (SingleColumnValueExcludeFilter) SingleColumnValueExcludeFilter
本篇博客,小菌为大家带来HBase的进阶使用,关于基础入门操作大家可以去阅览小菌之前的博客《HBase的JavaAPI使用–基础篇》。...NullComparator 判断给定的是否为空 BitComparator 按位比较 RegexStringComparator 提供一个正则的比较器,仅支持 EQUAL 和非EQUAL SubstringComparator...QualifierFilter 只查询name列的值</font /** * hbase 列过滤器 * [只查询name列] * @throws Exception...SingleColumnValueExcludeFilter 与SingleColumnValueFilter相反,会排除掉指定的列,其他的列全部返回。...,接下来要为大家展示如何调用API删除表数据和表!
根据左列的筛选条件进行分区, 并建立该分区的索引, 重新存储为M(crackermap)。由于基列一样, 使用位图向量之间的位与来连接列[6]。...本文结合简单规则和动态Huffman算法, 建立基于代价的连接策略选择模型, 针对不同情况处理列之间的连接。...对于n 个节点的查询树来说, 列之间连接方法有种。...② 根据 B 的rowid: 连接代价为查找索引块与数据块之和, 其中数据块可估计为:驱动列筛选的结果最稀疏和最 密集情况的折中。...关于列存储数据库(Column-oriented DBMS) 近年来,从商业产品(Sybase IQ)到开源的BigTable类项目(HyperTable, Hbase, Cassandra等),列存储数据库在
3.HTable 可以用来和HBase表直接通信。此方法对于更新操作来说是非线程安全的。...返回值 函数 描述 Get addColumn(byte[] family, byte[] qualifier) 获取指定列族和列修饰符对应的列 Get addFamily(byte[] family)...Scan scan = new Scan(); Filter filter = ... scan.setFilter(filter) 1>Hbase内置器 HBase为筛选数据提供了一组过滤器,通过这个过滤器可以在...HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行键,列明,时间戳定位)。...表中筛选所有行键符合正则的数据 !!
复合列前缀过滤器 FamilyFilter 列簇过滤器 ColumnPaginationFilter SingleColumnValueFilter 单列值过滤器 RowFilter 行健过滤器 QualifierFilter...判断给定value的是否为空 RegexStringComparator 提供一个正则的比较器,仅支持 EQUAL 和 NOT_EQUAL 运算符 SubstringComparator 判断提供的子串是否出现在...; import org.apache.hadoop.hbase.filter.SingleColumnValueFilter; import org.apache.hadoop.hbase.filter.SubstringComparator...:单列值过滤器,会返回满足条件的整行 * 扫描全表,查询列族为"base_info",列名为"name",且列值包括"zhangsan"子串的所有行 */ @Test..."na"和列名的前缀为"ag"的全部记录 */ @Test public void testMultipleColumnPrefixFilter() throws Exception
常用shell操作 我们可以以shell的方式来维护和管理HBase。例如:执行建表语句、执行增删改查操作等等。 4.1 需求 有以下订单数据,我们想要将这样的一些数据保存到HBase中。...因为在HBase中,主键、列、版本都是有序存储的,所以借助Filter,可以高效地完成查询。当执行Filter时,HBase会将Filter分发给各个HBase服务器节点来进行查询。...值过滤器 ValueFilter 值过滤器,找到符合值条件的键值对 SingleColumnValueFilter 在指定的列蔟和列中进行比较的值过滤器 SingleColumnValueExcludeFilter...打开HBase的JAVA API文档。找到RowFilter的构造器说明,我们来看以下,HBase的过滤器该如何使用。...分析 1.因为此处要指定列来进行查询,所以,我们不再使用rowkey过滤器,而是要使用列过滤器 2.我们要针对指定列和指定值进行过滤,比较适合使用SingleColumnValueFilter过滤器,
哦对, 如果你现在还没有数据, 先跳到文章底部, 那里有建表和数据插入的操作. hbase没有索引, 访问hbase中的数据只有三种方式: 通过指定row key访问 通过row key范围访问 全表扫描...): 参数参考 ColumnValueFilter 列值过滤 SingleColumnValueFilter: 对列值进行比较过滤....不同点在于, 此方法返回时会去掉比较的列. ColumnValueFilter: 与 SingleColumnValueFilter类似. 唯一不同的是, 此过滤器只返回匹配的列....比如: import org.apache.hadoop.hbase.filter.SingleColumnValueFilter 再比如: filter = SingleColumnValueFilter.new...其他命令 count '': 查看记录总数 status: 查看服务器状态 version: 查看版本 list: 查看所有表 help '的帮助信息
HBase原生自带了对RowKey的很多种查询策略。...通过这个过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行键,列明,时间戳定位)。...其API中提供的Filter大致如下: CompareFilter 是高层的抽象类,下面我们将看到他的实现类和实现类代表的各种过滤条件 RowFilter,FamliyFilter,QualifierFilter...,ValueFilter 行,列组,列,值等的过滤 SingleColumnValueFilter 单值过滤器是以特定“列”的“值”为过滤内容,值得是单列的值。...而行值过滤器比较的是所有列的值。与其进行比较。 FilterMissing 指的是对于找不到该列的行的时候,做的特殊处理。
1:HBase官网网址:http://hbase.apache.org/ 2:HBase表结构:建表时,不需要指定表中的字段,只需要指定若干个列族,插入数据时,列族中可以存储任意多个列(即KEY-VALUE...版本通过时间戳来索引; 5.4:HBase中有两张特殊的Table,-ROOT-和.META. ...(位置相关性) 2.Columns Family 列簇 :HBASE表中的每个列,都归属于某个列族。列族是表的schema的一部 分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。... 过滤器的种类: 列植过滤器—SingleColumnValueFilter 过滤列植的相等、不等、范围等 列名前缀过滤器...12.13.3.列植过滤器—SingleColumnValueFilter SingleColumnValueFilter 列值判断 相等 (CompareOp.EQUAL
Hbase过滤器的专用过滤器(指定比较机制): ?...FamilyFilter 查询比f2列族小的所有的列族内的数据 /** * hbase列族过滤器FamilyFilter */ @Test public void familyFilter() throws...QualifierFilter 只查询name列的值 /** * hbase列过滤器 */ @Test public void qualifierFilter() throws IOException...ValueFilter 查询所有列当中包含8的数据 /** * hbase值过滤器 * 查询包含8的列值 */ @Test public void valueFilter() throws IOException...SingleColumnValueExcludeFilter 与SingleColumnValueFilter相反,会排除掉指定的列,其他的列全部返回 3、rowkey前缀过滤器PrefixFilter
1 为什么要按列存储 列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。...Ø 任何列都能作为索引 缺点 Ø 选择(Selection)时即使只涉及某几列,所有数据也都会被读取 Ø 选择完成时,被选择的列要重新组装 Ø INSERT/UPDATE比较麻烦 注:...关系型数据库理论回顾 – 选择(Selection)和投影(Projection) 2补充:数据压缩 刚才其实跳过了资料里提到的另一种技术:通过字典表压缩数据。...正因为每个字符串在字典表里只出现一次了,所以达到了压缩的目的(有点像规范化和非规范化Normalize和Denomalize) 3查询执行性能 下面就是最牛的图了,通过一条查询的执行过程说明列式存储...用数字去列表里匹配,匹配上的位置设为1。 3. 把不同列的匹配结果进行位运算得到符合所有条件的记录下标。 4. 使用这个下标组装出最终的结果集。
HBase的相关操作-JavaAPI方式 一、需求说明 某某自来水公司,需要存储大量的缴费明细数据。...以下截取了缴费明细的一部分内容 因为缴费明细的数据记录非常庞大,该公司的信息部门决定使用HBase来存储这些数据。并且,他们希望能够通过Java程序来访问这些数据。...source> 3、创建包结构和类...的表,包含一个列蔟C1 //1 如何创建hbase中表 : WATER_BILL @Test public void test01() throws Exception{...SingleColumnValueFilter start_filter = new SingleColumnValueFilter("C1".getBytes(), "LATEST_DATE".getBytes
, 将表放置在不同的名称空间下, 进行分别管理操作 注意: hbase默认提供了两个名称空间: default 和 hbase default: 默认名称空间, 当我们创建表的时候, 没有指定名称空间...注意 如果对应空间下, 还有表, 是无法删除, 必须先删除表 2、 hbase表的列族的设计 能少则少, 能用一个解决的, 坚决不使用两个 官方建议: 一般列族的配置 不大于 5个 支持非常多...而一个region只能被一个regionServer所管理, 一个regionServer读写性能有限,而且hbase集群一般由一些廉价的服务器组建集群 如果此时需要对这个表进行大量的读写操作, 最终这些读写请求...: 目的: 在建表直接产生多个region hbase是通过对rowkey的范围, 对region进行划分, 每个region都会有起始的rowkey 和 结束rowkey表示这个region所存储数据范围..., 此时会出现数据热点问题(所有数据都跑到一个region中) 2) 避免rowkey和列的长度过大(长) 因为: 希望数据能够在内存中保留的越多, 读取的效率越高, 如果rowkey或者列设置比较长
有这样一个场景,在HBase中需要分页查询,同时根据某一列的值进行过滤。 不同于RDBMS天然支持分页查询,HBase要进行分页必须由自己实现。...根据列值过滤,自然是用SingleColumnValueFilter(下文简称SCVFilter)。...很是苦恼,最后竟然发现使用SCVFilter查询的结果还和数据的列的顺序有关。 在服务端,HBase会对客户端传递过来的filter封装成FilterWrapper。...而当kvs为empty时,PageFilter的计数器就不会增加了。再看我们的测试数据,因为行的第一列就是SCVFilter的目标列isDeleted。...效率也比较感人,不考虑网络传输和客户端内存的消耗,基本上和你在客户端过滤差不多。
,但是可以分为两大类——比较过滤器,专用过滤器 过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端; hbase过滤器的比较运算符: [表格] Hbase过滤器的比较器(指定比较机制...FamilyFilter 查询比f2列族小的所有的列族内的数据 /** * hbase列族过滤器FamilyFilter */ @Test public void...QualifierFilter 只查询name列的值 /** * hbase列过滤器 */ @Test public void qualifierFilter...ValueFilte 查询所有列当中包含8的数据 /** * hbase值过滤器 * 查询包含8的列值 */ @Test public void...SingleColumnValueExcludeFilte 与SingleColumnValueFilter相反,会排除掉指定的列,其他的列全部返回 3、rowkey前缀过滤器PrefixFilte 查询以
Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下。 ? 二.说明 Hbase shell中删除键是空格+Ctrl键。...table.put(put);//放置到hbase的对象中去。...scan.setStartRow(startRowkey.getBytes()); scan.setStopRow(stopRowkey.getBytes());//scan操作设置起始和结束的...列值过滤器 ColumnPrefixFilter用于指定列名前缀值相等 MultipleColumnPrefixFilter和ColumnPrefixFilter行为差不多...2、RowFilter 行过滤器 RegexStringComparator是支持正则表达式的比较器。
尖叫提示:如果是在 Linux 中测试运行,注意文件夹之间的分隔符。...思路: a) 编写协处理器类,用于协助处理 HBase 的相关操作(增删改查)。 ...b) 在协处理器中,一条主叫日志成功插入后,将该日志切换为被叫视角再次插入一次,放入到与主叫日志不同的列族中。 c) 重新创建 hbase 表,并为该表注册协处理器。 ...d) 编译项目,发布协处理器的 jar 包到 hbase 的 lib 目录下,并群发该 jar 包。 ...(如何挂载:即把协处理器的全类名添加到配置) 4、表在挂载协处理器的时候,会去HBase的根目录下的lib目录下的jar包里,找到相应的协处理器类的路径 package com.china.hbase
领取专属 10元无门槛券
手把手带您无忧上云