Übersicht über kusto Query Language (KQL)
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Kusto Query Language (KQL) ist ein leistungsfähiges Tool, um Ihre Daten zu untersuchen und Muster zu entdecken, Anomalien und Ausreißer zu identifizieren, statistische Modellierung zu erstellen und vieles mehr. KQL ist eine einfache und dennoch leistungsstarke Sprache zum Abfragen strukturierter, halbstrukturierter und unstrukturierter Daten. Die Sprache ist ausdrucksstark, leicht zu lesen und zu verstehen, die Abfrageabsicht zu verstehen und für die Erstellungsumgebung optimiert. Kusto Query Language ist optimal für die Abfrage von Telemetrie, Metriken und Protokollen mit umfassender Unterstützung für die Textsuche und Analyse, Zeitreihenoperatoren und Funktionen, Analysen und Aggregation, Geospatial-, Vektor-Ähnlichkeitssuchen und viele andere Sprachkonstrukte, die die optimale Sprache für datenanalysen bieten. Die Abfrage verwendet Schemaentitäten, die in einer Hierarchie ähnlich wie SQLs organisiert sind: Datenbanken, Tabellen und Spalten.
Dieser Artikel enthält eine Erläuterung der Abfragesprache und bietet praktische Übungen, mit der Sie mit dem Schreiben von Abfragen beginnen können. Um auf die Abfrageumgebung zuzugreifen, verwenden Sie die Azure Data Explorer-Web-UI. Informationen zur Verwendung von KQL finden Sie im Lernprogramm: Lernen Sie allgemeine Operatorenkennen.
Dieser Artikel enthält eine Erläuterung der Abfragesprache und bietet praktische Übungen, mit der Sie mit dem Schreiben von Abfragen beginnen können. Verwenden Sie die KQL-Abfrageset-, um auf die Abfrageumgebung zuzugreifen. Informationen zur Verwendung von KQL finden Sie im Lernprogramm: Lernen Sie allgemeine Operatorenkennen.
Was ist eine Kusto-Abfrage?
Eine Kusto-Abfrage ist eine schreibgeschützte Anforderung zum Verarbeiten von Daten und Zurückgeben von Ergebnissen. Die Anforderung wird im Nur-Text-Format mit einem Datenflussmodell angegeben, das einfach zu lesen, zu erstellen und zu automatisieren ist. Kusto-Abfragen werden aus einer oder mehreren Abfrageanweisungen erstellt.
Was ist eine Abfrage-Anweisung?
Es gibt drei Arten von Benutzerabfrageanweisungen :
- Eine tabellarische Ausdrucksanweisung
- Eine let-Anweisung
- Eine set-Anweisung
Alle Abfrageanweisungen werden durch ein ;
(Semikolon) getrennt und wirken sich nur auf die abfrage aus.
Anmerkung
Informationen zu Anwendungsabfrageanweisungen finden Sie unter Application-Abfrageanweisungen.
Die am häufigsten verwendete Abfrageausweisung ist ein tabellarischer Ausdruck Anweisung, was bedeutet, dass sowohl die Eingabe als auch die Ausgabe aus Tabellen oder tabellarischen Datasets besteht. Tabellarische Anweisungen enthalten null oder mehr Operatoren, von denen jede mit einer tabellarischen Eingabe beginnt und eine tabellarische Ausgabe zurückgibt. Operatoren werden von einem |
(Pipe) sequenziert. Datenflüsse oder werden von einem Operator an die nächste weitergeleitet. Die Daten werden bei jedem Schritt gefiltert oder bearbeitet und dann in den folgenden Schritt eingespeist.
Es ist wie ein Trichter, bei dem Sie mit einer gesamten Datentabelle beginnen. Jedes Mal, wenn die Daten einen anderen Operator durchlaufen, werden sie gefiltert, neu angeordnet oder zusammengefasst. Da die Weitergabe von Informationen von einem Operator an einen anderen sequenziell ist, ist die Reihenfolge des Abfrageoperators wichtig und kann sich sowohl auf Ergebnisse als auch auf die Leistung auswirken. Am Ende des Trichters verbleiben Sie mit einer optimierten Ausgabe.
Sehen wir uns eine Beispielabfrage an.
StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Zählen |
---|
28 |
Anmerkung
Bei KQL wird die Groß-/Kleinschreibung für alles beachtet – Tabellennamen, Tabellenspaltennamen, Operatoren, Funktionen usw.
Schlüsselwörter können als Bezeichner verwendet werden, indem sie in Klammern und Anführungszeichen gesetzt werden (['
und ']
oder ["
und "]
). Beispiel: ['where']
. Weitere Informationen finden Sie unter Benennungsregeln für Bezeichner
Diese Abfrage weist eine einzelne tabellarische Ausdrucksanweisung auf. Die Anweisung beginnt mit einem Verweis auf eine Tabelle namens StormEvents und enthält mehrere Operatoren, where
und count
, die jeweils durch eine Pfeife getrennt sind. Die Datenzeilen für die Quelltabelle werden nach dem Wert der Spalte StartTime gefiltert und dann nach dem Wert der Spalte Status gefiltert. In der letzten Zeile gibt die Abfrage eine Tabelle mit einer einzelnen Spalte und einer einzelnen Zeile zurück, die die Anzahl der verbleibenden Zeilen enthält.
Weitere Kusto-Abfragen finden Sie unter Lernprogramm: Schreiben von Kusto-Abfragen.
Verwaltungsbefehle
Im Gegensatz zu Kusto-Abfragen sind Verwaltungsbefehle Anforderungen an Kusto, Daten oder Metadaten zu verarbeiten oder zu ändern. Der folgende Verwaltungsbefehl erstellt beispielsweise eine neue Kusto-Tabelle mit zwei Spalten, Level
und Text
:
.create table Logs (Level:string, Text:string)
Verwaltungsbefehle verfügen über eine eigene Syntax, die nicht Teil der Kusto Query Language-Syntax ist, obwohl die beiden Konzepte häufig verwendet werden. Insbesondere werden Verwaltungsbefehle von Abfragen unterschieden, indem das erste Zeichen im Text des Befehls das Punktzeichen (.
) sein soll (das keine Abfrage starten kann).
Diese Unterscheidung verhindert viele Arten von Sicherheitsangriffen, einfach weil sie das Einbetten von Verwaltungsbefehlen in Abfragen verhindert.
Nicht alle Verwaltungsbefehle ändern Daten oder Metadaten. Die große Klasse von Befehlen, die mit .show
beginnen, werden zum Anzeigen von Metadaten oder Daten verwendet. Beispielsweise gibt der Befehl .show tables
eine Liste aller Tabellen in der aktuellen Datenbank zurück.
Weitere Informationen zu Verwaltungsbefehlen finden Sie Übersicht über Verwaltungsbefehle.
KQL in anderen Diensten
KQL wird von vielen anderen Microsoft-Diensten verwendet. Spezifische Informationen zur Verwendung von KQL in diesen Umgebungen finden Sie unter den folgenden Links:
- Protokollabfragen in Azure Monitor
- Kusto Query Language in Microsoft Sentinel
- Grundlegendes zur Azure Resource Graph-Abfragesprache
- proaktiv nach Bedrohungen mit erweiterter Suche in Microsoft 365 Defender
- CMPivot-Abfragen