HI我正在尝试构建REST API以公开驻留在HBase中的数据。为简单起见,我使用内置的HBase REST API。我正在关注https://www.cloudera.com/documentation/enterprise/latest/topics/admin_hbase_rest_api.html的文档。我为搜索实用程序创建了一个使用Rowkey的API。但我坚持认为我剩下的API需要根据列值进行搜索。文档建议步骤但我无法使用它。并且没有其他可用的来源。我发现HBase Java Client中有过滤选项,比如使用substringComaparator等实用程序的singlecolumnvalue过滤器。像这些有什么办法可以在HBase REST API中应用过滤器吗?
答案 0 :(得分:0)
您粘贴的link会显示如何使用扫描仪:
curl -vi -X PUT \
-H "Accept: text/xml" \
-H "Content-Type:text/xml" \
-d @filter.txt \
"http://example.com:20550/users/scanner/"
@stelcheck收集了一些过滤器here的使用情况。因此,如果您想将SingleColumnValueFilter
与hbase rest api一起使用,那么您的filter.txt
就像:
<Scanner batch="100">
<filter>
{
"type": "SingleColumnValueFilter",
"op": "EQUAL",
"family": "Y2Y=",
"qualifier": "cQ==",
"latestVersion": true,
"comparator": {
"type": "BinaryComparator",
"value": "dmFsdWU5"
}
}
</filter>
</Scanner>
此示例是在列value9
中找到值为cf:q
的单元格。
<强>更新强>
添加示例以在命令行中解析过滤器内容 如果不想将文件内容用作数据,只需在命令行中解析内容即可 对于上面的例子,它将是:
curl -s -i -X PUT -H "Accept: text/xml" -H "Content-Type: text/xml" -d '<Scanner batch="100"><filter>{"type": "SingleColumnValueFilter", "op": "EQUAL", "family": "Y2Y=", "qualifier": "cQ==", "latestVersion": true, "comparator": { "type": "BinaryComparator", "value": "dmFsdWU5" } }</filter></Scanner>' "http://example.com:20550/users/scanner/"