Usare un'estensione Jupyter Notebook e kqlmagic per analizzare i dati in Azure Esplora dati
Jupyter Notebook è un'applicazione Web open source che consente di creare e condividere documenti contenenti codice live, equazioni, visualizzazioni e testo narrativo. È utile per un'ampia gamma di attività, ad esempio la pulizia e la trasformazione dei dati, la simulazione numerica, la modellazione statistica, la visualizzazione dei dati e l'apprendimento automatico.
Kqlmagic estende le funzionalità del kernel Python in Jupyter Notebook in modo da poter eseguire query Linguaggio di query Kusto (KQL) in modo nativo. È possibile combinare Python e KQL per eseguire query e visualizzare i dati usando la libreria di Plot.ly avanzata integrata con l'operatore render . L'estensione kqlmagic è compatibile con Jupyter Lab, l'estensione Jupyter di Visual Studio Code e Azure Data Studio e le origini dati supportate includono Azure Esplora dati, log di Monitoraggio di Azure e Application Insights.
Questo articolo illustra come usare kqlmagic in jupyter Notebook per connettersi ai dati archiviati in Azure Esplora dati ed eseguire query sui dati archiviati in Azure.
Prerequisiti
- Un account Microsoft o un'identità utente di Microsoft Entra. Non è necessaria una sottoscrizione di Azure.
- Jupyter Notebook installato nel computer locale. In caso contrario, usare Azure Data Studio.
- Python 3.6. Per modificare la versione del kernel jupyter Notebook in Python 3.6, selezionare Kernel>Change Kernel>Python 3.6.
Installare kqlmagic
Dopo aver installato e caricato l'estensione kqlmagic, è possibile scrivere query KQL nel notebook. Se il kernel si arresta o i risultati non sono come previsto, ricaricare l'estensione kqlmagic.
Per installare kqlmagic, eseguire il comando seguente:
!pip install Kqlmagic --no-cache-dir --upgrade
Per caricare l'estensione kqlmagic, eseguire il comando seguente:
%reload_ext Kqlmagic
Connettersi a un cluster
Selezionare la scheda relativa al metodo preferito per connettersi al cluster.
Nota
Quando possibile, è consigliabile usare il metodo Certificate di autenticazione.
Il certificato Microsoft Entra deve essere archiviato in un file accessibile dal notebook. Questo file può essere fatto riferimento nella stringa di connessione.
%kql AzureDataExplorer://tenant='<tenant-id>';certificate='<certificate>';certificate_thumbprint='<thumbprint>';cluster='<cluster-name>';database='<database-name>'
Suggerimento
- Per parametrizzare l'stringa di connessione, usare valori senza virgolette così come vengono interpretati come espressioni Python.
- Per semplificare il processo di recupero delle credenziali, vedere opzioni di Connessione ion.
Esempio di connessione al cluster
Il comando seguente usa il metodo di codice Microsoft Entra per eseguire l'autenticazione nel Samples
database ospitato nel help
cluster. Per gli utenti non Microsoft Entra, sostituire il nome Microsoft.com
del tenant con il tenant di Microsoft Entra.
%kql AzureDataExplorer://tenant="Microsoft.com";code;cluster='help';database='Samples'
Opzioni di connessione
Per semplificare il processo di recupero delle credenziali, è possibile aggiungere uno dei flag di opzione seguenti dopo il stringa di connessione.
Opzione | Descrizione | Sintassi di esempio |
---|---|---|
try_azcli_login | Provare a ottenere le credenziali di autenticazione dall'interfaccia della riga di comando di Azure. | -try_azcli_login |
try_azcli_login_subscription | Provare a ottenere le credenziali di autenticazione dall'interfaccia della riga di comando di Azure in base alla sottoscrizione specificata. | -try_azcli_login_subscription=<subscription_id> |
try_vscode_login | Provare a ottenere le credenziali di autenticazione dall'account Azure di Visual Studio Code. | -try_vscode_login |
try_msi | Tentare di ottenere le credenziali di autenticazione dall'endpoint locale dell'identità del servizio gestito. Prevede un dizionario con i parametri MSI facoltativi: resource ,/client_id object_id mis_res_id / , cloud_environment , . timeout |
-try_msi={"client_id":<id>} |
try_token | Eseguire l'autenticazione con un token specificato. Si aspetta un dizionario con le proprietà del token di Azure AD v1 o v2. | -try_token={"tokenType":"bearer","accessToken":"<token>"} |
Esempio di opzione di connessione
Una delle opzioni descritte nella tabella precedente può essere aggiunta dopo un stringa di connessione. L'esempio seguente usa l'opzione di accesso dell'interfaccia della riga di comando di Azure:
%kql azureDataExplorer://code;cluster='help';database='Samples' -try_azcli_login
Visualizzare le informazioni di connessione
Per visualizzare tutte le connessioni esistenti, eseguire il comando seguente:
%kql --conn
Per controllare i dettagli di una connessione specifica, eseguire il comando seguente:
%kql --conn <database-name>@<cluster-name>
Eseguire una query e visualizzare
Eseguire la query dei dati usando l'operatore di rendering e visualizzare i dati tramite la libreria ploy.ly. La query e la visualizzazione forniscono un'esperienza integrata che fa uso di KQL (linguaggio di query Kusto) nativo. Kqlmagic supporta la maggior parte dei grafici tranne timepivot
, pivotchart
e ladderchart
. Il rendering è supportato con tutti gli attributi tranne kind
, ysplit
e accumulate
.
Eseguire una query e il rendering del grafico a torta
%%kql
StormEvents
| summarize statecount=count() by State
| sort by statecount
| take10
| render piechart title="My Pie Chart by State"
Eseguire una query e il rendering del diagramma temporale
%%kql
StormEvents
| summarize count() by bin(StartTime,7d)
| render timechart
Nota
I grafici sono interattivi. Selezionare un intervallo di tempo per ingrandire un momento specifico.
Personalizzare i colori del grafico
Se non si preferisce la tavolozza dei colori predefinita, personalizzare i grafici usando le opzioni della tavolozza. Le tavolozze disponibili sono disponibili qui: Scegliere la tavolozza dei colori per il risultato del grafico query kqlmagic
Per un elenco delle tavolozze:
%kql --palettes -popup_window
Selezionare la tavolozza dei colori
cool
ed eseguire nuovamente il rendering della query:%%kql -palette_name "cool" StormEvents | summarize statecount=count() by State | sort by statecount | take10 | render piechart title="My Pie Chart by State"
Stabilire i parametri di una query con Python
Kqlmagic consente un semplice interscambio tra Linguaggio di query Kusto e Python. Per altre informazioni: Parametrizzare la query kqlmagic con Python
Usare una variabile di Python nella query KQL
È possibile usare il valore di una variabile di Python nella query per filtrare i dati:
statefilter = ["TEXAS", "KANSAS"]
%%kql
let _state = statefilter;
StormEvents
| where State in (_state)
| summarize statecount=count() by bin(StartTime,1d), State
| render timechart title = "Trend"
Convertire i risultati della query in dataframe Pandas
È possibile accedere ai risultati di una query KQL in dataframe Pandas. Accedere ai risultati dell'ultima query eseguita tramite la variabile _kql_raw_result_
e convertire facilmente i risultati in dataframe Pandas come indicato di seguito:
df = _kql_raw_result_.to_dataframe()
df.head(10)
Esempio
In molti scenari di analitica è possibile creare notebook riutilizzabili contenenti molte query e distribuire i risultati da una query a quelle successive. L'esempio seguente usa la variabile di Python statefilter
per filtrare i dati.
Eseguire una query per visualizzare i primi 10 stati con
DamageProperty
massima:%%kql StormEvents | summarize max(DamageProperty) by State | order by max_DamageProperty desc | take10
Eseguire una query per estrarre lo stato principale e impostarlo in una variabile di Python:
df = _kql_raw_result_.to_dataframe() statefilter =df.loc[0].State statefilter
Eseguire una query usando l'istruzione
let
e la variabile di Python:%%kql let _state = statefilter; StormEvents | where State in (_state) | summarize statecount=count() by bin(StartTime,1d), State | render timechart title = "Trend"
Eseguire il comando Guida:
%kql --help "help"
Suggerimento
Per ricevere informazioni su tutte le configurazioni disponibili, usare %config Kqlmagic
. Per risolvere e acquisire errori Kusto, ad esempio problemi di connessione e query non corrette, usare %config Kqlmagic.short_errors=False
Notebook di esempio
- Introduzione a kqlmagic per Azure Esplora dati
- Introduzione a kqlmagic per Application Insights
- Introduzione a kqlmagic per i log di Monitoraggio di Azure
- Parametrizzare la query kqlmagic con Python
- Scegliere la tavolozza colori per il risultato del grafico query kqlmagic