You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kusto函数中通过键值对字典过滤查询结果?

Kusto函数实现动态字典过滤方案

这个需求完全可行,以下是最优实现方式:

  1. 参数定义:将filterDictionary声明为dynamic类型,Kusto原生支持这种动态对象参数,能直接接收你提供的键值对结构。
  2. JSON列解析:先把字符串类型的Dimensions列用parse_json()转换为动态对象,方便后续键值匹配。
  3. 高效过滤:使用Kusto内置的bag_has_all()函数,一次性检查解析后的Dimensions对象是否包含filterDictionary中的所有键值对,比手动遍历生成多个where条件更简洁高效。

完整函数代码

.create-or-alter function CountWithFilters(filterDictionary: dynamic) {
    Table
    | extend DimensionsBag = parse_json(Dimensions)
    | where bag_has_all(DimensionsBag, filterDictionary)
    | summarize count()
}

调用示例

传入你提供的示例字典:

CountWithFilters(dynamic({
    "DataCenter": "CUS",
    "Result": "Failure"
}))

补充说明

如果后续需要支持不等于、模糊匹配等更复杂的过滤逻辑,可以结合bag_keys()和mv-apply遍历字典键值对生成自定义条件,但针对当前"键值完全匹配"的需求,bag_has_all()是性能最优、代码最简洁的方案。

内容的提问来源于stack exchange,提问作者Omer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:12:21