如何将Kusto函数GetIds()的输出作为GetValuesByIds()的输入?
问题解决方法
问题原因
GetIds()返回的是包含单列的表结果集,但GetValuesByIds(dynamic: ids)要求传入的是标量动态表达式(比如你直接写的dynamic(["1"])这种单个动态数组值),直接把表赋值给ids传参,自然会触发参数类型不匹配的错误。
解决方案
需要把GetIds()返回的列数据转换成标量动态数组,用make_set(自动去重,适配你的唯一ID场景)或make_list配合summarize聚合,再用toscalar提取标量值:
// 替换 YourIdColumnName 为 GetIds() 返回的唯一ID列的实际名称 let ids = toscalar(GetIds() | summarize make_set(YourIdColumnName)); GetValuesByIds(ids)
补充说明
summarize make_set(列名):将列中所有唯一值合并成一个动态数组toscalar():把聚合后得到的单值结果(动态数组)转换为标量,满足GetValuesByIds的参数类型要求
如果GetIds()本身只返回一行一列的结果,也可以简化成:
let ids = toscalar(GetIds()); GetValuesByIds(ids)
内容的提问来源于stack exchange,提问作者mohanakrishnavh
相关产品推荐
相关产品推荐

