xml – HBase REST过滤器(SingleColumnValueFilter)

前端之家收集整理的这篇文章主要介绍了xml – HBase REST过滤器(SingleColumnValueFilter)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不知道如何在HBase REST接口(HBase 0.90.4-cdh3u3)中使用过滤器。文档只是给我一个“字符串”的模式定义,但不显示如何使用它。

所以,我能够这样做:

curl -v -H 'Content-Type: text/xml' -d '<Scanner startRow="ddo" stopRow="ddp" batch="1024"/>' 'http://hbasegw:8080/table/scanner'

然后检索

curl -s -H "Content-Type: text/xml" http://hbasegw:8080/table/scanner/13293426893883128482b | tidy -i -q -xml

但现在我想使用SingleColumnValueFilter,并且必须在XML中以某种方式进行编码。
有没有人有这样的例子?

谢谢,
马里奥

扫描器XML中的过滤字段是格式为JSON的字符串。由于过滤器的JSON有很多引号,我建议对curl的-d参数使用单独的文件,以避免单引号。

curl -v -H“Content-Type:text / xml”-d @ args.txt http:// hbasegw:8080 / table / scanner

args.txt文件的位置是:

<Scanner startRow="cm93MDE=" endRow="cm93MDg=" batch="1024">
    <filter>
    {
        "latestVersion":true,"ifMissing":true,"qualifier":"Y29sMQ==","family":"ZmFtaWx5","op":"EQUAL","type":"SingleColumnValueFilter","comparator":{"value":"MQ==","type":"BinaryComparator"}
    }
    </filter>
</Scanner>

如何发现JSON过滤器字符串应该是什么样子?下面是一个通过Java代码的简单方法,它从HBase的Java API中提取了一个标准的Filter对象,从而输出了字符串过滤器。

SingleColumnValueFilter filter = new SingleColumnValueFilter(
    Bytes.toBytes("family"),Bytes.toBytes("col1"),CompareFilter.CompareOp.EQUAL,Bytes.toBytes("1")
);
System.out.println(ScannerModel.stringifyFilter(filter));

请注意,JSON和XML需要以Base64编码的数据。我测试了上面的curl命令在一个表,它的工作很好。

如果你想知道,是的,扫描仪的REST API还不是开发者友好的,因为它可以得到。

原文链接:/xml/293721.html

猜你在找的XML相关文章