Exercício – Contar eventos usando a função count

Concluído

Uma consulta Kusto pode ser usada para explorar conjuntos de dados e obter insights. Lembre-se de que temos um conjunto de dados meteorológicos e queremos comparar eventos para obter insights com base nesses dados. Aqui, você descobrirá quantos eventos de um determinado tipo ocorreram em uma área específica.

Usar a função count

O banco de dados de exemplo que estamos usando tem uma entrada para cada evento de tempestade nos EUA em 2007, totalizando cerca de 60 mil registros.

Para agrupar esses eventos em partes de informações, você usará o operador summarize. summarize é usado para todas as funções que agregam grupos de valores de várias linhas para formar um só valor de resumo. Você pode resumir a tabela inteira, por exemplo, contando o número de resultados usando a seguinte consulta:

Executar a consulta

Captura de tela da consulta geral e dos resultados do operador de contagem.

Você também pode resumir dados em grupos de tipos semelhantes de eventos especificando a maneira como deseja agrupar a agregação. Por exemplo, para contar eventos por estado, você escreverá uma consulta para summarize count por state. Na verdade, a frase anterior é muito semelhante à consulta real. Você usará a função de agregação chamada count(), que conta o número de linhas por grupo. Esta função gera uma nova coluna que fornece a contagem de eventos agrupados por estado, que renomeamos dentro da consulta do nome padrão de count_ para EventCount. Renomear novas colunas é uma prática recomendada para tornar as consultas e seus resultados mais legíveis.

  1. Copie e cole a consulta no editor de consultas.

    Executar a consulta

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. Execute-a selecionando o botão Executar acima da janela de consulta ou pressionando Shift + Enter

    Você deve obter resultados parecidos com a seguinte imagem:

    Captura de tela do uso e resultados do operador de contagem.

Usar as funções dcount() e countif()

A consulta anterior retornou o número de eventos por estado. No entanto, há maneiras mais sofisticadas de contar eventos.

  • Por exemplo, você pode contar apenas determinados tipos de eventos. A função countif() conta os registros para os quais um predicado é verdadeiro. A consulta usando countif(DamageCrops > 0) contaria o número de registros para os quais os danos a plantações são maiores que zero.
  • Você também pode contar tipos distintos de eventos usando a função dcount().

Criamos uma consulta que usa o operador summarize com essas funções de contagem para responder às seguintes perguntas:

  • Quantos eventos de tempestade aconteceram em cada estado?
  • Quantos eventos em cada estado causaram danos?
  • Quantos tipos de eventos diferentes aconteceram em cada estado?

Observe que todos os elementos dentro do operador de resumo são separados por vírgulas e agrupados segundo a mesma coluna, nesse caso, State. Colunas não nomeadas no operador summarize são removidas. Se quiser incluir outras colunas, nomeie-as de acordo com a coluna na qual os dados são resumidos.

  1. Execute a seguinte consulta:

    Executar a consulta

    StormEvents
    | summarize count(),
        EventsWithDamageToCrops = countif(DamageCrops > 0),
        Count = dcount(EventType) by State
    | sort by Count
    

    Você deve obter resultados parecidos com a seguinte imagem:

    Captura de tela da consulta Kusto que conta eventos por estado.

  2. Observe os nomes das colunas nos resultados. Qual parte da consulta corresponde a cada coluna? Você pode ver que a função dcount() criou uma nova coluna e deu a ela o nome Count. Observe também que você usou esse nome como a coluna do operador sort na consulta. Quantos tipos diferentes de tempestades ocorreram no Texas?

Use o operador distinct

A consulta anterior retornou uma contagem de 27 tipos diferentes de tempestades no Texas durante o período coberto por esses dados. Seria interessante fazer uma busca mais detalhada e ver os nomes de todos esses tipos de tempestades. Para ver uma lista de cada tipo de evento diferente no Texas, use o operador distinct(), que lista os valores distintos de uma coluna específica.

  1. Execute a seguinte consulta:

    Executar a consulta

    StormEvents
    | where State == "TEXAS"
    | distinct EventType
    | sort by EventType asc
    

    Você deve obter resultados parecidos com a seguinte imagem:

    Captura de tela da consulta Kusto usando o operador distinct.

  2. Confira a lista resultante. Algum dos tipos de tempestade surpreendeu você?