我正在尝试制定一些 RESTful 调用,以使用模糊逻辑或多个过滤器(filterList)从 hbase 表中返回特定数据。我的rowkey由“ BatchId + UserId + Timestamp ”+“ ModelId ”组成,例如,我希望能够找到 rowkey 包含 xyz 的 UserId 和“yxz”的“ModelId”的所有人(与 BatchId 无关& 时间戳值)。
我没有运气从外壳复制模糊过滤器,作为最后的手段,我尝试使用过滤器列表(多个过滤器)单独过滤每个列(这是以性能为代价的,我可以接受)。
关于过滤器列表,当尝试过滤 RK 本身时,我不确定要为限定符和列族传递什么值或添加多个过滤器的语法,非常感谢任何帮助。
在下面找到我的 curl 命令和 filterlist 的 args 文件内容。
CURL: curl -vi -X PUT -H "Content-Type:text/xml" -d @args.xml "host-rest-machine-address/namespace:table/scanner"
ARGS.XML:
<Scanner batch ="1024">
<filter>
{
"type": "FilterList",
"op": "MUST_PASS_ONE",
"filters": [{
"type": "FilterList",
"op": "MUST_PASS_ALL",
"filters": [{
"type": "FamilyFilter",
"op": "EQUAL",
"comparator": {
"type": "BinaryComparator",
"value": "Y2Yx"
}
}, {
"type": "QualifierFilter",
"op": "EQUAL",
"comparator": {
"type": "BinaryComparator",
"value": "cm93S2V5"
}
}, {
"type": "RowFilter",
"op": "EQUAL",
"comparator": {
"type": "BinaryComparator",
"value": "MjAwMDAyMDE4OTM3Mw=="
}
}]
}]
}
</filter>
</Scanner>
我的列族:cf1(不确定这在搜索行键时是否适用?) 限定符: hbase 表中的列名(也不确定如何在此处引用行键 - 已尝试行、行键、我的 sql 别名在导入时没有运气)值:为给定的列/表过滤的值
注意 - 所有传递的值都是 base_64 编码的
提前致谢