2

我正在使用 Log Analytics (Kusto) 构建动态计算机组。我需要加入两个计算机区分大小写不匹配的表。有没有人想出解决这种情况的方法?

示例(使用一台计算机):

Heartbeat 表的计算机名称为 ABCDE.domain.com Application_CL 表的计算机名称为 abcde.DOMAIN.com

如果我运行此查询,则结果集为空,除非 FQDN 完全匹配。如果这是 SQL,它将返回 ABCDE.domain.com,这正是我们所需要的。

let H = Heartbeat | summarize by Computer; let A = Application_CL | where Name_s == "AppName" | summarize by Computer; H | join A on $left.Computer == $right.Computer | distinct Computer

我尝试使用 =~ 作为连接运算符,但它必须是 ==。toupper() 和 tolower() 在这种情况下对我没有好处。

提前致谢

4

3 回答 3

5

如果查询中的逻辑允许您使用不区分大小写in~()!in~()运算符,则应选择该选项。

否则,您可以在将连接应用于该列之前在两个连接腿中扩展计算列(但与您不必这样做相比,它的效率较低)。

就像是:

T1 
| extend lowercase_computer_name = tolower(ComputerName)
| join (T2 | extend lowercase_computer_name = tolower(ComputerName))
  on lowercase_computer_name
于 2019-01-07T01:16:51.990 回答
0

您可以改用搜索,默认情况下不区分大小写

于 2020-08-09T13:06:55.770 回答
0

如果您想要进行不区分大小写的正则表达式评估,您可以在正则表达式模式的开头包含不区分大小写标志。

就像下面的例子:

ServiceName matches regex "(?i)super duper express"

看:

于 2021-06-17T17:45:10.960 回答