Kusto: удалить несоответствующие строки при использовании оператора разбора - PullRequest
0 голосов
/ 30 октября 2019

Я запрашиваю аналитику журналов Azure, используя Kusto, и извлекаю поля с помощью оператора parse, а затем сохраняю только записи, которые были правильно проанализированы:

traces
| parse message with "Search found " people " people in " groupCount " groups"
| where people != "" and groupCount != ""
| order by n desc

Существует ли более краткий способ анализа иотбрасывать несовпадающие строки? Если я анализирую множество столбцов из набора журналов, возможно, содержащих частичные совпадения, это смущение между parse и where становится непростым.

Для сравнения, в SumoLogic, parseОператор автоматически отбрасывает все строки, которые не соответствуют проанализированному шаблону, что создает действительно аккуратные конвейеры:

*
| parse "Search found * people in * groups" as people, groupCount
| order by n desc

1 Ответ

1 голос
/ 03 ноября 2019

В Kusto: оператор 'parse' не выполняет автоматическую фильтрацию строк, которые не соответствуют предоставленному шаблону, и оператор работает так же, как в режиме 'extended' - добавление дополнительных столбцов. Если вы хотите отфильтровать определенную строку - рекомендуется использовать оператор 'where' перед 'parse': это также улучшит производительность, так как 'parse' будет сканировать меньше строк.

traces
| where message startswith 'Search found'
| parse message with "Search found " people " people in " groupCount " groups"
 ...
...