Hbase REST API:时间范围扫描

时间:2017-03-15 09:37:21

标签: rest hadoop hbase

:如何使用REST API在给定的时间范围内扫描Hbase?

我试过这段代码:

<Scanner batch="1048576"> 
    <filter>
        { 
            "type": "PrefixFilter",
            "value": "NThiMDNjYWRlNTc5NmIwOWI0OGViMTdl", // base64 encoded "58b03cade5796b09b48eb17e"
            "timerange": ["1489502797781", "1489502797788"]
        }
    </filter>
</Scanner>

Hbase shell时间范围扫描是:

> scan 'tableName', { TIMERANGE => [1489442551458, 1489442551558] }

将时间戳编码为base64不起作用,对数组进行字符串化并将其编码为base64并不起作用,传递整数(时间戳)而不是字符串不起作用。没有错误,我得到的只是我通过其他条件的所有记录,这是&#34; 58b03cade5796b09b48eb17e&#34;前缀,它完全被忽略了,所以我猜它不是正确的方法。

1 个答案:

答案 0 :(得分:1)

对于我在REST调用的XSD中看到的内容,时间参数是扫描仪的参数,而不是过滤器的参数。此外,查看XSD,似乎这两个属性在startTimeendTime(两个整数)中分开。所以,你可以尝试类似的东西:

<Scanner batch="1048576" startTime=1489502797781, endTime=1489502797788> 
    <filter>
        { 
            "type": "PrefixFilter",
            "value": "NThiMDNjYWRlNTc5NmIwOWI0OGViMTdl", // base64 encoded "58b03cade5796b09b48eb17e"
        }
    </filter>
</Scanner>