如何解决Kusto循环数组与子查询
我试图定义一个数组并遍历整个数组,以查找消息中数组中包含元素的位置的跟踪。是否有可能做到这一点?例如:
let myIds = datatable (name: string)
[
"111","222","333",];
forach (id in myIds)
{
traces
| where message contains id
}
我知道这不是上面的正确语法,但希望它能解释我要实现的目标。简而言之,遍历数组并在我的日志(特别是跟踪)中执行查找。
解决方法
第一个选项是使用 has_any
。这是一个更简单的解决方案,可能适用于您的用例,但前提是您的 ID 在消息中显示为离散的 term。
因此,如果消息的格式为“blah blah ID: 111”,它将被接收,但如果它是另一个单词的一部分,则不会(因为 has
的工作方式与 {{ 略有不同) 1}}).
contains
如果您需要 let myIds = datatable (name: string) [ "111","222","333"];
let traces=datatable(message:string) ["aaaaaaaaaaaaaaaa","blah blah 111","blah111 blah","111blah"];
traces
| where message has_any (myIds)
的功能(如果您需要找到 111 的每个实例),那么您可以使用 contains
。这会循环遍历您的 mv-apply
子表,并分别与每个条目进行比较,然后合并所有结果。请注意,这意味着如果在同一条消息中匹配多个 ID,您可能会得到重复。
myIds
,
您可以使用mv-expand
或mv-apply
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。