Übung: Zählen von Ereignissen mithilfe der „Count“-Funktion

Abgeschlossen

Sie können eine Kusto-Abfrage verwenden, um Datasets zu erkunden und Erkenntnisse zu gewinnen. Erinnern Sie sich daran, dass wir über ein meteorologisches Dataset verfügen und Ereignisse vergleichen möchten, um aus diesen Daten Erkenntnisse zu gewinnen. Hier erfahren Sie, wie viele Ereignisse eines bestimmten Typs in einem bestimmten Gebiet aufgetreten sind.

Verwenden der count-Funktion

Die von uns verwendete Beispieldatenbank weist einen Eintrag für jedes Sturmereignis in den USA im Jahr 2007 auf, das ergibt in der Summe rund 60 Tausend Datensätze.

Um diese Ereignisse in Informationsblöcke zu gruppieren, verwenden Sie den summarize-Operator. summarize wird für alle Funktionen verwendet, die Gruppen von Werten aus mehreren Zeilen aggregieren, um einen einzelnen Zusammenfassungswert zu bilden. Sie können beispielsweise die gesamte Tabelle zusammenfassen, indem Sie die Anzahl der Ergebnisse mithilfe der folgenden Abfrage zählen:

Abfrage ausführen

Screenshot: Allgemeine Abfrage und Ergebnisse des count-Operators

Sie können außerdem Daten in Gruppen ähnlicher Ereignistypen zusammenfassen, indem Sie angeben, wie Sie die Aggregation gruppieren möchten. Wenn Sie beispielsweise die Ereignisse nach Status zählen möchten, können Sie eine Abfrage so schreiben: summarize count nach state. Tatsächlich ist der vorhergehende Satz der eigentlichen Abfrage sehr ähnlich. Sie verwenden die Aggregationsfunktion namens count(), die die Anzahl der Zeilen nach Gruppe zählt. Diese Funktion generiert eine neue Spalte, die die Anzahl der Ereignisse gruppiert nach Bundesstaat angibt, die wir innerhalb der Abfrage von count_ (Standardwert) in EventCount umbenannt haben. Es wird empfohlen, neue Spalten umzubenennen, damit die Abfragen und ihre Ergebnisse besser lesbar sind.

  1. Kopieren Sie die Abfrage, und fügen Sie sie in den Abfrage-Editor ein.

    Abfrage ausführen

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. Führen Sie die Abfrage aus, indem Sie entweder die Schaltfläche Ausführen über dem Abfragefenster auswählen oder UMSCHALT+EINGABE drücken.

    Sie sollten Ergebnisse erhalten, die wie in der folgenden Abbildung aussehen:

    Screenshot: Nutzung und Ergebnisse des count-Operators

Verwenden der Funktionen dcount() und countif()

Die vorherige Abfrage hat die Anzahl der Ereignisse pro Bundesstaat zurückgegeben. Es gibt aber raffiniertere Möglichkeiten zum Zählen von Ereignissen.

  • Beispielsweise könnten Sie nur bestimmte Arten von Ereignissen zählen. Die countif()-Funktion zählt Datensätze, für die ein Prädikat wahr ist. Mit countif(DamageCrops > 0) würde die Abfrage die Anzahl der Datensätze zählen, in denen die Ernteschäden größer als null sind.
  • Darüber hinaus können Sie verschiedene Arten von Ereignissen mithilfe der dcount()-Funktion zählen.

Wir haben eine Abfrage erstellt, die den summarize-Operator mit diesen Zählfunktionen verwendet, um die folgenden Fragen zu beantworten:

  • Wie viele Sturmereignisse sind in jedem Bundesstaat aufgetreten?
  • Wie viele Ereignisse in jedem Bundesstaat haben Schäden verursacht?
  • Wie viele verschiedene Arten von Ereignissen sind in jedem Bundesstaat aufgetreten?

Beachten Sie, dass alle Elemente innerhalb des Zusammenfassungsoperators durch Kommas getrennt sind und nach der gleichen Spalte gruppiert werden, in diesem Fall State. Spalten, die nicht im summarize-Operator genannt sind, werden verworfen. Wenn Sie weitere Spalten einschließen möchten, führen Sie sie nach der Spalte an, in der Daten zusammengefasst werden.

  1. Führen Sie die folgende Abfrage aus:

    Abfrage ausführen

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

    Sie sollten Ergebnisse erhalten, die wie in der folgenden Abbildung aussehen:

    Screenshot: Kusto-Abfrage, mit der Ereignisse nach Staat gezählt werden

  2. Beachten Sie die Spaltennamen in den Ergebnissen. Welcher Teil der Abfrage entspricht den einzelnen Spalten? Sie sehen, dass die Funktion dcount() eine neue Spalte mit dem Namen Count erstellt hat. Sie werden außerdem bemerken, dass Sie diesen Namen als Spalte für den sort-Operator in der Abfrage verwendet haben. Wie viele verschiedene Arten von Stürmen waren in Texas aufgetreten?

Verwenden Sie den distinct-Operator

Die vorherige Abfrage hat eine eindeutige Anzahl von 27 verschiedenen Arten von Stürmen in Texas für den Zeitraum zurückgegeben, der von diesen Daten abgedeckt wird. Es wäre interessant, das weiter im Detail zu untersuchen und die Namen all dieser verschiedenen Sturmarten anzuzeigen. Wenn Sie eine Liste aller verschiedenen Ereignistypen in Texas anzeigen möchten, verwenden Sie den distinct()-Operator, der die distinkten Werte einer bestimmten Spalte auflistet.

  1. Führen Sie die folgende Abfrage aus:

    Abfrage ausführen

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

    Sie sollten Ergebnisse erhalten, die wie in der folgenden Abbildung aussehen:

    Screenshot: Kusto-Abfrage unter Verwendung des distinct-Operators

  2. Sehen Sie sich die resultierende Liste an. Hat einer dieser Sturmtypen Sie überrascht?