我正在使用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
我尝试使用=〜作为联接运算符,但它必须为==。在这种情况下,toupper()和tolower()对我不利。
预先感谢
答案 0 :(得分:1)
如果查询中的逻辑允许您使用不区分大小写的in~()
或!in~()
运算符,则应选择该选项。
否则,您可以在两个连接分支上扩展计算列,然后再在该列上应用连接(尽管与不必这样做相比,效率较低)。
类似:
T1
| extend lowercase_computer_name = tolower(ComputerName)
| join (T2 | extend lowercase_computer_name = tolower(ComputerName))
on lowercase_computer_name
答案 1 :(得分:0)
您可以改为使用搜索,默认情况下,搜索不区分大小写
答案 2 :(得分:0)
如果您想要进行不区分大小写的正则表达式评估,您可以在正则表达式模式的开头包含不区分大小写标志。
就像下面的例子:
ServiceName matches regex "(?i)super duper express"
见: