Esercizio - Selezionare colonne da restituire usando l'operatore project

Completato

Si usano le query Kusto per filtrare i dati e restituire informazioni specifiche.

Tenere presente che sono state esaminate righe arbitrarie di dati per avere un'idea della relativa struttura. In questa unità si apprenderà come scegliere colonne di dati specifiche correlate a tipi di tempesta, posizioni ed effetti dannosi.

Usando l'operatore project.

Se si ricorda, l'esempio di dati meteorologici contiene alcune colonne. Non tutte queste colonne sono significative per questa esplorazione. Si sceglieranno solo alcune colonne da visualizzare. Si userà l'operatore project per definire le colonne da visualizzare nell'output. I nomi delle colonne sono separati da virgole.

  1. Eseguire la query seguente. Questa query assegna un nome e un ordine alle colonne da restituire all'interno dell'operatore project.

    Eseguire la query

    StormEvents
    | project EventType, State, DamageProperty, DamageCrops, InjuriesDirect, InjuriesIndirect
    | take 10
    
  2. Dovrebbero essere visualizzati risultati simili all'immagine seguente:

    Screenshot of project operator results with six columns.

  3. Si noti che nell'output vengono visualizzate solo le colonne indicate nell'operatore project.

Rinominare e definire nuove colonne usando project

Per comprendere l'impatto delle tempeste negli Stati Uniti, si vuole ottenere il numero totale di lesioni e la quantità totale di danni. Con l'operatore project è possibile sommare valori interi da colonne diverse e restituire i risultati in una nuova colonna. È anche possibile rinominare le colonne per renderle più significative per l'analisi.

Ad esempio, esistono altri Paesi/regioni con stati. Potrebbe essere utile rinominare la colonna dello stato in modo che sia chiaro che i risultati interessano solo stati degli Stati Uniti. Si vedrà ora come modificare la query precedente in modo da ottenere il numero totale di lesioni e la quantità di danni per gli Stati Uniti.

  1. Aggiornare la query precedente per creare una nuova colonna che mostra la somma di InjuriesDirect e InjuriesIndirect:

    Injuries=InjuriesDirect+InjuriesIndirect

  2. Procedere allo stesso modo per i due tipi di colonne dei danni sommando i danni alle colture e i danni alle proprietà:

    Damage=DamageCrops+DamageProperty

  3. Passare il puntatore del mouse sul nome della colonna nell'editor di query per visualizzare il tipo di dati contenuto nelle colonne. È possibile usare un operatore numerico per aggiungere i valori perché queste colonne sono di tipo int (integer).

    Screenshot of the data type in a query editor.

  4. Rinominare la colonna State in US_State:

    US_State=State

  5. Esaminare la query aggiornata ed eseguirla. La query completa include calcoli per lesioni, calcoli per danni e ridenominazione della colonna State.

    Eseguire la query

    StormEvents
    | project US_State=State, EventType, Injuries=InjuriesDirect+InjuriesIndirect, Damage=DamageCrops+DamageProperty
    | take 10
    
  6. Dovrebbero essere visualizzati risultati simili all'immagine seguente:

    Screenshot of query results for a project operator that renames columns.

  7. Si noti che la colonna State è stata rinominata in US_State. La colonna Injuries è nuova ed è stata calcolata come somma di InjuriesDirect e InjuriesIndirect.. Anche la colonna Damage è nuova ed è stata calcolata come somma di DamageCrops e DamageProperty.

Usando l'operatore project-away.

Cosa accade se si desidera rimuovere alcune colonne selezionate? Per questa esplorazione non vengono usati gli ID assegnati a ogni episodio ed evento. È possibile rimuovere colonne specifiche usando l'operatore project-away, che indica le colonne da rimuovere, lasciando tutte le colonne rimanenti. È anche possibile usare un carattere jolly, ad esempio | project-away *Id, per rimuovere tutte le colonne che terminano con Id.

  1. Eseguire la query riportata di seguito:

    Eseguire la query

    StormEvents
    | project-away EpisodeId, EventId
    | take 10
    
  2. Controllare i risultati. Tenere presente che le colonne EpisodeId ed EventId sono comprese tra le colonne EndTime e State. Quale di queste colonne viene visualizzata nell'output?