Оператор fork

Параллельно запускает несколько операторов-получателей.

Синтаксис

T | fork [имя = ] ( вложенный запрос ) [имя = ] ( вложенный запрос ) ...

Аргументы

  • вложенный запрос является нисходящим конвейером операторов запроса
  • имя является временным именем для таблицы результатов вложенного запроса

Возвращаемое значение

Несколько результирующих таблиц, по одной для каждого вложенного запроса.

Поддерживаемые операторы

as, count, extend, parse, where, take, project, project-away, project-keep, project-rename, project-reorder, summarize, top, top-nested, sort, mv-expand, reduce

Примечания

  • materialize функцию можно использовать в качестве замены при использовании join или union при обрезке разветвления. Входной поток будет кэшироваться материализации, а затем кэшированное выражение можно использовать в обрезке соединения и объединения.

  • Имя, заданное name аргументом или as оператором using, будет использоваться в качестве имени для вкладки результатов в Kusto.Explorer инструменте.

  • Старайтесь не использовать fork с одним вложенным запросом.

  • Предпочитать использование пакета с операторами materialize табличных выражений над fork оператором.

Примеры

KustoLogs
| where Timestamp > ago(1h)
| fork
    ( where Level == "Error" | project EventText | limit 100 )
    ( project Timestamp, EventText | top 1000 by Timestamp desc)
    ( summarize min(Timestamp), max(Timestamp) by ActivityID )

// In the following examples the result tables will be named: Errors, EventsTexts and TimeRangePerActivityID
KustoLogs
| where Timestamp > ago(1h)
| fork
    ( where Level == "Error" | project EventText | limit 100 | as Errors )
    ( project Timestamp, EventText | top 1000 by Timestamp desc | as EventsTexts )
    ( summarize min(Timestamp), max(Timestamp) by ActivityID | as TimeRangePerActivityID )

 KustoLogs
| where Timestamp > ago(1h)
| fork
    Errors = ( where Level == "Error" | project EventText | limit 100 )
    EventsTexts = ( project Timestamp, EventText | top 1000 by Timestamp desc )
    TimeRangePerActivityID = ( summarize min(Timestamp), max(Timestamp) by ActivityID )

Эта возможность не поддерживается в Azure Monitor