Freigeben über


Tutorial: Kennenlernen 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 Lernprogramm ist eine Einführung in die wesentlichen KQL-Operatoren, die für den Zugriff auf und die Analyse Ihrer Daten verwendet werden.

Spezifischere Anleitungen 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 geteilt:

In diesem Tutorial lernen Sie Folgendes:

Die Beispiele in diesem Lernprogramm verwenden die StormEvents Tabelle, die im Hilfecluster öffentlich verfügbar ist. Um ihre eigenen Daten zu erkunden, erstellen Sie Ihren eigenen kostenlosen Cluster.

Voraussetzungen

Zeilen zählen

Beginnen Sie, indem Sie den Count-Operator verwenden, um die Anzahl der Sturmdatensätze in der StormEvents Tabelle zu finden.

StormEvents 
| count

Ausgabe

Anzahl
59066

Sehen Sie sich ein Beispiel für Daten an

Verwenden Sie den Take-Operator , um ein Beispiel von Datensätzen anzuzeigen, um einen Überblick über die Daten zu erhalten. Dieser Operator gibt eine angegebene Anzahl beliebiger Zeilen aus der Tabelle zurück, die für die Vorschau der allgemeinen Datenstruktur und des Inhalts nützlich sein können.

StormEvents 
| take 5

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

StartTime EndTime EpisodeId EventId Staat 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 Waterspout ...
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 project ist oft effizienter und einfacher zu lesen als das Anzeigen aller Spalten.

StormEvents
| take 5
| project State, EventType, DamageProperty

Ausgabe

Staat EventType DamageProperty
ATLANTIC SOUTH Waterspout 0
FLORIDA Starker Regen 0
FLORIDA Tornado 6200000
GEORGIA Sturm 2.000
MISSISSIPPI Sturm 20000

Eindeutige Werte auflisten

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

StormEvents 
| distinct EventType

Es gibt 46 Arten von Stürmen in der Tabelle. Hier ist ein Beispiel von 10 davon.

EventType
Sturm
Hagel
Überschwemmung
Dürre
Winterwetter
Winter Storm
Heavy Snow
Starker Wind
Frost/Freeze
Hochwasser
...

Filtern nach Bedingung

Der Ort, an dem Operator Zeilen mit Daten basierend auf bestimmten Kriterien filtert.

In der folgenden Abfrage wird nach Sturmereignissen in einem bestimmten Bereich StateEventTypegesucht.

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

Es gibt 146 Ereignisse, die diesen Bedingungen entsprechen. Hier ist ein Beispiel von 5 davon.

StartTime EndTime Staat 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 oberen Überschwemmungen in Texas anzuzeigen, die den größten Schaden verursachten, verwenden Sie den Sortieroperator , um die Zeilen basierend auf der DamageProperty Spalte in absteigender Reihenfolge anzuordnen. Die Standardsortierreihenfolge ist absteigend. Geben Sie ascan, um in aufsteigender Reihenfolge zu sortieren.

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

Output

StartTime EndTime Staat 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 zurück, die nach der angegebenen Spalte sortiert sind.

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

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

Output

StartTime EndTime Staat 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 sich hier befinden topwhere , erhalten Sie unterschiedliche Ergebnisse. Dies liegt daran, dass die Daten von jedem Operator in der Reihenfolge transformiert werden. Weitere Informationen finden Sie unter tabellarischen Ausdrucksanweisungen.

Erstellen von berechneten Spalten

Das Projekt und die Erweiterungsoperatoren können beide berechnete Spalten erstellen.

Wird project verwendet, um nur die Anzuzeigenden Spalten anzugeben und extend die berechnete Spalte an das Ende der Tabelle anzufügen.

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

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

Output

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 Überschwemmung, die den größten Schaden verursacht hat, auch die längste Überschwemmung war.

Wird verwendet 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

Output

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

Statische Zuordnung ist eine nützliche Technik zum Ändern der Darstellung Ihrer Ergebnisse. In KQL besteht eine Möglichkeit zum Ausführen einer statischen Zuordnung darin, ein dynamisches Wörterbuch und Accessoren zu 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]

Output

EventId Quelle FriendlyName
68796 Emergency Manager Öffentlich
... ... ...
72609 Hilfsunternehmen Privat
... ... ...

Nächster Schritt

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