Esercizio - Contare gli eventi usando la funzione count

Completato

È possibile usare una query Kusto per esplorare i set di dati e ottenere informazioni dettagliate. È disponibile un set di dati meteorologici e si vuole confrontare gli eventi per ottenere informazioni dettagliate su questi dati. Qui si scoprirà quanti eventi di un determinato tipo si sono verificati in una determinata area.

Usare la funzione count

Il database di esempio usato include una voce per ogni evento tempesta negli Stati Uniti nel 2007, per un totale di circa 60.000 record.

Per raggruppare questi eventi in blocchi di informazioni, si userà l'operatore summarize. summarize viene usato per tutte le funzioni che aggregano i gruppi di valori di più righe per formare un singolo valore di riepilogo. È possibile riepilogare l'intera tabella, ad esempio, contando il numero di risultati usando la query seguente:

Eseguire la query

Screenshot of count operator general query and results.

È anche possibile riepilogare i dati in gruppi di tipi di eventi simili specificando il modo in cui si vuole raggruppare l'aggregazione. Ad esempio, per contare gli eventi in base allo stato, si scriverà una query in summarizecount per state. La frase precedente è in effetti molto simile alla query stessa. Si userà la funzione di aggregazione denominata count(), che conta il numero di righe per gruppo. Questa funzione genera una nuova colonna che fornisce il numero di eventi raggruppati per stato, rinominati all'interno della query dal nome predefinito count_ a EventCount. La ridenominazione di nuove colonne è una procedura consigliata per rendere le query e i risultati più leggibili.

  1. Copiare e incollare la query nell'editor di query.

    Eseguire la query

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. Eseguire la query selezionando il pulsante Esegui sopra la finestra della query o premendo MAIUSC+INVIO

    Dovrebbero essere visualizzati risultati simili all'immagine seguente:

    Screenshot of count operator usage and results.

Usare le funzioni dcount() e countif()

La query precedente ha restituito il numero di eventi per stato. Esistono tuttavia modi più sofisticati per contare gli eventi.

  • Ad esempio, è possibile contare solo determinati tipi di eventi. La funzione countif() conta i record per i quali un predicato è true. La query che usa countif(DamageCrops > 0) conta il numero di record per i quali il danno alle colture è maggiore di zero.
  • È anche possibile contare tipi distinti di eventi usando la funzione dcount().

È stata creata una query che usa l'operatore summarize con queste funzioni count per rispondere alle domande seguenti:

  • Quanti eventi di tempesta si sono verificati in ogni stato?
  • Quanti eventi in ogni stato hanno causato danni?
  • Quanti tipi diversi di eventi si sono verificati in ogni stato?

Si noti che tutti gli elementi all'interno dell'operatore summarize sono separati da virgole e sono raggruppati per la stessa colonna, in questo caso State (Stato). Le colonne non denominate nell'operatore summarize vengono eliminate. Se si desidera includere altre colonne, denominarle in base a quella in cui vengono riepilogati i dati.

  1. Eseguire la query riportata di seguito:

    Eseguire la query

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

    Dovrebbero essere visualizzati risultati simili all'immagine seguente:

    Screenshot of Kusto query that counts events by state.

  2. Si notino i nomi delle colonne nei risultati. Quale parte della query corrisponde a ciascuna colonna? È possibile notare che la funzione dcount() ha creato una nuova colonna e le ha assegnato il nome Count. Si noterà anche che questo nome è stato usato come colonna per l'operatore sort nella query. Quanti tipi diversi di tempeste si sono verificati in Texas?

Usando l'operatore distinct.

La query precedente ha restituito un conteggio distinto di 27 tipi diversi di tempeste in Texas durante il periodo di tempo coperto da questi dati. Sarebbe interessante eseguire il drill-down e vedere i nomi di tutti questi tipi di tempeste. Per visualizzare un elenco di ogni tipo di evento diverso in Texas, usare l'operatore distinct(), che elenca i valori distinti di una determinata colonna.

  1. Eseguire la query riportata di seguito:

    Eseguire la query

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

    Dovrebbero essere visualizzati risultati simili all'immagine seguente:

    Screenshot of Kusto query using the distinct operator.

  2. Esaminare l'elenco risultante. Alcuni tipi di tempesta sono più sorprendenti di altri?