Kusto vs LA

Kusto Cluster (Kusto) und Log Analytics Workspaces (LA) sind zwei verschiedene Big Data Services in Microsoft Azure. Die beiden Services haben unterschiedliche Einsatzzwecke und sind für unterschiedliche Anwendungsfälle optimiert. Die beiden Dienste haben aber etwas gemeinsam: Sie verwenden die gleiche Abfragesprache, die Kusto Query Language (KQL).

In diesem Post werden drei Tools untersucht, mit denen man KQL Abfragen auf Kusto und LA Workspaces ausführen kann:

  • Kusto Explorer
  • Azure Data Explorer
  • Polyglot Notebooks

Kusto Cluster heißt seit einiger Zeit Azure Data Explorer Cluster (ADE Cluster). Er wird auch ADX Cluster genannt.

  Kusto LA
Name Kusto Cluster
Azure Data Explorer Cluster
ADE Cluster
ADX Cluster
Log Analytics Workspace
Einsatzzweck Batch Data Processing
Streaming Data Processing
Telemetry
IoT
Monitoring
Security (Sentinel)
ARM Resource Type Microsoft.Kusto/Clusters Microsoft.OperationalInsights/workspaces
Cluster URL https://<clusterName>.<region>.kusto.windows.net https://ade.loganalytics.io/<ResourceId>

Neben Kusto und LA gibt es zahlreiche weitere Big Data Lösungen in Azure.

Azure Analytics Services

Cluster URLs

Die Cluster URL (Engine Endpoint) benötigt man, um sich mit Tools auf den Cluster zu verbinden. Die Cluster URL eines LA Workspace ist (siehe Tabelle oben)

https://ade.loganalytics.io/<ResourceId>

wobei die Resource Id wie folgt aus dem Namen des Workspace gebildet werden kann:

<ResourceId> = subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/microsoft.operationalinsights/workspaces/<workspaceName>

Diese Resource ID kann man leicht im Azure Portal finden oder mit PowerShell abfragen:

function Get-AzLogAnalyticsWorkspaceResourceId {
    param (
      [Parameter(Mandatory = $true)]
        [string]$ResourceGroupName,
        [Parameter(Mandatory = $true)]
        [string]$WorkspaceName
    )
    $workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $ResourceGroupName -Name $WorkspaceName
    $workspace.ResourceId
}

Cluster zum Ausprobieren

Zum Ausprobieren von KQL stellt Azure einen Kusto Cluster (Storm Events) und einen LA Workspace (LA Demo) mit Beispieldaten zur Verfügung. Beide Cluster sind kostenlos, Login mit Work or School Account.

Kusto LA
Storm Events LA Demo
https://help.kusto.windows.net/Samples https://aka.ms/lademo

Man kann auch seinen eigenen, kostenlosen Kusto Cluster anlegen. Um Data Ingestion muß man sich dann selber kümmern.

Tools

Kusto Explorer

Kusto Explorer ist eine ClickOnce Application für Windows - Linux und MacOS User haben Pech. Installation und User Interface werden hier beschrieben.

https://aka.ms/ke

Die App ist in C# geschrieben und nutzt das Kusto SDK.

Man verbindet sich auf einen Cluster (Kusto oder LA) mit der Cluster URL, siehe oben.

Kusto Explorer Connections and Query

Azure Data Explorer

Als Web Applikation ist Azure Data Explorer über jeden Browser erreichbar. Das User Interface ist hier beschrieben. Es ähnelt dem Kusto Explorer.

https://dataexplorer.azure.com

Kusto Explorer Connections and Query

Polyglot Notebooks

Polyglot Notebooks in VS Code, früher .NET Interactive Notebooks genannt, sind eine Erweiterung Microsofts der bekannten und beliebten Jupyter Notebooks durch Microsoft. In einem Polyglot Notebook können mehrere Sprachen verwendet werden, z.B. C#, PowerShell, JavaScript und eben auch KQL.

Wie ein Polyglot Notebook den passenden Kernel finden, wird in diesem Artikel sehr schön beschrieben, einschließlich der Geschichte von iPython und Jupyter seit dem Dreißigjährigen Krieg.

Die Magic Commands sind von Jupyter übernommen und gewöhnungsbedürftig - eben Magic, siehe hier.

Um KQL Queries in einem Polyglot Notebook zu schreiben braucht man zunächst das Nuget Package Microsoft.DotNet.Interactive.Kql. Das folgende Magic Command installiert es in das aktuelle Verzeichnis:

#r "nuget: Microsoft.DotNet.Interactive.Kql, *-*"

Dann verrät das folgende Magic Command, wie man sich mit einem Cluster verbindet:

#!connect kql --help

also konkret für den Kusto Cluster Storm Events:

#!connect kql --kernel-name stormevents --cluster "https://help.kusto.windows.net" --database "Samples"

Polyglot Notebook Connections and Query

Fun Fact

Der Kusto Explorer verrät beim Start, wie Kusto zu seinem Namen kam. Kusto ist benannt nach dem bekannten französischen Tiefseeforscher Jacques-Yves Cousteau [ʒak iv kusto]. Wir erfoschen schließlich auch die Tiefen unserer Daten 🤣.

Kusto Explorer Starting

References

Markus Raatz: Spaß mit KQL und Azure Log Analytics

John Savill: Azure Data Explorer (ADX) Overview

Microsoft Learn: Azure Data Explorer documentation

Microsoft Learn: What is Azure Data Explorer?

Microsoft Learn: Query data in Azure Monitor with Azure Data Explorer

Microsoft Learn: Azure Data Explorer REST API overview

Kusto King: Basic searching and string operators

Thomas Drilling: Dynamic Kernel Picker für VS Code Polyglot Notebooks