【问题标题】:How to get all the rows given a part of the row key in Hbase如何在给定 Hbase 中行键的一部分的情况下获取所有行
【发布时间】:2013-05-10 06:04:33
【问题描述】:

我在Hbase中有如下表结构:

Row               column+cell

Mary_Ann_05/10/2013 column=cf:verified, timestamp=234454454,value=2,2013-02-12  
Mary_Ann_06/10/2013 column=cf:verified, timestamp=2345454454,value=3,2013-02-12 
Mary_Ann_07/10/2013 column=cf:verified, timestamp=2345454522454,value=4,2013-02-12 
Mary_Ann_08/10/2013 column=cf:verified, timestamp=23433333454,value=1,2013-12-12 

我想使用 java 检索所有以Mary_Ann 开头的记录。我该怎么做?

【问题讨论】:

    标签: java database eclipse hbase


    【解决方案1】:

    您可以使用PrefixFilter 实现这一目标。给定一个在您实例化过滤器实例时指定的前缀,所有与该前缀匹配的行都将返回给客户端。构造函数是:public PrefixFilter(byte[] prefix)

    用法:

    Filter filter = new PrefixFilter(Bytes.toBytes("Mary_Ann"));
    Scan scan = new Scan();
    scan.setFilter(filter);
    ResultScanner scanner = table.getScanner(scan);
    for (Result result : scanner) {
         for (KeyValue kv : result.raw()) {
            System.out.println("KV: " + kv + ", Value: " +
            Bytes.toString(kv.getValue()));
         }
    }
    scanner.close();
    

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多