1

我正在尝试制定一些 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 编码的

提前致谢

4

0 回答 0