【问题标题】:Reverse pagination with HBase使用 HBase 反向分页
【发布时间】:2014-08-14 11:59:38
【问题描述】:

我正在研究 hbase 表分页。我需要实现的功能是,UI 分页表应该具有下一个/前进和后退/后退功能。

我使用 PageFilter 实现的前进选项,但对于后退,我需要将行 (20) 从结束键获取到最近并后退。 例如。向后获取所有记录 1000 - 980。

我在 hbase 源代码中找不到任何满足我要求的东西。知道我们如何实现它吗???

PS:我的row key是多个字段和数据大小TB的组合键。

【问题讨论】:

    标签: pagination hbase mapr


    【解决方案1】:

    在 hbase .98 中,有一个反向扫描的新选项,代码非常简单

    scan.setReversed(true);
    

    【讨论】:

    • 我们使用的是 hbaseM7(mapr) 和 api 0.94 版本。
    • 即使我也尝试过,但这个 scan.setReversed 在这种情况下无济于事。我也有同样的问题需要在 hbase 中进行向后导航。
    【解决方案2】:

    您可以在 hbase 表逆序中从命令行迭代值,并且可以对逆序行使用过滤器

    例子:-

     hbase(main):030:0> scan 'test_use'
    ROW                                               COLUMN+CELL
     1                                                column=usage:ACP, timestamp=1495474486145, value=3400
     1                                                column=usage:UseTime, timestamp=1495474486145, value=2009-05-16 17:37:13.427
     1                                                column=usage:VisualID, timestamp=1495474486145, value=1
     2                                                column=usage:ACP, timestamp=1495474881861, value=3400
     2                                                column=usage:UseTime, timestamp=1495474881861, value=2009-05-16 17:37:13.427
     2                                                column=usage:VisualID, timestamp=1495474881861, value=2
     3                                                column=usage:ACP, timestamp=1504022698257, value=3.1
     4                                                column=usage:ACP, timestamp=1504022785705, value=4.1
    4 row(s) in 0.0930 seconds
    
    
    hbase(main):031:0> scan 'test_use',{REVERSED=>true}
    ROW                                               COLUMN+CELL
     4                                                column=usage:ACP, timestamp=1504022785705, value=4.1
     3                                                column=usage:ACP, timestamp=1504022698257, value=3.1
     2                                                column=usage:ACP, timestamp=1495474881861, value=3400
     2                                                column=usage:UseTime, timestamp=1495474881861, value=2009-05-16 17:37:13.427
     2                                                column=usage:VisualID, timestamp=1495474881861, value=2
     1                                                column=usage:ACP, timestamp=1495474486145, value=3400
     1                                                column=usage:UseTime, timestamp=1495474486145, value=2009-05-16 17:37:13.427
     1                                                column=usage:VisualID, timestamp=1495474486145, value=1
    4 row(s) in 0.0500 seconds
    
    
    hbase(main):032:0> scan 'test_use',{REVERSED=>true,STARTROW=>"1"}
    ROW                                               COLUMN+CELL
     1                                                column=usage:ACP, timestamp=1495474486145, value=3400
     1                                                column=usage:UseTime, timestamp=1495474486145, value=2009-05-16 17:37:13.427
     1                                                column=usage:VisualID, timestamp=1495474486145, value=1
    1 row(s) in 0.0270 seconds
    

    【讨论】:

      猜你喜欢
      • 2013-01-10
      • 2012-11-24
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多