【问题标题】:Hbase REST API: Timerange scanHbase REST API:时间范围扫描
【发布时间】:2017-03-15 18:03:56
【问题描述】:

:如何使用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 不起作用,传递整数(时间戳)而不是字符串也不起作用。没有错误,我得到的只是所有通过我提供的其他条件的记录,即“58b03cade5796b09b48eb17e”前缀,就像它完全被忽略了一样,所以我猜这不是正确的方法。

【问题讨论】:

    标签: rest hadoop hbase


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      相关资源
      最近更新 更多