Compartilhar via


Plug-in pivot

Gira uma tabela transformando os valores exclusivos de uma coluna na tabela de entrada em várias colunas na tabela de saída e executa agregações conforme necessário em quaisquer valores de coluna restantes que aparecerão na saída final.

Observação

Se o OutputSchema não for especificado, o esquema de saída do pivot plug-in será baseado nos dados de entrada. Portanto, várias execuções do plugin usando entradas de dados diferentes, podem produzir diferentes esquemas de saída. Isso também significa que a consulta que está fazendo referência a colunas descompactadas pode ficar 'quebrada' a qualquer momento. Por esse motivo, não recomendamos usar este plugin para trabalhos de automação sem especificar a função OutputSchema.

Sintaxe

T | evaluate pivot(pivotColumn[, aggregationFunction] [,column1 [,column2 ... ]]) [: OutputSchema]

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
Coluna dinâmica string ✔️ A coluna a ser girada. Cada valor exclusivo desta coluna será uma coluna na tabela de saída.
aggregationFunction string Uma função de agregação usada para agregar várias linhas na tabela de entrada a uma única linha na tabela de saída. Funções atualmente suportadas: min(), max(), take_any(), sum()dcount()avg()variance()stdev(), make_list(), make_bag()make_set()count(), . O padrão é count().
coluna1, coluna2, ... string Um nome de coluna ou uma lista separada por vírgulas de nomes de coluna. A tabela de saída conterá uma coluna adicional por cada coluna especificada. O padrão são todas as colunas que não sejam a coluna pivotada e a coluna de agregação.
OutputSchema Os nomes e tipos para as colunas esperadas da saída do pivot plugin.

Sintaxe: ( ColumnName : ColumnType [, ...])

A especificação do esquema esperado otimiza a execução da consulta por não precisar primeiro executar a consulta real para explorar o esquema. Um erro será gerado se o esquema de tempo de execução não corresponder ao esquema OutputSchema .

Devoluções

Pivot retorna a tabela girada com colunas especificadas (column1, column2, ...) mais todos os valores exclusivos das colunas dinâmicas. Cada célula para as colunas dinâmicas conterá o cálculo da função agregada.

Exemplos

Pivotar por uma coluna

Para cada EventType e State começando com 'AL', conte o número de eventos desse tipo nesse estado.

StormEvents
| project State, EventType
| where State startswith "AL"
| where EventType has "Wind"
| evaluate pivot(State)

Saída

EventType ALABAMA ALASCA
Thunderstorm Wind 352 1
Vento Forte 0 95
Frio Extremo/Vento Frio 0 10
Strong Wind 22 0

Pivotar por uma coluna com função de agregação

Para cada EventType e Estado começando com 'AR', exiba o número total de mortes diretas.

StormEvents
| where State startswith "AR"
| project State, EventType, DeathsDirect
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect))

Saída

EventType ARKANSAS ARIZONA
Chuva Forte 1 0
Thunderstorm Wind 1 0
Lightning 0 1
Saturação de Flash 0 6
Strong Wind 1 0
Calor 3 0

Pivotar por uma coluna com função de agregação e uma única coluna adicional

O resultado é idêntico ao exemplo anterior.

StormEvents
| where State startswith "AR"
| project State, EventType, DeathsDirect
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect), EventType)

Saída

EventType ARKANSAS ARIZONA
Chuva Forte 1 0
Thunderstorm Wind 1 0
Lightning 0 1
Saturação de Flash 0 6
Strong Wind 1 0
Calor 3 0

Especificar a coluna dinâmica, a função de agregação e várias colunas adicionais

Para cada tipo de evento, fonte e estado, somar o número de mortes diretas.

StormEvents
| where State startswith "AR"
| where DeathsDirect > 0
| evaluate pivot(State, sum(DeathsDirect), EventType, Source)

Saída

EventType Origem ARKANSAS ARIZONA
Chuva Forte Gerenciador de emergência 1 0
Thunderstorm Wind Gerenciador de emergência 1 0
Lightning Jornal 0 1
Saturação de Flash Spotter Treinado 0 2
Saturação de Flash Mídia Broadcast 0 3
Saturação de Flash Jornal 0 1
Strong Wind Aplicação da lei 1 0
Calor Jornal 3 0

Pivotar com um esquema de saída definido por consulta

O exemplo a seguir seleciona colunas específicas na tabela StormEvents. Ele usa uma definição de esquema explícita que permite que várias otimizações sejam avaliadas antes de executar a consulta real.

StormEvents
| project State, EventType
| where EventType has "Wind"
| evaluate pivot(State): (EventType:string, ALABAMA:long, ALASKA:long)

Saída

EventType ALABAMA ALASCA
Thunderstorm Wind 352 1
Vento Forte 0 95
Vento de tempestade marinha 0 0
Strong Wind 22 0
Frio Extremo/Vento Frio 0 10
Cold/Wind Chill 0 0
Vento Forte Marinho 0 0
Vento Alto Marinho 0 0