`

hbase row key 的前缀相同查询实例

阅读更多

 

问题导读:                          
1.如何查询row key前缀相同的数据?
2.hbase查询实现方式有几种?
3.通过Java api,如何实现过滤前缀?




如果你在hbase表中存在一些特征相同的记录,实际上就可以通过设置Filter的方式进行检索过滤。

比如这个特征是前缀相同。

           

ROW
Jerry  
Jerry1
Jerry2



可以发现这三条记录都是以Jerry开头的row key.

那么我们如何检索呢。很简单。

如果是在hbase shell中

scan ‘scores’, {FILTER => org.apache.hadoop.hbase.filter.PrefixFilter.new(org.apache.hadoop.hbase.util.Bytes.toBytes(‘Jerry’))}

如果是java 客户端

  1. public void scaneByPrefixFilter(String tablename, String rowPrifix) {
  2.    try {
  3.        HTable table = new HTable(conf, tablename);
  4.        Scan s = new Scan();
  5.        s.setFilter(new PrefixFilter(rowPrifix.getBytes()));
  6.        ResultScanner rs = table.getScanner(s);
  7.        for (Result r : rs) {
  8.           KeyValue[] kv = r.raw();
  9.           for (int i = 0; i < kv.length; i++) {
  10.               System.out.print(new String(kv[i].getRow()) + "  ");
  11.               System.out.print(new String(kv[i].getFamily()) + ":");
  12.               System.out.print(new String(kv[i].getQualifier()) + "  ");
  13.               System.out.print(kv[i].getTimestamp() + "  ");
  14.               System.out.println(new String(kv[i].getValue()));
  15.           }
  16.       }
  17.    } catch (IOException e) {
  18.          e.printStackTrace();
  19.    }
  20. }

 

 

http://blog.sina.com.cn/s/blog_68674da70102v6q2.html

分享到:
评论

相关推荐

    hbase用于查询客户端工具

    它不支持复杂的查询,但对于快速检查和监控HBase实例非常有用。 7. **HBase MapReduce**:MapReduce是Hadoop处理大数据的主要工具,HBase与MapReduce结合可以进行批量数据处理和分析。通过编写MapReduce作业,可以...

    hbase java api 访问 查询、分页

    在HBase这个分布式列式数据库中,Java API是开发者常用的一种接口来操作HBase,包括创建表、插入数据、查询数据以及实现分页等操作。本文将深入探讨如何使用HBase Java API进行数据访问和分页查询。 首先,我们要...

    hbase分页查询实现.pdf

    HBase分页查询实现 HBase作为一个NoSQL数据库,具有高性能、高可扩展性和高可靠性等特点,但是在查询方面却存在一些限制,例如不支持分页查询。这就使得开发者需要自己实现分页查询功能。本文将讲解如何使用Java...

    hbase的rowkey设计与hbase的协处理器运用.docx

    HBase RowKey 设计与协处理器运用 HBase 是一个基于 HDFS 的分布式、面向列的 NoSQL 数据库,具有高性能、可靠性和扩展性等特点。本文将详细介绍 HBase 的 RowKey 设计和协处理器运用。 HBase 的介绍 HBase 是一...

    HBase官方指南——数据模型篇

    HBase中的表是由行组成,每行都有一个唯一的行键(Row Key)。行键是一个字符串,数据是按照这个行键的字典序来存储的。行键的选择对数据的存储性能有着极大的影响。一个好的行键设计可以让相关数据在物理上存储在...

    hbase查询分页分页

    HBase是基于Google的Bigtable设计的,它以行键(Row Key)为主键进行数据存储,数据按照行键排序。表被分割成多个Region,每个Region包含一部分行键范围内的数据。Region服务器负责管理这些Region,并处理客户端的...

    基于Hbase的大数据查询优化

    因为面向列的特点,Hbase只能单单地以rowkey为主键作查询,而无法对表进行多维查询和join操作,并且查询通常都是全表扫描,耗费资源较大,查询效率较低。类比于传统型数据库里的一些查询方式,本文对Hbase的存储原理进行了...

    Hbase操作示例 Hbase的读写例子

    本人原创, 1.Hbase连接需要改Hbase包中的两个配置文件,加上Hbase所在机器ip及端口 2.HBaseDMLT初始化环境 3.MapDataIni为建表 4.MapDataInsert为写数据 5.MapDataDelete为删除数据 6.MapDataRead为读数据

    HBase实战实例

    1. 快速查询:通过高效的Row Key设计,实现基于地理位置的范围查询和点查询。 2. 空间JOIN操作:通过预计算或者MapReduce任务,模拟实现传统数据库中的JOIN操作。 3. 并行处理:利用HBase的分布式特性,进行大规模...

    hbase入门和使用

    通过上述知识点的总结,可以看出HBase作为一个分布式NoSQL数据库,提供了强大的数据存储和查询能力,尤其适合于处理大规模数据集的场景。尽管它在某些方面还有待改进,但整体来说,HBase为大数据环境下的应用提供了...

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

    HBase分页查询实现 HBase是一种基于分布式的NoSQL数据库,它提供了高效的数据存储和检索能力。然而,HBase本身不支持分页查询,这使得开发者需要自己实现分页功能。本文将讲解如何使用Java语言实现HBase的分页查询...

    HbaseJavaClient.java

    hbase client包装类,超大数据海量数据时,hbase前缀匹配查询非常慢,提供了解决办法,能够取得较好的效果,包括setStartRow和setRowPrefixFilter两种方式。

    Hbase实验报告.pdf

    在实际应用中,由于HBase的分布式特性,查询性能依赖于良好的Row Key设计。合理规划Row Key,可以提高数据访问速度和空间效率。此外,可以使用Scan操作进行范围查询,或通过Filter进行更复杂的过滤。 ### 6. 遇到的...

    test_hbase - feed 插入,查询

    表由行键(Row Key)和时间戳来唯一标识数据,这使得数据能够按照时间序列存储和检索。 在“test_hbase”项目中,我们很可能会看到一个简单的HBase表结构,用于演示feed数据的插入。feed数据通常指的是持续流式的...

    HBase上使用SQL查询Phoniex.zip

    Phoniex 可以让开发者在HBase数据集上使用SQL查询。Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排执行以生成标准的JDBC结果集,对于简单查询来说,性能甚至胜过Hive。 标签:Phoniex

    hbase学习课件

    - Row Key 在内部以字节数组的形式存储,HBase 会根据 Row Key 对表中的数据进行排序。 - 设计良好的 Row Key 能够提高数据访问效率。 - **列族**: - 列族是表结构的重要组成部分,每个列族包含一组相关的列。 ...

    HbaseTemplate 操作hbase

    1. **HbaseTemplate的初始化**:在使用HbaseTemplate之前,我们需要在Spring配置文件中配置HBase的相关连接信息,如Zookeeper地址、HBase表名等,并实例化HbaseTemplate。这通常通过@Autowired注解和@Configuration...

    某大数据公司内部Hbase性能测试详细设计文档及用例

    如果最近写入HBase表中的数据是最可能被访问的,可以考虑将时间戳作为row key的一部分,由于是字典序排序,所以可以使用Long.MAX_VALUE – timestamp作为row key,这样能保证新写入的数据在读取时可以被快速命中。...

    hbase的hbase-1.2.0-cdh5.14.2.tar.gz资源包

    列族是数据存储的主要单位,具有相同的前缀。 4. **列(Column)**:每个列族下可以有多个列,列由列族名加上列限定符(Qualifier)组成,列限定符是可变的,用于区分同一列族内的不同列。 5. **版本(Version)**:...

Global site tag (gtag.js) - Google Analytics