1

我在 Sentinel 中有两个表,其中包含数据。我在表 A 中有字段 A,它是一个数字。我在表 B 中有两个字段 B 和 C,它们也是数字,但它们代表一个范围。与表 A 字段 A 包含数字“9”一样,表 B 字段 B 包含数字“3”,表 B 字段 C 包含数字“18”。

我想浏览表 A 中的所有条目,并在表 B 中找到这些条目的匹配日志。如果字段 A 的值在字段 B 和 C 的范围内(在 B 和 C 之间),则条目匹配. 因此,在上面的示例中,数字 9 介于 3 和 18 之间,因此两个表中的这两个条目将匹配。

因为它们不是完全匹配,所以我不能使用 join 来查找匹配的条目。

有没有办法用 KQL (Kusto) 以某种方式做到这一点?我尝试了多种解决方案,但到目前为止都没有成功。我尝试使用用户定义的函数,但出现“当前上下文中不应出现表格表达式”错误。

4

1 回答 1

3

一种天真的方法是使用 Cartisian 产品并应用过滤器,这是一个示例:

let A = datatable(a:int) [9, 25, 2];
let B = datatable(b:int, c:int) [3,13, 1,2];
A
| extend dummy = 1
| join kind=inner (B | extend dummy =1) on dummy
| where a between (b .. c)
| project-away dummy*
一个 b C
9 3 13
2 1 2
于 2022-01-08T22:48:20.260 回答