Найдите все записи, в которых столбец равен строке A или строке B, используя язык запросов kusto. - PullRequest
0 голосов
/ 28 октября 2019

Мне нужно найти все записи в таблице, где один из столбцов CounterName содержит строку определенного типа, а другой столбец InstanceName имеет значение, эквивалентное либо строке C:, либо строке D:.

Приведенный ниже запрос работает надлежащим образом и возвращает необходимые записи / результаты:

Perf
| search CounterName:"Free*bytes" and (InstanceName=="C:" or InstanceName=="D:")

Однако в приведенном выше запросе нам необходимо повторить InstanceName дважды. Поэтому я попытался выполнить другой запрос (, указанный ниже ), который пытается сделать то же самое, но он не возвращает никаких записей ( NO RESULTS FOUND ):

Perf
| search CounterName:"Free*bytes" and InstanceName==("C:" or "D:")

Почему второй запрос не возвращает никаких результатов? Это из-за выражения ("C:" or "D:"), которое будет вычисляться как логическое значение?

Есть ли способ поиска нескольких строк в столбце ( и выбора этой записи, если присутствует какая-либо строка ) без необходимости повторять имя столбца (, как мы должны были повторить в первом запросе )?

Мы можем выполнить вышеуказанные запросы в режиме онлайн на Log Analytics вДемо-раздел, если необходимо (, однако, может потребоваться логин ).

1 Ответ

2 голосов
/ 28 октября 2019

Оператор or предназначен для использования с логическими выражениями. Использование его со строками не оценивает один или другой результат.

Чтобы достичь того, о чем вы просите, используйте вместо этого оператор in.

Perf
| search CounterName:"Free*bytes" and InstanceName in ("C:","D:")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...