Eseguire il debug di Linguaggio di query Kusto Python inline con VS Code
Azure Esplora dati supporta l'esecuzione del codice Python incorporato in Linguaggio di query Kusto usando il plug-in python(). Il runtime del plug-in è ospitato in una sandbox, un ambiente Python isolato e sicuro. La funzionalità del plug-in python() estende Linguaggio di query Kusto funzionalità native con l'enorme archivio di pacchetti Python osS. Questa estensione consente di eseguire algoritmi avanzati, ad esempio Machine Learning, intelligenza artificiale, statistiche e serie temporali come parte della query.
Linguaggio di query Kusto strumenti non sono utili per lo sviluppo e il debug di algoritmi Python. Di conseguenza, sviluppare l'algoritmo nell'ambiente di sviluppo integrato Python preferito, ad esempio Jupyter, PyCharm, VS o VS Code. Al termine dell'algoritmo, copiare e incollare in KQL. Per migliorare e semplificare questo flusso di lavoro, Azure Esplora dati supporta l'integrazione tra i client Kusto Explorer o l'interfaccia utente Web e VS Code per la creazione e il debug del codice KQL inline Python.
Nota
Questo flusso di lavoro può essere usato solo per eseguire il debug di tabelle di input relativamente piccole (fino a pochi MB). Potrebbe pertanto essere necessario limitare l'input per il debug. Se è necessario elaborare una tabella di grandi dimensioni, limitarla per il debug usando | take
, | sample
o where rand() < 0.x
.
Prerequisiti
- Una sottoscrizione di Azure. Creare un account Azure gratuito.
- Un cluster e un database di Esplora dati di Azure. Creare un cluster e un database.
- Installare La distribuzione di Python Anaconda. In Opzioni avanzate selezionare Aggiungi Anaconda alla variabile di ambiente PATH.
- Installare Visual Studio Code.
- Installare l'estensione Python per Visual Studio Code.
Eseguire la query nell'applicazione client
Nell'applicazione client, prefisso una query contenente Python inline con
set query_python_debug;
Consente di eseguire la query.
- Kusto Explorer: VS Code viene avviato automaticamente con lo script debug_python.py .
- Interfaccia utente Web Kusto:
Scaricare e salvare debug_python.py, df.txte kargs.txt. Nella finestra selezionare Consenti. Salvare i file nella directory selezionata.
Fare clic con il pulsante destro del mouse su debug_python.py e aprire con VS Code. Lo script debug_python.py contiene il codice Python inline, dalla query KQL, preceduto dal codice modello per inizializzare il dataframe di input da df.txt e il dizionario dei parametri da kargs.txt.
In VS Code avviare il debugger di VS Code: Eseguire il debug del debug>(F5) selezionare Configurazione Python . Il debugger avvia e interrompe automaticamente il punto di interruzione per eseguire il debug del codice inline.
Come funziona il debug python inline in VS Code?
- La query viene analizzata ed eseguita nel server finché non viene raggiunta la clausola obbligatoria
| evaluate python()
. - La sandbox Python viene richiamata ma invece di eseguire il codice, serializza la tabella di input, il dizionario dei parametri e il codice e li invia al client.
- Questi tre oggetti vengono salvati in tre file: df.txt,kargs.txte debug_python.py nella directory selezionata (interfaccia utente Web) o nella directory %TEMP% del client (Kusto Explorer).
- Vs Code viene avviato, precaricati con il file debug_python.py che contiene un codice prefisso per inizializzare df e kargs dai rispettivi file, seguito dallo script Python incorporato nella query KQL.
Esempio di query
Eseguire la query KQL seguente nell'applicazione client:
range x from 1 to 4 step 1 | evaluate python(typeof(*, x4:int), 'exp = kargs["exp"]\n' 'result = df\n' 'result["x4"] = df["x"].pow(exp)\n' , bag_pack('exp', 4))
Vedere la tabella risultante:
x x4 1 1 2 16 3 81 4 256 Eseguire la stessa query KQL nell'applicazione client usando
set query_python_debug;
:set query_python_debug; range x from 1 to 4 step 1 | evaluate python(typeof(*, x4:int), 'exp = kargs["exp"]\n' 'result = df\n' 'result["x4"] = df["x"].pow(exp)\n' , bag_pack('exp', 4))
Vs Code viene avviato:
Il debug di VS Code e stampa il dataframe 'result' nella console di debug:
Nota
Potrebbero esserci differenze tra l'immagine sandbox Python e l'installazione locale. Controllare l'immagine sandbox per pacchetti specifici eseguendo una query sul plug-in.
Nota
In caso di errori durante l'avvio della sessione di debug del codice VS, provare a impostare il profilo del terminale predefinito al prompt dei comandi:
- Premere CTRL + MAIUSC + P per aprire il riquadro comandi.
- Cercare "Terminale: Selezionare profilo predefinito" e selezionare "Prompt dei comandi"