HBase—过滤器

HBase 系列(七)——HBase过滤器详解 一、HBase过滤器简介 Hbase提供了种类丰富的过滤器(filter)来提高数据处理的效率,用户可以通过内置或自定义的过滤器来对数据进行过滤,所有的过滤器都在服务端生效,即谓词下推(predicate push down)。这样可以保证过滤掉的数据不会被传送到客户端,从而减轻网络传输和客户端处理的压力。 二、过滤器基础 2.1 Filter接口和FilterBase抽象类 Filter... 阅读详情

使用过滤器可以提高操作表的效率,HBase中两种数据读取函数get()和scan()都支持过滤器,支持直接访问和通过指定起始行键来访问,但是缺少细粒度的筛选功能,如基于正则表达式对行键或值进行筛选的功能。

可以使用预定义好的过滤器或者是实现自定义过滤器。

过滤器在客户端创建,通过RPC传送到服务器端,在服务器端执行过滤操作,把数据返回给客户端。



Comparison Filter一般有两个参数:比较运算符和比较器

比较运算符(CompareOp):

EQUAL        相等
GREATER        大于
GREATER_OR_EQUAL        大于等于
LESS        小于
LESS_OR_EQUAL        小于等于
NOT_EQUAL        不等于

比较器(Comparator):

BinaryComparator        匹配完整字节数组
BinaryPrefixComparator    匹配字节数组前缀
BitComparator        Does not compare against an actual value but whether a given one is null, or not null.
NullComparator        Does not compare against an actual value but whether a given one is null, or not null.
RegexStringComparator        正则表达式匹配
SubstringComparator        子串匹配


1. Comparison Filter


下面先来查询下“blog”表的所有记录:
hbase(main):015:0> scan 'blog'
ROW                    COLUMN+CELL                                                   
 row1                  column=article:title, timestamp=1457150148590, value=hadoop   
 row1                  column=author:name, timestamp=1457150148645, value=tom        
 row1                  column=author:nickname, timestamp=1457150148692, value=tt     
 row2                  column=article:title, timestamp=1457161619563, value=hive     
 row2                  column=author:name, timestamp=1457161619593, value=kitty      
 row2                  column=author:nickname, timestamp=1457161619647, value=kk     
 row3                  column=article:title, timestamp=1457161619680, value=hbase    
 row3                  column=author:name, timestamp=1457161619695, value=jerry      
 row3                  column=author:nickname, timestamp=1457161619702, value=jj     
 row4                  column=article:title, timestamp=1457161619709, value=sqoop    
 row4                  column=author:name, timestamp=1457161619717, value=ken        
 row4                  column=author:nickname, timestamp=1457161619726, value=kk     
4 row(s) in 0.1730 seconds

1.1 RowFilter

    基于rowkey来过滤数据

构造函数:

public RowFilter(final CompareOp rowCompareOp, final ByteArrayComparable rowComparator)

实测代码:

		Scan scan = new Scan();
		// 指定扫描author列族的anme列
		scan.addColumn(Bytes.toBytes("author"), Bytes.toBytes("name"));
		
		//选出所匹配(行键值小于等于“row3”)的行
		Filter filter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL,
				new BinaryComparator(Bytes.toBytes("row3")));
		scan.setFilter(filter);

		ResultScanner scanner = table.getScanner(scan);
		for (Result res : scanner) {
			System.out.println(res);
		}
		scanner.close();
		table.close();


结果:

keyvalues={row1/author:name/1457150148645/Put/vlen=3/mvcc=0}
keyvalues={row2/author:name/1457161619593/Put/vlen=5/mvcc=0}
keyvalues={row3/author:name/1457161619695/Put/vlen=5/mvcc=0}

1.2 FamilyFilter

    基于列族的过滤

构造函数:
public FamilyFilter(final CompareOp familyCompareOp, final ByteArrayComparable familyComparator)

		Scan scan = new Scan();

		// 选出所匹配(列族名称小于“author3”)的列族
		Filter filter = new FamilyFilter(CompareOp.LESS, new BinaryComparator(
				Bytes.toBytes("author")));

		scan.setFilter(filter);

		ResultScanner scanner = table.getScanner(scan);
		for (Result res : scanner) {
			System.out.println(res);
		}
		scanner.close();
		table.close();


结果:

keyvalues={row1/article:title/1457150148590/Put/vlen=6/mvcc=0}
keyvalues={row2/article:title/1457161619563/Put/vlen=4/mvcc=0}
keyvalues={row3/article:title/1457161619680/Put/vlen=5/mvcc=0}
keyvalues={row4/article:title/1457161619709/Put/vlen=5/mvcc=0}

1.3 QualifierFilter

    基于列的过滤

构造函数:

public QualifierFilter(final CompareOp op,final ByteArrayComparable qualifierComparator)

		Scan scan = new Scan();

		// 选出所匹配(列名称大于“name”)的列
		Filter filter = new QualifierFilter(CompareOp.GREATER, new BinaryComparator(
				Bytes.toBytes("name")));
		scan.setFilter(filter);

		ResultScanner scanner = table.getScanner(scan);
		for (Result res : scanner) {
			System.out.println(res);
		}
		scanner.close();
		table.close();

结果:

keyvalues={row1/article:title/1457150148590/Put/vlen=6/mvcc=0, row1/author:nickname/1457150148692/Put/vlen=2/mvcc=0}
keyvalues={row2/article:title/1457161619563/Put/vlen=4/mvcc=0, row2/author:nickname/1457161619647/Put/vlen=2/mvcc=0}
keyvalues={row3/article:title/1457161619680/Put/vlen=5/mvcc=0, row3/author:nickname/1457161619702/Put/vlen=2/mvcc=0}
keyvalues={row4/article:title/1457161619709/Put/vlen=5/mvcc=0, row4/author:nickname/1457161619726/Put/vlen=2/mvcc=0}

1.4 ValueFilter

    基于值的过滤

构造函数:

public ValueFilter(final CompareOp valueCompareOp,final ByteArrayComparable valueComparator)

		Scan scan = new Scan();

		// 选出所匹配(值为“kk”)的记录
		Filter filter = new ValueFilter(CompareOp.EQUAL, new BinaryComparator(
				Bytes.toBytes("kk")));
		scan.setFilter(filter);

		ResultScanner scanner = table.getScanner(scan);
		for (Result res : scanner) {
			System.out.println(res);
		}
		scanner.close();
		table.close();

结果:

keyvalues={row2/author:nickname/1457161619647/Put/vlen=2/mvcc=0}
keyvalues={row4/author:nickname/1457161619726/Put/vlen=2/mvcc=0}

1.5 DependentColumnFilter

    该过滤器有两个参数 —— 列族和列修饰。 尝试找到该列所在的每一行,并返回该行具有相同时间戳的全部键值对。如果某一行不包含指定的列,则该行的任何键值对都不返回。

    该过滤器还可以有一个可选布尔参数 —— dropDependentColumn. 如果为true, 从属的列不返回。

    该过滤器还可以有两个可选参数 —— 一个比较操作符和一个值比较器,用于列族和修饰的进一步检查。如果从属的列找到,其值还必须通过值检查,然后就是时间戳必须考虑。


2. Dedicated Filters

2.1 SingleColumnValueFiler

SingleColumnValueFilter

    如果一个列满足条件就返回一行。

2.2 SingleColumnValueExcludeFilter

    结果中不包含referencecolumn

2.3 PrefixFilter

    所有匹配前缀的行都会返回

		Scan scan = new Scan();
		//指定扫描author列族的name列
		scan.addColumn(Bytes.toBytes("author"), Bytes.toBytes("name"));
		// 选出所匹配(前缀为“row1”的行)的行
		Filter filter = new PrefixFilter(Bytes.toBytes("row1"));
		scan.setFilter(filter);

		ResultScanner scanner = table.getScanner(scan);
		for (Result res : scanner) {
			System.out.println(res);
		}
		scanner.close();
		table.close();

结果:

keyvalues={row1/author:name/1457150148645/Put/vlen=3/mvcc=0}

2.4 PageFilter

    页过滤,通过设置pagesize参数可以返回每一页page的数量。需要注意的是,客户端需要记住上一次访问的row的key值。

构造函数:

public PageFilter(final long pageSize) 


Filter filter = new PageFilter(2);
		final byte[] POSTFIX = new byte[] { 0x00 };
		byte[] lastRow = null;
		int totalRows = 0;
		while (true) {
			Scan scan = new Scan();
			scan.setFilter(filter);
			if (lastRow != null) {
				// 注意这里添加了POSTFIX操作,不然死循环了
				byte[] startRow = Bytes.add(lastRow, POSTFIX);
				System.out.println("start row: "
						+ Bytes.toStringBinary(startRow));
				scan.setStartRow(startRow);
			}
			ResultScanner scanner = table.getScanner(scan);
			
			int localRows = 0;
			Result result;
			while ((result = scanner.next()) != null) {
				System.out.println(localRows++ + ":" + result);
				totalRows++;
				lastRow = result.getRow();
			}
			scanner.close();
			if (localRows == 0)
				break;
		}
		System.out.println("total rows:" + totalRows);

结果:

0:keyvalues={row1/article:title/1457150148590/Put/vlen=6/mvcc=0, row1/author:name/1457150148645/Put/vlen=3/mvcc=0, row1/author:nickname/1457150148692/Put/vlen=2/mvcc=0}
1:keyvalues={row2/article:title/1457161619563/Put/vlen=4/mvcc=0, row2/author:name/1457161619593/Put/vlen=5/mvcc=0, row2/author:nickname/1457161619647/Put/vlen=2/mvcc=0}
start row: row2\x00
0:keyvalues={row3/article:title/1457161619680/Put/vlen=5/mvcc=0, row3/author:name/1457161619695/Put/vlen=5/mvcc=0, row3/author:nickname/1457161619702/Put/vlen=2/mvcc=0}
1:keyvalues={row4/article:title/1457161619709/Put/vlen=5/mvcc=0, row4/author:name/1457161619717/Put/vlen=3/mvcc=0, row4/author:nickname/1457161619726/Put/vlen=2/mvcc=0}
start row: row4\x00
total rows:4

2.5 KeyOnlyFilter

    只返回每行的行键,值全部为空,这对于只关注于行键的应用场景来说非常合适,这样忽略掉其值就可以减少传递到客户端的数据量,能起到一定的优化作用。

构造函数:

public KeyOnlyFilter(boolean lenAsVal)

默认lenAsVal为false,表示不会把value的长度作为输出的value

		Scan scan = new Scan();
		Filter filter = new KeyOnlyFilter(false);
		scan.setFilter(filter);
		ResultScanner scanner = table.getScanner(scan);
		for (Result res : scanner) {
			System.out.println(res);
		}


结果:

keyvalues={row1/article:title/1457150148590/Put/vlen=0/mvcc=0, row1/author:name/1457150148645/Put/vlen=0/mvcc=0, row1/author:nickname/1457150148692/Put/vlen=0/mvcc=0}
keyvalues={row2/article:title/1457161619563/Put/vlen=0/mvcc=0, row2/author:name/1457161619593/Put/vlen=0/mvcc=0, row2/author:nickname/1457161619647/Put/vlen=0/mvcc=0}
keyvalues={row3/article:title/1457161619680/Put/vlen=0/mvcc=0, row3/author:name/1457161619695/Put/vlen=0/mvcc=0, row3/author:nickname/1457161619702/Put/vlen=0/mvcc=0}
keyvalues={row4/article:title/1457161619709/Put/vlen=0/mvcc=0, row4/author:name/1457161619717/Put/vlen=0/mvcc=0, row4/author:nickname/1457161619726/Put/vlen=0/mvcc=0}


发现value都为0

2.6 FirstKeyOnlyFilter

    返回的结果集中只包含第一列的数据,所以进行count,sum操作等集合操作的时候,使用FirstKeyOnlyFilter会带来性能上的提升。

		Scan scan = new Scan();
		Filter filter = new FirstKeyOnlyFilter();
		scan.setFilter(filter);
		ResultScanner scanner = table.getScanner(scan);
		for (Result res : scanner) {
			System.out.println(res);
		}


结果:

keyvalues={row1/article:title/1457150148590/Put/vlen=6/mvcc=0}
keyvalues={row2/article:title/1457161619563/Put/vlen=4/mvcc=0}
keyvalues={row3/article:title/1457161619680/Put/vlen=5/mvcc=0}
keyvalues={row4/article:title/1457161619709/Put/vlen=5/mvcc=0}

2.7 InclusiveStopFilter

    扫描的时候,我们可以设置一个开始行键和一个终止行键,默认情况下,这个行键的返回是前闭后开区间,即包含起始行,单不包含中指行,如果我们想要同时包含起始行和终止行,那么我们可以使用此过滤器。

		Scan scan = new Scan();
		scan.addColumn(Bytes.toBytes("article"), Bytes.toBytes("title"));
		scan.setStartRow(Bytes.toBytes("row1"));
		// scan.setStopRow(Bytes.toBytes("row2"));
		Filter filter = new InclusiveStopFilter(Bytes.toBytes("row2"));
		scan.setFilter(filter);
		ResultScanner scanner = table.getScanner(scan);
		for (Result res : scanner) {
			System.out.println(res);
		}

结果:

keyvalues={row1/article:title/1457150148590/Put/vlen=6/mvcc=0}
keyvalues={row2/article:title/1457161619563/Put/vlen=4/mvcc=0}

2.8 TimestampsFilter

    需要输出指定版本的数据时,可以考虑使用TimestampsFilter。

构造方法:

public TimestampsFilter(List<Long> timestamps)

2.9 ColumnCountGetFilter

    说明每行最大的column数量,如果发现一行匹配最大数量则停止整个scan。它对get十分有用。

构造方法:

public ColumnCountGetFilter(final int n)

2.10 ColumnCountGetFilter

    只显示[limit,offset>的列的数据

构造方法:

public ColumnPaginationFilter(final int limit, final int offset)

Filter filter = new ColumnPaginationFilter(1,2);
		
		Scan scan = new Scan();
		scan.setFilter(filter);
		ResultScanner scanner = table.getScanner(scan);
		for (Result result : scanner) {
			System.out.println(result);
		}

结果:

keyvalues={row1/author:nickname/1457150148692/Put/vlen=2/mvcc=0}
keyvalues={row2/author:nickname/1457161619647/Put/vlen=2/mvcc=0}
keyvalues={row3/author:nickname/1457161619702/Put/vlen=2/mvcc=0}
keyvalues={row4/author:nickname/1457161619726/Put/vlen=2/mvcc=0}

2.11 ColumnPrefixFilter

    跟prefxiFilter相似,只是改成了Column

2.12 RandomRowFilter

    随即的返回row的数据。

构造函数:

public RandomRowFilter(float chance)

chance取值为0到1.0,如果<0则为空,如果>1则包含所有的行。

3. Decorating Filters

3.1 SkipFilter

   

3.2 WhileMatchFilter

    一旦遇到过滤掉一个row或者column,scan停止


HBase过滤器查询 目录 1、过滤器 2、比较过滤器使用 3、专用过滤器使用 4、多过滤器综合查询FilterList 1、过滤器 过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端 过滤器的类型很多,但是可以分为两大类 比较过滤器 专用过滤器 2、比较过滤器使用 HBase过滤器的比较运算符: LESS < LESS_OR_EQUAL <= EQUAL = NOT_EQUAL <> GREATER_OR_EQUAL >= 阅读详情

相关推荐

汇率波动率建模实战:从GARCH到EGARCH的金融时间序列分析

在金融时间序列分析中,波动率建模是量化市场风险的核心技术。其基本原理在于捕捉金融资产收益率序列中存在的波动聚集、尖峰厚尾等典型特征。通过建立条件异方差模型,如GARCH及其扩展模型,可以动态估计和预测未来波动率,这对于资产定价、风险管理和投资决策具有重要价值。在金融工程领域,该技术广泛应用于外汇、股票和衍生品市场。本文以汇率波动率建模为具体场景,详细阐述了如何使用Python中的arch库,从数据预处理、模型选型(包括GARCH、EGARCH等)、参数估计到样本外预测评估的全流程实践,并深入探讨了模型在应对

weixin_32629853的博客 374

hbase数据查询及过滤器详细使用

创建并插入数据: hbase(main):179:0> create 'scores','grade','course' hbase(main):180:0> put 'scores','zhangsan01','course:art','90' hbase(main):181:0> scan 'scores' ROW

小强签名设计 的博客 2万+

数据中心GPU芯片性能参数速查表(Nvidia+国产算力卡)

本文提供了一份数据中心GPU芯片性能参数速查表,涵盖Nvidia与国产算力卡两大阵营。文章详细解读了算力、显存、互连技术及功耗等关键性能指标,并对比了A100、H100、昇腾910B等主流型号,旨在帮助用户根据AI训练、推理等实际场景,做出高效的硬件选型与成本评估决策。

a0b1c2d3的专栏 837

文件过滤_HBase自定义过滤器

一、概述在查询Hbase数据时,如果能巧妙使用其过滤器,可以减少数据的扫描范围,加快数据的查询,HBase中内置了很多过滤器,但内置的过滤器无法满足我们的需求时,可以自定义过滤器来实现我们的需求。二、过滤器调用顺序 1、基于行键执行过滤: boolean filterRowKey(byte[] buffer, int offset, int length); 如果行需要被过滤掉(不出...

weixin_31001313的博客 385

OpenClaw插件配置错误修复完全指南

插件文件名是插件目录结构正确package.json配置正确OpenClaw的插件系统还在快速迭代,偶尔会遇到这种配置问题。看错误信息检查配置文件检查实际文件对比差异修复问题大部分问题都能解决。查看官方文档:https://openclaw.ai/docs提Issue:https://github.com/openclaw/openclaw/issues加入Discord社区求助快速修复命令汇总。

Maynor的博客 4097

Python爬虫实战:公共资源交易平台招标数据采集实战 - 从零构建企业情报系统(附CSV导出 + SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 1288

HBase扫描和过滤器优化

中被广泛应用于数据检索和过滤操作,包括缓存过滤器、列名过滤器、分页过滤器和过滤器列表。通过合理设置缓存和批量大小、使用缓存过滤器、选择合适的过滤器、调整过滤器的顺序等方法,可以进一步提高。通常情况下,应该将复杂的过滤器放在前面,简单的过滤器放在后面,以尽早过滤掉不符合条件的数据。使用扫描过滤器:可以通过设置Scan对象的setFilter方法来使用过滤器,过滤掉不需要的数据。不同的过滤器适用于不同的场景,选择合适的过滤器可以提高扫描的效率。中,可以使用过滤器来过滤掉不需要的数据,从而提高扫描的效率。

互联网知识分享 1346

基于STM32的DS1302电子时钟电路与程序设计

这个示例代码中,我们使用DS1302_GetTime函数从DS1302芯片获取当前时间,并使用DS1302_GetDate函数获取当前日期。在本文中,我们将介绍如何使用STM32微控制器和DS1302实时时钟芯片来构建一个基于STM32的DS1302电子时钟,并提供相应的程序设计。请注意,以上示例代码仅供参考,具体的实现细节可能会根据使用的开发环境和硬件组件有所差异。在实际应用中,你可能需要根据自己的需求进行适当的调整和修改。为了完整实现电子时钟的功能,你还可以添加其他功能,例如闹钟设置、温度显示等。

UbiSqlserver的博客 1325

【HBase】15-自定义过滤器

用户可能需要按各自的需求实现自定义过滤器。用户可以实现 Filter接口或者直接继承 FilterBase类,后者已经为接口中所有成员方法提供了默认实现。 Filter接口的结构如下: public abstract class Filter extends Object Interface for row and column filters directly applied within...

通往神秘的道路的专栏 520

Lumerical 教程目录,说明及个人感悟(共计138篇,持续更新中)

Lumerical---教程说明及个人感悟

u011699626的博客 1万+

【华为OD机试】真题A卷-Linux发行版的数量(Python)

【华为OD机试】真题A卷-Linux发行版的数量(Python):Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为Mint同Debian也存在关联。 发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。给你一个nxn的矩阵isConnected,其中isConnected[i][i]=1表示第i个发行版和第j个发行版直接

u014481728的博客 944

HBase自定义过滤器

本文最新更新, 请访问作者个人主页, 后续也会更新一些HBase高级特性相关的文章. 本文首先结合HBase过滤器部分的源码, 讲述HBase过滤器抽象基类Filter中各个函数的作用. 最终给出一个简单的自定义过滤器的案例, 在此基础上分析了Filter中各个方法的执行流程, 读者在理解该案例的基础上可以编写任何个性化的过滤器. 本文涉及的源码基于HBase 1.4.x这一Stable Rele...

qq_36822400的博客 775

【Bug已解决】Codex Desktop 更新后无法启动/闪退解决方案

方案适用场景推荐指数清理本地缓存重启最常见、最应优先尝试的方案⭐⭐⭐⭐⭐完全卸载重装缓存清理无效时的进阶方案⭐⭐⭐⭐详细日志定位崩溃环节需要精确诊断问题原因⭐⭐⭐⭐锁定旧稳定版本确认是特定版本缺陷时的过渡方案⭐⭐⭐反馈官方支持团队自助方式无效时的最终途径⭐⭐⭐⭐Codex Desktop 更新后无法启动/闪退的本质通常是新版本程序在启动时读取到了旧版本遗留的、格式不兼容的本地缓存或配置数据,导致启动流程中途崩溃。

一键难忘的博客 6290

hbase的过滤器

hbase的过滤器 1.概述 hbase的API中可以进行查询,但是这种查询一般只能单行或者是指定行键的范围的查询,在正常需要精细查询的场合有诸多的不便,所以系统内置了很多的过滤器 2.过滤器汇总 过滤器分为两大类:比较过滤器和专用过滤器 3.比较过滤器 行键过滤器 RowFilter Filter filter1 = new RowFilter(CompareOp.LESS_OR_EQUAL...

大数据容器 4571

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Hbase 过滤器详解

Hbase 过滤器详解 一、HBase过滤器简介 二、过滤器基础         2.1 Filter接口和FilterBase抽象类         2.2 过滤器分类 三、比较过滤器         3.1 比较运算符    &nbs

码上代码的博客 1383

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HBase过滤器的使用与操作

一、创建表格 1、使用命令行来连接正在运行的Hbase实例,命令: hbase shell 2、在使用过滤器之前先创建这样的表结构: 3、具体执行命令如下: 创建表: create 'student','stuInfo','grades' 插入第一个逻辑行的数据: put 'student', '001', 'stuInfo:name','alice' put 'stud...

weixin_45116412的博客 3511

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

HBase过滤器

文章目录过滤器列名过滤器列名前缀过滤器列簇过滤器Row Key过滤器Row Key前缀过滤器值过滤器过滤器组合比较符号比较方式常用过滤器示例另一些测试示例 过滤器 我们我们来看几个常用的过滤器: 过滤器 说明 RowFilter 筛选指定的RowKey FilterList 组合其他过滤器 ValueFilter 筛选指定值的数据 PrefixFilter 筛选有指定前缀的RowKey QualifierFilter 筛选指定列名的列 ColumnPrefixFilter

trayvontang的博客 2230

HBase 过滤器

HBase过滤器、比较器

hujieliang123的博客 4149

HBase常用的Filter过滤器操作

使用scan命令,扫描表格students,筛选出列族info,列限定符name的值包括子字符串y的数据。使用scan命令,扫描表格students,筛选出列族info,列限定符age的单元格值为19的数据列。使用get命令,查询出students表格中,行键为s002,列限定符的前缀字符串为Chi的数据结果。使用get命令,查询students表格中,行键为s001,单元格值包含子字符串ac的数据结果。使用get命令,查询students表格中,行键为s001,列限定符为name的数据结果。

qq_27088383的博客 1445

Hbase过滤器

文章目录简介实战过滤器的用法比较运算符比较器比较器表达式导入数据使用RowFilter查询指定订单ID的数据需求二:查询状态为已付款的订单需求三:查询支付方式为1,且金额大于3000的订单 简介 在HBase中,如果要对海量的数据来进行查询,此时基本的操作是比较无力的。此时,需要借助HBase中的高级语法——Filter来进行查询。Filter可以根据列簇、列、版本等条件来对数据进行过滤查询。因为在HBase中,主键、列、版本都是有序存储的,所以借助Filter,可以高效地完成查询。当执行Filter时,.

batman 2282

hbase过滤器

这篇文章来自hbase权威指南阅读随手笔记二之过滤器base过滤器的比较操作符:LESS < LESS_OR_EQUAL <= EQUAL = NOT_EQUAL <> GREATER_OR_EQUAL >= GREATER > NO_OP no operation比较器:BinaryComparator 按字节索引顺序比较指定字节数组,采用Bytes.compareTo(byte[]) Bin

张勤一 2490

HBase 过滤器示例( HBase Filter Language dome)

HBase过滤器是一种在读取HBase数据时进行数据过滤的机制。它允许用户根据定义的条件对数据进行过滤,以便仅获取满足条件的数据。 HBase过滤器使用HBase过滤器语言进行配置和使用。HBase过滤器语言是一种用于配置和定义HBase过滤器的语言。它允许用户使用一组操作符和关键字来定义过滤器条件。

qq_25976859的博客 1116
上一篇: HBase—扫描器
下一篇: Hive--基础操作、数据类型和文本文件格式
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值