如何使用 JOIN 解决 Kusto 区分大小写的问题

azu*_*ler 2 logging analytics azure-data-explorer

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

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

心跳表具有名称为 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
Run Code Online (Sandbox Code Playgroud)

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

提前致谢

Yon*_*i L 5

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

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

就像是:

T1 
| extend lowercase_computer_name = tolower(ComputerName)
| join (T2 | extend lowercase_computer_name = tolower(ComputerName))
  on lowercase_computer_name
Run Code Online (Sandbox Code Playgroud)