hbase rest api:时间范围扫描

1yjd4xko  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(380)

问:如何使用RESTAPI扫描给定时间范围的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不起作用,传递整数(时间戳)而不是字符串不起作用。没有错误,我得到的是我所有的记录,通过我提供的其他条件,这是“58b03cade5796b09b48eb17e”前缀,好像它完全被忽略了,所以我想这不是正确的方式。

mtb9vblg

mtb9vblg1#

我在rest调用的xsd中看到,time参数是扫描器的参数,而不是过滤器的参数。另外,在xsd中,这两个属性似乎是分开的 startTime 以及 endTime (两个int)。所以,你可以尝试以下方法:

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

相关问题