Как обойти чувствительность к регистру у Кусто с JOIN - PullRequest
0 голосов
/ 06 января 2019

Я создаю динамические группы компьютеров с помощью Log Analytics (Kusto). Мне нужно объединить две таблицы, где чувствительность к регистру компьютера не совпадает. Кто-нибудь нашел обходной путь для этого сценария?

Пример (с использованием одного компьютера):

Таблица пульса имеет компьютер с именем ABCDE.domain.com В таблице Application_CL есть компьютер с именем abcde.DOMAIN.com

Если я выполню этот запрос, набор результатов будет пустым, если полное доменное имя не является точным соответствием. Если бы это был 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 () не приносят мне пользы в этом сценарии.

Заранее спасибо

1 Ответ

0 голосов
/ 07 января 2019

Если логика в вашем запросе позволяет вам использовать операторы in~() или !in~() без учета регистра, вам следует выбрать эту опцию.

В противном случае вы можете расширить вычисляемый столбец в обеих ветвях соединения, прежде чем применять соединение к этому столбцу (хотя это менее эффективно по сравнению с тем, что вам не нужно было этого делать).

что-то вроде:

T1 
| extend lowercase_computer_name = tolower(ComputerName)
| join (T2 | extend lowercase_computer_name = tolower(ComputerName))
  on lowercase_computer_name
...