`
kabike
  • 浏览: 606069 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

hbase利用hint来实现filter快速扫描

 
阅读更多
hbase只有rowkey上有索引,在rowkey上可以实现快速扫描,想在column上进行条件筛选或者是在rowkey的非前缀部分进行筛选只能通过filter,而一直以为filter只能顺序的遍历所有KeyValue.
但实际上filter可以提供hint来使scanner reseek重新定位,提高查询效率.

比如假设rowkey设计形式为barfoo,前三位是定长的bar属性,后三位是定长的foo属性,在bar属性上查询很容易,因为它是rowkey的前缀,使用startrow和endrow可以快速查询,对于非前缀属性foo来说,指定startrow是没有用的,必须要full scan才行.比如想查询***fo3的行,可以想象使用RegexStringComparator和RowFilter来全表扫描.



但是假设这个table中,bar的基数比较小,foo的基数比较大(即bar的不同值的个数很少,而foo的不同值的个数很多).那么这时候可以通过在Filter的filterKeyValue方法中返回SEEK_NEXT_USING_HINT,告诉scanner进行reseek重定位,比如上述问题中,在检查过ba1fo3后,下一个rowkey是ba1fo4,可以通过hint告知scanner,reseek到ba2fo3的位置,即使hfile中没有ba2fo3这个key,也能定位到附近位置.假设bar的取值有十个,那么经过十次左右reseek,就可以完成文件遍历.



该方法可用于rowkey的非前缀搜索,以及在wide row中进行inter row scan
  • 大小: 4.6 KB
  • 大小: 8.1 KB
0
4
分享到:
评论
1 楼 zhao_rock 2015-01-15  
写的不错,继续努力

相关推荐

    hbase分页查询实现.pdf

    作者使用了ResultScanner来扫描表数据,并使用了Filter来实现分页查询。 知识点6:Filter的使用 Filter是HBase中的一种过滤器,用于过滤查询结果。在本文中,作者使用了FirstKeyOnlyFilter和...

    hbase分页查询实现[归类].pdf

    在这个方法中,我们使用了HBase的Scan对象来实现分页查询。Scan对象可以根据起始行和结束行来实现分页查询。此外,我们还使用了Filter对象来过滤查询结果。 四、HBase分页查询的优点 HBase分页查询可以带来以下几...

    HBase实现批量存取

    总之,理解并掌握HBase的批量存取是高效利用HBase的关键。通过Eclipse中的实践项目,我们可以深入学习HBase的API用法,了解其在大数据场景下的优势,为实际业务提供强有力的数据存储和处理支持。

    Hbase调用JavaAPI实现批量导入操作

    这篇博客“Hbase调用Java API实现批量导入操作”聚焦于如何利用Java编程语言高效地向HBase中批量导入数据。在这个过程中,我们将探讨以下几个关键知识点: 1. **HBase架构**: HBase是基于列族的存储模型,数据被...

    java解决hive快速导数据到Hbase代码

    本文将详细讨论如何使用Java编程语言实现从Hive到HBase的快速数据导入方案。 首先,Hive是一个基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,适合大规模数据的离线...

    HbaseTemplate 操作hbase

    本篇文章将详细讲解如何利用Spring Data Hadoop中的HbaseTemplate来操作HBase。 首先,我们需要理解Spring Data Hadoop提供的HbaseTemplate类。这是一个封装了HBase操作的模板类,简化了Java开发人员与HBase交互的...

    HBase指南-带书签高清扫描版pdf

    例如,社交媒体网站可能利用HBase存储和检索用户的活动数据,搜索引擎可能会用它来存储索引数据,以便快速响应用户的搜索请求。 然而,使用HBase也需要注意其挑战和限制,如复杂的数据模型可能导致学习曲线较陡峭,...

    Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据).pdf

    在本文档中,我们将深入探讨如何使用Java API与...总的来说,通过Java API与HBase交互涉及到配置连接、管理表结构和批量处理数据。理解这些基本操作对于高效地使用HBase至关重要,特别是在大数据处理和分析的场景下。

    HBase_SI_--_实现HBase_ACID的理论

    根据给定文件的信息,本文将深入探讨"HBase_SI"这一理论框架,该理论旨在实现HBase中的ACID特性。文章将从多个角度分析HBase_SI的设计理念、技术细节及其应用场景。 ### HBase_SI:实现HBase_ACID特性的理论 #### ...

    hbase存储csv数据的代码实现

    以下是一个简单的Python示例,展示如何使用HappyBase库(一个Python HBase客户端)来实现这个过程: ```python import happybase # 连接到HBase connection = happybase.Connection('localhost') # 创建表 table ...

    Hbase 表设计与操作

    HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来...

    基于hbase, mapreduce结合springMVC查询操作扫描操作,数据分析.zip

    总的来说,这个项目旨在实现一个高效、可扩展的大数据处理平台,通过Spring MVC提供Web接口,用户可以使用HBase进行数据查询和扫描,同时利用MapReduce进行复杂的数据分析。这个平台对于处理和理解海量的人工智能...

    HBase分布式事务与SQL实现

    此外,HBase通过块缓存和布隆过滤器来优化实时查询,并通过服务器端过滤器实现查询谓词下推,从而加速查询处理。HBase还支持多版本并发控制(MVCC),这种机制允许多个版本的数据项并存,通常用于实现读写一致性。 ...

    Hbase调用JavaAPI实现批量导入操作.docx

    Hbase 调用 JavaAPI 实现批量导入操作 在大数据时代,Hbase 作为一个分布式、面向列的 NoSQL 数据库,广泛应用于大规模数据存储和处理中。同时,JavaAPI 作为一个强大且流行的编程语言,广泛应用于各种软件开发中。...

    hbase数据可视化系统

    然而,对于非技术人员来说,直接操作HBase命令行进行数据管理可能会显得较为复杂。因此,通过SpringBoot构建HBase的可视化界面,就成为了提升工作效率、简化操作流程的有效手段。 一、HBase简介 HBase是基于Google...

    HBase实战(中文扫描版

    学习Hadoop以及Hbase Hbase及Hadoop是开源软件的杰作

    基于spring boot 的spring-boot-starter-hbase自动注解实现

    6. **Repository接口**: Spring Data HBase提供了一个Repository抽象层,可以定义自定义的Repository接口,Spring会自动实现这些接口,提供基本的数据操作方法。例如: ```java public interface MyRepository ...

    hbase安装包

    6. 检查HBase是否正常启动:可以通过Web UI(默认端口是60010)或者命令行工具`hbase shell`来验证。 在实际应用中,你可能还需要学习如何创建表、插入数据、查询数据、管理表的列族和版本、进行数据的批量导入导出...

    HBase基本操作.pdf

    每个插入的数据都有一个时间戳,HBase可以通过时间戳来实现版本控制。 #### 9. Filter操作 HBase通过Filter来支持复杂的查询操作。例如,使用`scan '表名', {FILTER => '过滤器'} `可以对表数据进行过滤。过滤器...

Global site tag (gtag.js) - Google Analytics