Tutorial: Erlernen gängiger Operatoren

Kusto-Abfragesprache (KQL) wird verwendet, um Abfragen in Azure Data Explorer, Azure Monitor Log Analytics, Azure Sentinel und mehr zu schreiben. Dieses Tutorial enthält eine Einführung in die wesentlichen KQL-Operatoren, die für den Zugriff auf und die Analyse Ihrer Daten verwendet werden.

Eine genauere Anleitung zum Abfragen von Protokollen in Azure Monitor finden Sie unter Erste Schritte mit Protokollabfragen.

Hinweis

Können Sie die gesuchten Informationen nicht finden? Dieser Artikel wurde kürzlich wie folgt aufgeteilt:

In diesem Tutorial lernen Sie Folgendes:

In den Beispielen in diesem Tutorial wird die StormEvents Tabelle verwendet, die im Hilfecluster öffentlich verfügbar ist. Um mit Ihren eigenen Daten zu untersuchen, erstellen Sie Einen eigenen kostenlosen Cluster.

Voraussetzungen

  • Ein Microsoft-Konto oder Microsoft Entra Benutzeridentität für die Anmeldung beim Hilfecluster

Zeilen zählen

Verwenden Sie zunächst den Count-Operator , um die Anzahl der Storm-Datensätze in der StormEvents Tabelle zu ermitteln.

StormEvents 
| count

Ausgabe

Anzahl
59066

Sehen Sie sich ein Beispiel für Daten an.

Um ein Gefühl für die Daten zu erhalten, verwenden Sie den Take-Operator , um eine Stichprobe von Datensätzen anzuzeigen. Dieser Operator gibt eine angegebene Anzahl beliebiger Zeilen aus der Tabelle zurück, was für die Vorschau der allgemeinen Datenstruktur und des Inhalts nützlich sein kann.

StormEvents 
| take 5

In der folgenden Tabelle sind nur 6 der 22 zurückgegebenen Spalten aufgeführt. Führen Sie die Abfrage aus, um die vollständige Ausgabe anzuzeigen.

StartTime EndTime EpisodeId EventId State EventType ...
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tornado ...
2007-12-20T07:50:00Z 2007-12-20T07:53:00Z 12554 68796 MISSISSIPPI Sturm ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIA Sturm ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTIC SOUTH Wasserhose ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Starker Regen ...

Auswählen einer Teilmenge von Spalten

Verwenden Sie den Projektoperator , um die Ansicht zu vereinfachen und eine bestimmte Teilmenge von Spalten auszuwählen. Die Verwendung von project ist häufig effizienter und einfacher zu lesen als das Anzeigen aller Spalten.

StormEvents
| take 5
| project State, EventType, DamageProperty

Ausgabe

State EventType DamageProperty
ATLANTIC SOUTH Wasserhose 0
FLORIDA Starker Regen 0
FLORIDA Tornado 6200000
GEORGIA Sturm 2000
MISSISSIPPI Sturm 20000

Auflisten eindeutiger Werte

Es scheint, dass es mehrere Arten von Stürmen gibt, die auf den Ergebnissen der vorherigen Abfrage basieren. Verwenden Sie den eindeutigen Operator, um alle eindeutigen Sturmtypen aufzulisten.

StormEvents 
| distinct EventType

Die Tabelle enthält 46 Arten von Stürmen. Hier sehen Sie ein Beispiel von 10 von ihnen.

EventType
Sturm
Hagel
Überschwemmung
Dürre
Winterwetter
Wintersturm
Starker Schnee
Starker Wind
Frost/Frieren
Hochwasser
...

Filtern nach Bedingung

Der Where-Operator filtert Datenzeilen basierend auf bestimmten Kriterien.

Die folgende Abfrage sucht nach Stormereignissen in einem bestimmten State einer bestimmten EventType.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty

Es gibt 146 Ereignisse, die diesen Bedingungen entsprechen. Hier sehen Sie ein Beispiel von 5 von ihnen.

StartTime EndTime State EventType DamageProperty
2007-01-13T08:45:00Z 2007-01-13T10:30:00Z TEXAS Hochwasser 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Hochwasser 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Hochwasser 0
2007-01-15T22:00:00Z 2007-01-16T22:00:00Z TEXAS Hochwasser 20000
2007-03-12T02:30:00Z 2007-03-12T06:45:00Z TEXAS Hochwasser 0
... ... ... ... ...

Ergebnisse sortieren

Um die obersten Überschwemmungen in Texas anzuzeigen, die den größten Schaden verursacht haben, verwenden Sie den Sortieroperator , um die Zeilen basierend auf der DamageProperty Spalte in absteigender Reihenfolge anzuordnen. Die Standardsortierreihenfolge ist absteigend. Um in aufsteigender Reihenfolge zu sortieren, geben Sie an asc.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Ausgabe

StartTime EndTime State EventType DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Hochwasser 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Hochwasser 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Hochwasser 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Hochwasser 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Hochwasser 750000
... ... ... ... ...

Abrufen der obersten n Zeilen

Der oberste Operator gibt die ersten n Zeilen nach der angegebenen Spalte sortiert zurück.

Die folgende Abfrage gibt die fünf Texas-Überschwemmungen zurück, die die am meisten beschädigte Eigenschaft verursacht haben.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Ausgabe

StartTime EndTime State EventType DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Hochwasser 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Hochwasser 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Hochwasser 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Hochwasser 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Hochwasser 750000

Hinweis

Die Reihenfolge der Operatoren ist wichtig. Wenn Sie hier voranstellen topwhere , erhalten Sie unterschiedliche Ergebnisse. Dies liegt daran, dass die Daten von jedem Operator in der Reihenfolge transformiert werden. Weitere Informationen finden Sie unter Tabellenausdrucksanweisungen.

Erstellen berechneter Spalten

Die Operatoren project und extend können sowohl berechnete Spalten erstellen.

Verwenden Sie project , um nur die Spalten anzugeben, die Sie anzeigen möchten, und verwenden Sie extend , um die berechnete Spalte am Ende der Tabelle anzufügen.

Die folgende Abfrage erstellt eine berechnete Duration Spalte mit dem Unterschied zwischen StartTime und EndTime. Da wir nur einige ausgewählte Spalten anzeigen möchten, ist in diesem Fall die Verwendung project von die bessere Wahl.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty

Ausgabe

StartTime EndTime Duration DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z 1.01:30:00 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z 12:00:00 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z 05:00:00 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z 08:00:00 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z 03:00:00 750000

Wenn Sie sich die berechnete Duration Spalte ansehen, stellen Sie möglicherweise fest, dass die Flut, die die meisten Schäden verursacht hat, auch das längste Hochwasser war.

Verwenden Sie extend , um die berechnete Duration Spalte zusammen mit allen anderen Spalten anzuzeigen. Die Duration Spalte wird als letzte Spalte hinzugefügt.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime

Ausgabe

StartTime EndTime ... Duration
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z ... 1.01:30:00
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z ... 12:00:00
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z ... 05:00:00
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z ... 08:00:00
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z ... 03:00:00

Zuordnen von Werten aus einem Satz zum anderen

Die statische Zuordnung ist ein nützliches Verfahren zum Ändern der Darstellung Ihrer Ergebnisse. In KQL können Sie eine statische Zuordnung durchführen, indem Sie ein dynamisches Wörterbuch und Accessoren verwenden, um Werte von einem Satz zu einem anderen zuzuordnen.

let sourceMapping = dynamic(
  {
    "Emergency Manager" : "Public",
    "Utility Company" : "Private"
  });
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]

Ausgabe

EventId `Source` FriendlyName
68796 Katastrophenschutz Öffentlich
... ... ...
72609 Versorgungsunternehmen Privat
... ... ...

Nächster Schritt

Nachdem Sie nun mit den Grundlagen des Schreibens von Kusto-Abfragen vertraut sind, fahren Sie mit dem nächsten Tutorial fort, und erfahren Sie, wie Sie Aggregationsfunktionen verwenden, um tiefere Einblicke in Ihre Daten zu erhalten.