Exercice - Compter des événements à l’aide de la fonction count

Effectué

Vous pouvez utiliser une requête Kusto pour explorer des jeux de données et obtenir des insights. Rappelez-vous que nous avons un jeu de données météorologiques et que nous voulons comparer les événements pour obtenir des insights à partir de ces données. Ici, vous trouverez le nombre d’événements d’un certain type d’événement qui s’est produit dans une zone particulière.

Utiliser la fonction count

L’exemple de base de données que nous utilisons contient une entrée pour chaque événement de tempête aux États-Unis en 2007, pour un total d’environ 60 000 enregistrements.

Pour regrouper ces événements en blocs d’informations, vous allez utiliser l’opérateur summarize. summarize est utilisé pour toutes les fonctions qui regroupent des groupes de valeurs de plusieurs lignes afin de former une seule valeur récapitulative. Vous pouvez résumer l’ensemble de la table, par exemple, en comptant le nombre de résultats à l’aide de la requête suivante :

Exécuter la requête

Capture d’écran de requête générale d’opérateur Count et résultats.

Vous pouvez également résumer les données en groupes de types d’événements similaires en spécifiant la façon dont vous souhaitez regrouper l’agrégation. Par exemple, pour compter les événements par état, vous pouvez écrire une requête pour faire le total (summarize) de count par state. En fait, la phrase précédente est très similaire à la requête réelle. Vous allez utiliser la fonction d’agrégation appelée count(), qui compte le nombre de lignes par groupe. Cette fonction génère une nouvelle colonne affichant le nombre d’événements regroupés par état que nous avons renommés dans la requête, du nom par défaut count_ en EventCount. Le changement de nom des nouvelles colonnes est une pratique recommandée pour rendre les requêtes et leurs résultats plus lisibles.

  1. Copiez et collez la requête dans votre éditeur de requête.

    Exécuter la requête

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. Exécutez la requête en sélectionnant le bouton Exécuter situé au-dessus de la fenêtre de requête ou en appuyant sur Maj+Entrée.

    Vous devez obtenir des résultats qui ressemblent à l’image suivante :

    Capture d’écran d’utilisation d’opérateur Count et résultats.

Utilisez les fonctions dcount() et countif()

La requête précédente a retourné le nombre d’événements par état. Toutefois, il existe des façons plus sophistiquées de compter les événements.

  • Par exemple, vous pouvez compter uniquement certains types d’événements. La fonction countif() compte les enregistrements pour lesquels un prédicat est vrai. La requête utilisant countif(DamageCrops > 0) compterait le nombre d’enregistrements pour lesquels les dommages aux cultures étaient supérieurs à zéro.
  • Vous pouvez également compter des types distincts d’événements à l’aide de la fonction dcount().

Nous avons construit une requête qui utilise l’opérateur summarize avec ces fonctions de nombre pour répondre aux questions suivantes :

  • Combien d’événements de tempête se sont produits dans chaque état ?
  • Combien d’événements dans chaque état ont causé des dommages ?
  • Combien d’événements différents se sont produits dans chaque état ?

Notez que tous les éléments de l’opérateur de synthèse sont séparés par des virgules et sont regroupés par la même colonne, dans ce cas État. Les colonnes non nommées dans l’opérateur summarize sont supprimées. Si vous souhaitez inclure d’autres colonnes, nommez-les après la colonne sur laquelle les données sont résumées.

  1. Exécutez la requête suivante :

    Exécuter la requête

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

    Vous devez obtenir des résultats qui ressemblent à l’image suivante :

    Capture d’écran de requête Kusto qui compte les événements par état.

  2. Notez les noms des colonnes dans les résultats. Quelle partie de la requête correspond à chaque colonne ? Vous pouvez voir que la fonction dcount() a créé une nouvelle colonne et lui a donné le nom par défaut Nombre. Vous remarquerez également que vous avez utilisé ce nom comme colonne pour l’opérateur sort dans la requête. Combien de types de tempêtes différents se sont produits au Texas ?

Utilisez l’opérateur distinct

La requête précédente a retourné un nombre distinct de 27 types de tempêtes différents au Texas pendant la période couverte par ces données. Il serait intéressant d’explorer davantage et de voir les noms de tous ces types de tempêtes. Pour afficher une liste de chaque type d’événement différent au Texas, utilisez l’opérateur distinct(), qui répertorie les valeurs distinctes d’une colonne particulière.

  1. Exécutez la requête suivante :

    Exécuter la requête

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

    Vous devez obtenir des résultats qui ressemblent à l’image suivante :

    Capture d’écran de requête Kusto utilisant l’opérateur distinct.

  2. Examinez la liste résultante. Avez-vous été surpris par les types de tempêtes ?