Запрос Кусто: Как суммировать по столбцам, а затем проверить, есть ли определенные записи в группе - PullRequest
0 голосов
/ 27 апреля 2020

Я довольно новичок в Kusto, и мне нужно запросить определенные записи в Log Analytics.

Проблема: Необходимо подвести итог по столбцу ActivityId, а затем проверить, если список RunbookNames (другой столбец) имя) находятся в группе. Я хочу все активные, которые имеют Foo AND Bar. Если он не содержит обоих, тогда он не удовлетворяет критериям.

Что-то аналогичное запросу SQL, у нас есть предложение GROUP BY затем HAVING.

Есть идеи?

Пример данных :

| ActivityId | RunbookName         | Result            |
|------------|---------------------|-------------------|
| 5271D9E9   | Foo                 | State 2, Status 1 |
| 5271D9E9   | Foo                 | State 2, Status 1 |
| 5271D9E9   | Bar                 | State 2, Status 3 |
| 394B044    | Fooey               | State 2, Status 1 |
| 394B044    | Dooey               | State 2, Status 1 |
| D94321B    | Dooey               | State 2, Status 1 |
| 9E4371A    | Foo                 | State 2, Status 1 |
...

**Expected Results**:
| ActivityId | RunbookName         | Result            |
|------------|---------------------|-------------------|
| 5271D9E9   | Foo                 | State 2, Status 1 |
| 5271D9E9   | Foo                 | State 2, Status 1 |
| 5271D9E9   | Bar                 | State 2, Status 3 |

1 Ответ

1 голос
/ 27 апреля 2020

Судя по заданным входным и выходным данным и вашим пояснениям в комментарии, следующий запрос может дать вам направление.

let RunbookNames = dynamic("Foo", "Bar");
T
| SUMMARIZE r = make_set(RunbookName) by ActivityId
| where array_length(set_intersect(r, RunbookNames)) == array_length(RunbookNames)
| mv-expand RunbookName = r
...