如何在Kusto中循环执行查询?批量调用函数合并结果
在Kusto中批量调用函数并合并结果
当然可以实现,Kusto是声明式的集合型查询语言,不需要传统的循环语法,通过将数组展开为行集,再批量调用函数就能达成需求。
实现方案
假设你的函数A是表格函数(接收字符串参数并返回单行多列数据),可以用以下两种方式实现:
方式1:基于动态数组展开
// 定义目标字符串数组 let target_list = dynamic(["apples", "banana", "pear"]); // 将数组展开为单行转多行的表 target_list | mv-expand value to typeof(string) // 对每一行的参数调用函数A,自动合并所有结果 | invoke A(value)
方式2:直接用数据表定义参数列表
如果参数列表固定,用datatable定义会更具可读性:
datatable(fruit: string) [ "apples", "banana", "pear" ] | invoke A(fruit)
原理说明
Kusto会自动处理行集的批量操作:
- 先把数组/列表转换成包含单个参数列的表,每个元素对应一行
- 通过
invoke关键字对每一行的参数调用表格函数A - 所有函数返回的单行结果会自动合并成一个完整的输出表,完全匹配你需要的格式。
内容的提问来源于stack exchange,提问作者mjsxbo
相关产品推荐
相关产品推荐

