BlogKusto Query Language (KQL)

Kusto Query Language (KQL)

Microsoft Kusto Query Language, Azure Data Explorer, SCOM, Log Analytics, Azure Resource Graph – wie hängt das zusammen? Wo sind die Unterschiede?

In nahezu allen Azure-, Big-Data- und ML-Kursen werden die in der Überschrift skizzierten Begriffe und Dienste thematisiert, meist im Zusammenhang der Datenanlyse Dieser Beitrag soll aufgehängt an der Kusto-Query-Language (KQL) kurz und knapp die Zusammenhänge und Unterschiede aufzeigen in der Absicht, dass es auch dir zu einem klaren Verständnis und souveränen Umgang mit den Werkzeugen verhilft.

Der Artikel hat nicht zum Ziel, die genannten Dienste zu erklären. Wir gehen davon aus, dass du grundsätzlich schon mit dem Azure Monitor gearbeitet hast und zwischen Azure Monitor Metric Explorer, Azure Monitor Log Analytics unterscheiden und die Bedeutung der KQL für Log Analytics beurteilen kannst. Viele Details zum Azure Monitor haben wir auch schon https://incas-training.de/blog/wissen-ist-macht-azure-monitor-einsetzenteil-1-uebersicht/ thematisiert.

Kusto Query Language (KQL)

Kusto ist eine Abfragesprache von Microsoft, ähnlich wie auch TSQL eine Abfragesprache ist. Mit KQL kannst du deine Daten untersuchen und darin Muster erkennen oder Anomalien und Ausreißer identifizieren sowie statistische Modelle erstellen und vieles mehr. KQL kommt vor allem bei großen und verteilten Datasets zum Einsatz. Eine KQL-Abfrage verwendet Schemaentitäten, die in einer Hierarchie ähnlich wie SQLs organisiert sind, also mit Datenbanken, Tabellen und Spalten.  Eine typische KQL-Abfrage sieht z. B. so aus:

StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA" 
| count

Abgesehen davon, dass viele Azure-Werkzeuge, wie z. B. Log Analytics über eine integrierte KQL-Abfrage verfügen gibt es im Grunde genommen zweit primäre Werkzeuge, um KQL-Abfragen abzusetzen, der Kusto Explorer und die Weboberfläche des Azure-Analyse-Dienstes „Azure Data Explorer“ (TDE). Dazu kommen Abfrage-Integrationen mit Azure Monitor, Azure Data Lake, Synapse Apache Spark, Apache Spark, Microsoft Power Apps und Azure Data Studio. Ferner gibt es Notebook-Konnektivität für Jupyter-Notebooks, Azure Notebooks und Azure Data Studio.

Kusto Explorer

Der Kusto-Explorer ist eine Windows-Desktopanwendung, die dir hilft, deine Daten mithilfe der Kusto-Abfragesprache in einer benutzerfreundlichen Benutzeroberfläche analysieren zu können. Herunterladen kannst du das Tool hier https://aka.ms/ke. Mit dem Kusto-Explorer kannst du Daten nicht nur abfragen, sondern auch Daten in mehreren Tabellen durchsuchen oder visualisieren und die Ergebnisse von Anfragen per Deep-Link oder E-Mail freigeben.

Der Kusto-Explorer mit dem ADE-Demo-Cluster „Help“

Alternativ kannst du mit einem ClickOnce-fähigen Browser mit https://<your_cluster>/?web=0 auch direkt auf einen  Kusto-Cluster zugreifen. Der Kusto-Cluster ist quasi das Speicher-Backend hinter dem Azure-PaaS-Dienst https://azure.microsoft.com/de-de/products/data-explorer/ Data Explorer du kannst das mit dem von Microsoft betriebenen Demo-Cluster https://help.kusto.windows.net direkt ausprobieren.

Der Azure Data Explorer

Azure Data Explorer

Der Azure Data-Explorer (ADE) bringt zwar wie gesehen auch das zugehörige Web-Frontend mit, ist aber in erster Linie eine vollständig verwaltete, leistungsfähige Big-Data-Analyseplattform. Diese ermöglicht dir das Analysieren großer Datenmengen nahezu in Echtzeit und vereinfacht das Abfragen von Telemetriedaten, Protokollen, Ereignissen, Ablaufverfolgungen und Zeitreihendaten mit sehr hoher Leistung.

Die Compute- und Speicher-Basis des Data Explorer ist die erwähnten Kusto-Cluster. Der Azure Data Explorer partitioniert alle erfassten Daten in Blöcke oder Daten-Shards. Letztere sind horizontale Slices der Zieltabelle. Sobald sich Daten in der Tabelle ansammeln, führt ADE Blöcke automatisch so zusammen, dass sie bis auf Millionen von Datensätzen anwachsen können. Jeder Block wird dann unabhängig von anderen Blöcken codiert und indiziert. Das trägt erheblich zur linearen Skalierung des Erfassungsdurchsatzes bei, da alle Blöcke gleichmäßig auf Cluster-Knoten verteilt und sowohl auf der lokalen SSD als auch im Arbeitsspeicher zwischengespeichert werden. Diese Verteilung optimiert die Kapazität zur Vorbereitung und Ausführung von verteilten und parallelen Abfragen.

Der Azure Data Explorer trennt dabei Speicher- und Compute-Ressourcen, wobei sich persistente Daten stets in Azure Blob Storage befinden, während Compute-Ressourcen temporäre Daten speichern oder als Cache für persistenten Speicher fungieren. Die Trennung bietet den Vorteil, dass Speicher- und Compute-Ressourcen unabhängig horizontal hochskalieren können und dass der Zugriff auf identische Daten über mehrere Compute-Cluster hinweg erfolgen kann. 

Integrationen und Verbindungsaufbau

Der Azure Data Explorer unterstützt dienstübergreifende Abfragen zwischen auch https://learn.microsoft.com/de-de/azure/azure-monitor/platform/data-platform-logs Azure Log Analytics (LA) und zu https://learn.microsoft.com/de-de/azure/azure-monitor/app/app-insights-overview  Application Insights (AI). Du kannst dann den Log Analytics- oder Application Insights-Arbeitsbereich mithilfe von Azure Data Explorer-Abfragetools und in einer dienstübergreifenden Abfrage abfragen.

Für den Verbindungsaufbau z. B. mit dem Kusto-Explorer musst du prinzipiell folgende Fälle unterscheiden;

  1. Für die „normale“ Verbindung zu einem ADE-Cluster nutzt du die URL: https://clustername.kusto.windows.net
  2. Du kannst den Kusto-Explorer aber auch verwenden, um dich zu einem Azure Monitor Log Analytics Workspace zu verbinden. Dann nutzt du die URL:  https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>. Dort kannst Du dann Log-Analytics-Abfragen absetzen:
Log-Analytics-Abfrage im Kusto Explorer

3. Möchtest du aus dem Kusto Explorer zu Application Insights verbinden, machst du das mit der URL: https://ade.applicationinsights.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<ai-app-name>

Beziehung zu Azure Data Explorer zu Log Analytics

Hast du schon die Weboberfläche von Azure Data Explorer genutzt oder bist du bereits mit der Überwachung von Azure-Ressourcen und Azure Monitor vertraut, solltest du auch Log Analytics bereits kennen. Log Analytics basiert auf Azure Data Explorer nutzt demzufolge die gleiche Kusto-Abfragesprache.

Allerdings ergänzt Log Analytics Azure Monitor-spezifische Funktionen, wie beispielsweise das das Filtern nach Zeitbereich oder die Möglichkeit, dass du aus dem Ergebnis einer Abfrage direkt eine neue Warnregel erstellen kannst. Offensichtlich bringen beide Werkzeuge einen eigenen Explorer mit, mit dem du die Struktur der verfügbaren Tabellen durchsuchen können. Der konzeptionelle Unterschied ist dabei Folgender:  

  • Die Webbenutzeroberfläche von Azure Data Explorer arbeitet hauptsächlich mit Tabellen in Azure Data Explorer-Datenbanken, welche letztendlich Kusto Cluster sind.
  • Log Analytics arbeitet mit Tabellen in einem Log Analytics-Arbeitsbereich.

Azure Resource Graph, Azure Resource Graph Explorer

Vielleicht bis du auch schon einmal über den Dienst Azure Resource Graph gestolpert? Hierbei handelt es sich um einen Azure-Dienst, der die Azure-Ressourcenverwaltung durch eine sehr effiziente und leistungsfähige Funktion zur Ressourcenuntersuchung ergänzt und es dir erlaubt, übergreifend für eine bestimmte Menge von Abonnements nach Bedarf Abfragen durchzuführen. So kannst du deine Umgebung noch effektiver verwalten.

Die Abfragen, die du im Azure Ressource-Graph tätigen kannst bieten dir die folgenden Funktionen:

  • Abfragen von Ressourcen mit komplexem Filtern sowie das Gruppieren und Sortieren nach Eigenschaften der Ressource.
  • Interaktives Untersuchen von Ressourcen auf Basis deine Governance-Anforderungen.
  • Bewerten der Auswirkungen der Anwendung von Richtlinien in einer großen Cloudumgebung.
  • Abfragen von Änderungen der Ressourceneigenschaften

Du fragst dich jetzt vielleicht, wo der Unterschied zum Azure Resource Manager liegt, mit dem du ja ebenfalls im Azure-Portal oder mit der Power Shell, bzw. der Azure CLI, sowie über die REST-API nach Resourcen suchen kannst? So ist es für Dich wahrscheinlich alltäglich, mit einem der drei genannten Tools z. B. eine Bestandsaufnahme deine Azure-VMs zu machen?

Eine normale Ressource-Suche über den Azure Resource Manager

Was dir aber vielleicht nicht klar ist, ist Folgendes: der Azure Resource Manager sucht bei Abfragen derzeit nur über die grundlegende Ressourcenfelder. Dazu gehören z. B.:

  • Ressourcenname
  • ID
  • type
  • Ressourcengruppe
  • Subscription
  • Standort

Mit dem Azure Resource Graph hingegen kannst du ….

  • auf sämtliche Eigenschaften zugreifen, die der jeweilige Resource Provider zurück gibt, ohne dass du jeden Ressourcenanbieter einzeln abrufen musst.
  • Du kannst immer die letzten 14 Tage der Änderungen der jeweiligem Ressourcenkonfiguration abfragen. So bekommst du z. B. heraus, welche Eigenschaften wann geändert wurden.

Du kannst dazu z. B. dem Azure Resource Graph Explorer verwenden. Dazu suchst du im Azure-Portal nach „Resource Graph-Explorer“.

Jetzt stellt sich dir sich weiterhin die Frage, was das ganze mit ADE und Kusto zu tun hat? Mit Ersterem gar nichts, aber mit Kusto, denn der Graph Explorer verwendet ebenfalls Kusto als Abfragesprache. Der Explorer eignet sich darüber hinaus zum Erlernen von Kusto, denn du kannst z. B. links im Kategorien-Baum nach einem Ressourcen-Typ fahnden, wie z. B. Ressourcengruppen und der Explorer zeigt dir im Abfrage-Fenster auch gleich die passende Kusto-Abfrage:

Eine KQL-basierte Suche nach Azure-Ressourcen

Gedacht ist das Tool natürlich in erste Linie für komplexe interaktive Abfragen. Außerdem liefert es Ergebnisse gerade bei komplexen Abfragen mit großen Ergebnissätzen viel schneller zurück, als der Azure Resource Manager. Außerdem kannst du z. B.  Abfrageergebnisse speichern oder exportieren.

Kontakt

Dein INCAS Team
Akkordion öffnen
telephone-icon-contact-coaching-box
0800 4772466
email-icon-contact-coaching-box
info@incas-training.de

*“ zeigt erforderliche Felder an

Hidden
Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Schulungen die dich interessieren könnten

Bewertungen

Kundenstimme männlich
Mausolf B.
Struers GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Tolle Schulung - kompetenter Trainer, der geduldig auf alle Fragen einging, diese beantworten konnte und darüber hinaus viele neue Anregungen mit auf den Weg gab. Die Schulung hat Spaß gemacht.
Kundenstimme männlich
Nina P.
GEUTEBRÜCK GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Das Seminar hat meine Erwartungen voll erfüllt. Man hat gemerkt, dass der Trainer Spaß an der Sache und sehr viel Ahnung vom Thema hat. Das Gefühl hat man nicht in allen Schulungen (auf Schulungen im Allgemeinen bezogen).
Kundenstimme männlich
Martin S.
Bundeseisenbahnvermögen
star-participantstar-participantstar-participantstar-participantstar-participant
Das Training zeichnet sich durch einen sehr hohen Praxisbezug und Raum für individuelle Hilfe persönlicher Problemstellungen sowie durch einen engagierten und hoch kompetenten Trainer aus.
Kundenstimme männlich
Lucas F.
Fa. Feld Textil GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Kann man nur weiterempfehlen! In kürzestem Zeitraum lernt man alle Basisdaten konkret und ausführlich.