【问题标题】:Hbase multiple range scans?Hbase多范围扫描?
【发布时间】:2013-10-10 18:28:53
【问题描述】:

我有一个包含数百万行的表,我需要能够选择包含某个前缀的行。我可能想要扫描数百个前缀。这些前缀中的每一个最多可能影响 10 行。根据我的经验,范围扫描总是比过滤器快得多,所以我希望有一种方法可以扫描多个范围,而不是为每个范围添加 PrefixFilter。有没有办法在 hbase 中做到这一点,或者至少是 PrefixFilters 的更好替代方案?

【问题讨论】:

    标签: hbase


    【解决方案1】:

    您似乎正在寻找 MultiTableInputFormat。它允许我们在一个表上从多个扫描仪提供数据。

    用法示例:

    Scan scan1 = new Scan(); 
    scan1.setStartRow(start1); 
    scan1.setStopRow(end1); 
    Scan scan2 = new Scan(); 
    scan2.setStartRow(start2); 
    scan2.setStopRow(end2); 
    MultiTableInputCollection mtic = new MultiTableInputCollection(); 
    mtic.Add(tableName1, scan1); 
    mtic.Add(tableName2, scan2); 
    TableMapReduceUtil.initTableMapperJob(mtic, TestTableMapper.class,   Text.class, IntWritable.class, job1); 
    

    这是 API,这是关联的 ticket

    【讨论】:

    • 有什么办法可以只返回结果吗?理想情况下,我想生成一个 ResultScanner,它包含指定行范围内的所有结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    相关资源
    最近更新 更多