Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Jupyter Notebook ist eine Open-Source-Webanwendung, mit der Sie Dokumente mit Live-Code, Gleichungen, Visualisierungen und erzählendem Text erstellen und gemeinsam nutzen können. Es ist nützlich für eine breite Palette von Aufgaben, z. B. Datenreinigung und -transformation, numerische Simulation, statistische Modellierung, Datenvisualisierung und maschinelles Lernen.
Kqlmagic erweitert die Fähigkeiten des Python-Kerns in Jupyter Notebook, so dass Sie Kusto-Abfragesprache (KQL) queries natively. Sie können Python und KQL zum Abfragen und Visualisieren von Daten mithilfe der umfassenden Bibliothek „Plot.ly“ kombinieren, die im render-Operator integriert ist. Die Kqlmagic-Erweiterung ist mit Jupyter Lab, Visual Studio Code Jupyter Erweiterung und Azure Data Studio kompatibel, und unterstützte Datenquellen umfassen Azure Data Explorer, Azure Monitor-Protokolle und Application Insights.
In diesem Artikel erfahren Sie, wie Sie die Kqlmagic-Erweiterung in einem Notizbuch verwenden, um eine Verbindung mit daten herzustellen und abzufragen, die im Azure-Daten-Explorer gespeichert sind.
Voraussetzungen
- Ein Microsoft-Konto oder eine Microsoft Entra-Benutzeridentität. Ein Azure-Abonnement ist nicht erforderlich.
- Ein Notizbuch, das auf Ihrem lokalen Computer installiert ist. Andernfalls verwenden Sie Azure Data Studio.
- Python 3.6. Um die Kernel-Version von Jupyter Notebook auf Python 3.6 zu ändern, wählen Sie Kernel>Change Kernel>Python 3.6.
Install kqlmagic
Sobald Sie die kqlmagic-Erweiterung installiert und geladen haben, können Sie KQL-Abfragen in Ihrem Notebook schreiben. Wenn der Kernel anhält oder die Ergebnisse nicht wie erwartet sind, laden Sie die kqlmagic-Erweiterung erneut.
Um kqlmagic zu installieren, führen Sie den folgenden Befehl aus:
!pip install Kqlmagic --no-cache-dir --upgradeUm die kqlmagic-Erweiterung zu laden, führen Sie den folgenden Befehl aus:
%reload_ext Kqlmagic
Herstellen der Verbindung zu einem Cluster
Wählen Sie die Registerkarte für Ihre bevorzugte Methode zur Verbindung mit Ihrem Cluster.
Hinweis
Wir empfehlen, nach Möglichkeit die Zertifikatsauthentifizierung zu verwenden.
Das Microsoft Entra-Zertifikat sollte in einer Datei gespeichert werden, die vom Notebook aus zugänglich ist. This file can be referenced In connection string.
%kql AzureDataExplorer://tenant='<tenant-id>';certificate='<certificate>';certificate_thumbprint='<thumbprint>';cluster='<cluster-name>';database='<database-name>'
Tipp
- Um die Verbindungszeichenfolge zu parametrisieren, verwenden Sie nicht zitierte Werte, da diese als Python-Ausdrücke interpretiert werden.
- Zur Vereinfachung der Abfrage von Anmeldeinformationen siehe Verbindungsoptionen.
Beispiel für eine Clusterverbindung
Der folgende Befehl verwendet die Microsoft Entra-Code-Methode zur Authentifizierung bei der Samples Datenbank, die auf dem help cluster. Für Nicht-Microsoft Entra-Benutzer ersetzen Sie den Tenant-Namen Microsoft.com durch Ihren Microsoft Entra-Tenant.
%kql AzureDataExplorer://tenant="Microsoft.com";code;cluster='help';database='Samples'
Verbindungsoptionen
Um die Abfrage der Anmeldeinformationen zu vereinfachen, können Sie eine der folgenden Optionsflags nach der Verbindung hinzufügen.
| Option | Beschreibung | Beispielsyntax |
|---|---|---|
| try_azcli_login | Versuchen Sie, Authentifizierungsanmeldeinformationen von Azure CLI abzurufen. Erwartet, dass Sie mit Azure CLI angemeldet sind. Siehe Beispiel für eine Verbindung mit Azure CLI. | -try_azcli_login |
| try_azcli_login_subscription | Versucht, Authentifizierungsdaten von Azure CLI auf der Grundlage des angegebenen Abonnements abzurufen. | -try_azcli_login_subscription=<subscription_id> |
| try_vscode_login | Versuch, Authentifizierungsdaten von der Visual Studio Code Azure-Kontoanmeldung zu erhalten. | -try_vscode_login |
| try_msi | Versucht, Authentifizierungsdaten vom lokalen MSI-Endpunkt abzurufen. Erwartet ein Wörterbuch mit den optionalen MSI-Parametern: resource, client_id/object_id/mis_res_id, cloud_environment, timeout. |
-try_msi={"client_id":<id>} |
| try_token | Mit einem angegebenen Token authentifizieren. Erwartet ein Wörterbuch mit Azure AD v1- oder v2-Token-Eigenschaften. | -try_token={"tokenType":"bearer","accessToken":"<token>"} |
Beispiel für eine Verbindung mit Azure CLI
Jede der in der vorherigen Tabelle beschriebenen Optionen kann nach einer Verbindung hinzugefügt werden. Im folgenden Beispiel wird die Azure CLI-Anmeldeoption als Authentifizierungsmethode verwendet:
%kql azureDataExplorer://code;cluster='help';database='Samples' -try_azcli_login
Hinweis
Bei dieser Option wird davon ausgegangen, dass Sie mit Azure CLI bei Azure angemeldet sind. Wenn Sie nicht angemeldet sind, werden Sie in einem Popupfenster aufgefordert, sich bei Azure anzumelden.
Anzeige von Verbindungsinformationen
Um alle bestehenden Verbindungen zu sehen, führen Sie den folgenden Befehl aus:
%kql --conn
Um die Details einer bestimmten Verbindung zu überprüfen, führen Sie den folgenden Befehl aus:
%kql --conn <database-name>@<cluster-name>
Abfragen und Visualisieren
Fragen Sie Daten mit dem Render-Operator ab, und visualisieren Sie Daten mithilfe der Bibliothek „ploy.ly“ Durch die Abfrage und Visualisierung wird eine integrierte Benutzeroberfläche bereitgestellt, die die native KQL verwendet.
Kqlmagic unterstützt abgesehen von timepivot, pivotchart und ladderchart die meisten Diagramme. Der Render-Operator wird mit Ausnahme von kind, ysplit und accumulate mit allen Attributen unterstützt.
Abfragen und Rendern eines Kreisdiagramms
%%kql
StormEvents
| summarize statecount=count() by State
| sort by statecount
| take 10
| render piechart title="My Pie Chart by State"
Abfragen und Rendern eines Zeitdiagramms
%%kql
StormEvents
| summarize count() by bin(StartTime,7d)
| render timechart
Hinweis
Diese Diagramme sind interaktiv. Wählen Sie einen Zeitbereich aus, um einen bestimmten Zeitraum zu vergrößern.
Anpassen der Diagrammfarben
Wenn Ihnen die Standardfarbpalette nicht gefällt, können Sie die Diagramme mit Palettenoptionen anpassen. Die verfügbaren Paletten finden Sie hier: Wählen Sie eine Farbpalette für Ihr kqlmagic-Abfragediagramm aus
Mit folgendem Befehl rufen Sie eine Liste der Paletten auf:
%kql --palettes -popup_windowWählen Sie die Farbpalette
coolaus, und rendern Sie die Abfrage erneut:%%kql -palette_name "cool" StormEvents | summarize statecount=count() by State | sort by statecount | take 10 | render piechart title="My Pie Chart by State"
Parametrisieren einer Abfrage mit Python
Kqlmagic ermöglicht einen einfachen Austausch zwischen Kusto-Abfragesprache und Python. To learn more: Parametrisieren Sie Ihre kqlmagic-Abfrage mit Python
Verwenden einer Python-Variablen in KQL-Abfragen
Sie können den Wert einer Python-Variablen in Ihrer Abfrage verwenden, um die Daten zu filtern:
statefilter = ["TEXAS", "KANSAS"]
%%kql
let _state = statefilter;
StormEvents
| where State in (_state)
| summarize statecount=count() by bin(StartTime,1d), State
| render timechart title = "Trend"
Konvertieren von Abfrageergebnissen in Pandas Dataframe
Sie können in Pandas DataFrame auf die Ergebnisse einer KQL-Abfrage zugreifen. Wie im folgenden Beispiel gezeigt können Sie mit der Variablen _kql_raw_result_ auf die Ergebnisse der zuletzt ausgeführten Abfrage zugreifen und diese unkompliziert in Pandas DataFrame konvertieren:
df = _kql_raw_result_.to_dataframe()
df.head(10)
Beispiel
In vielen Analyseszenarios sollten Sie, wiederverwendbare Notebooks erstellen, die viele Abfragen enthalten und die Ergebnisse einer Abfrage an nachfolgende Abfragen übergeben. Im folgenden Beispiel wird die Python-Variable statefilter verwendet, um die Daten zu filtern.
Führen Sie eine Abfrage aus, um die zehn Zustände mit dem Höchstwert für die
DamageProperty-Eigenschaft aufzuführen:%%kql StormEvents | summarize max(DamageProperty) by State | order by max_DamageProperty desc | take 10Führen Sie eine Abfrage aus, um den Zustand mit dem Höchstwert zu extrahieren, und legen Sie diesen in einer Python-Variablen fest:
df = _kql_raw_result_.to_dataframe() statefilter =df.loc[0].State statefilterFühren Sie eine Abfrage mit der
let-Anweisung und der Python-Variablen aus:%%kql let _state = statefilter; StormEvents | where State in (_state) | summarize statecount=count() by bin(StartTime,1d), State | render timechart title = "Trend"Führen Sie den help-Befehl aus:
%kql --help "help"
Tipp
- Um Informationen zu allen verfügbaren Konfigurationen zu erhalten, verwenden Sie
%config Kqlmagic. - Verwenden Sie zum Beheben und Erfassen von Kusto-Fehlern (z. B. Verbindungsprobleme und falsche Abfragen)
%config Kqlmagic.short_errors=False.
Beispiel-Notebooks
- Starten Sie mit kqlmagic für Azure Data Explorer
- Starten Sie mit kqlmagic für Application Erkenntnisse
- Starten Sie mit kqlmagic für Azure Monitor Logs
- Parametrisieren Sie Ihre kqlmagic-Abfrage mit Python
- Wählen Sie eine Farbpalette für Ihr kqlmagic-Abfragediagramm aus