如何在 Azure 数据资源管理器 (kusto) 中使用数组参数查询数组列

How to query array column with array parameter in Azure Data Explorer (kusto)

我有 table 和动态列,我在其中存储 ID 列表,我有可以传递 ID 列表的参数。所以,我想获取 table 列中存在任何输入值的行。 像这样:

declare query_parameters (        
    i_ids: dynamic = dynamic([15,33,37])
);
let T = datatable(id: int, ids:dynamic)
[
    1, dynamic([10, 15, 18]),
    2, dynamic([22,25,29]),
    3, dynamic([31, 33, 37]),
];
T
| where ids has_any(i_ids);

我需要获取第 1 行和第 3 行,但失败并显示消息:源表达式的类型为 'dynamic',无法与数字参数进行比较。 你能帮我写正确的查询吗?

您可以尝试使用 set_intersect()https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/setintersectfunction

declare query_parameters (        
    i_ids: dynamic = dynamic([15,33,37])
);
let T = datatable(id: int, ids:dynamic)
[
    1, dynamic([10, 15, 18]),
    2, dynamic([22,25,29]),
    3, dynamic([31, 33, 37]),
];
T
| where array_length(set_intersect(ids, i_ids)) > 0