问:如何使用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;前缀,它完全被忽略了,所以我猜它不是正确的方法。
答案 0 :(得分:1)
对于我在REST调用的XSD中看到的内容,时间参数是扫描仪的参数,而不是过滤器的参数。此外,查看XSD,似乎这两个属性在startTime
和endTime
(两个整数)中分开。所以,你可以尝试类似的东西:
<Scanner batch="1048576" startTime=1489502797781, endTime=1489502797788>
<filter>
{
"type": "PrefixFilter",
"value": "NThiMDNjYWRlNTc5NmIwOWI0OGViMTdl", // base64 encoded "58b03cade5796b09b48eb17e"
}
</filter>
</Scanner>