Condividi tramite


Eseguire il debug di Linguaggio di query Kusto Python inline con Visual Studio Code

Si applica a: ✅Microsoft FabricAzure Esplora dati

È possibile incorporare il codice Python nelle query 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. Sviluppare quindi l'algoritmo nell'ambiente di sviluppo integrato Python preferito, ad esempio Jupyter, PyCharm, Visual Studio o Visual Studio Code. Al termine dell'algoritmo, copiare e incollare in KQL. Per migliorare e semplificare questo flusso di lavoro, i client kusto Explorer o dell'interfaccia utente Web possono integrarsi con Visual Studio Code per la creazione e il debug del codice Python inline KQL.

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, | sampleo where rand() < 0.x.

Prerequisiti

Abilitare il debug python in Visual Studio Code

  1. Nell'applicazione client anteporre una query contenente Python inline con set query_python_debug;

  2. Esegui la query.

    • Esplora risorse Kusto: Visual Studio Code viene avviato automaticamente con lo script di debug_python.py .
    • Interfaccia utente Web Kusto:
      1. Scaricare e salvare debug_python.py, df.txt e kargs.txt. Nella finestra selezionare Consenti. Salvare i file nella directory selezionata.
      2. Fare clic con il pulsante destro del mouse su debug_python.py e aprire con Visual Studio Code. Lo script debug_python.py contiene il codice Python inline, dalla query KQL, preceduto dal codice del modello per inizializzare il dataframe di input da df.txt e dal dizionario dei parametri di kargs.txt.
  3. In Visual Studio Code avviare il debugger di Visual Studio Code: Esegui avvia>debug (F5) e selezionare Configurazione Python. Il debugger avvia e imposta automaticamente un punto di interruzione per eseguire il debug del codice inline.

  1. Nell'applicazione client anteporre una query contenente Python inline con set query_python_debug;

  2. Esegui la query.

    • Esplora risorse Kusto: Visual Studio Code viene avviato automaticamente con lo script di debug_python.py .
    • Queryset KQL:
      1. Scaricare e salvare debug_python.py, df.txt e kargs.txt. Nella finestra selezionare Consenti. Salvare i file nella directory selezionata.
      2. Fare clic con il pulsante destro del mouse su debug_python.py e aprire con Visual Studio Code. Lo script debug_python.py contiene il codice Python inline, dalla query KQL, preceduto dal codice del modello per inizializzare il dataframe di input da df.txt e dal dizionario dei parametri di kargs.txt.
  3. In Visual Studio Code avviare il debugger di Visual Studio Code: Esegui avvia>debug (F5) e selezionare Configurazione Python. Il debugger avvia e imposta automaticamente un punto di interruzione per eseguire il debug del codice inline.

Come funziona il debug inline di Python in Visual Studio Code?

  1. La query viene analizzata ed eseguita nel server fino a quando non viene raggiunta la clausola obbligatoria | evaluate python() .
  2. 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.
  3. Questi tre oggetti vengono salvati in tre file: df.txt, kargs.txt e debug_python.py nella directory selezionata (interfaccia utente Web) o nella directory %TEMP% client (Kusto Explorer).
  4. Viene avviato Visual Studio Code, precaricato con il file debug_python.py che contiene un codice di prefisso per inizializzare df e kargs dai rispettivi file, seguito dallo script Python incorporato nella query KQL.

Esempio di query

  1. 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
  2. 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))
    
  3. Visual Studio Code viene avviato:

    avviare Visual Studio Code.

  4. Visual Studio Code esegue il debug e stampa il dataframe 'result' nella console di debug:

    Debug di VS Code.

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

Nel caso in cui si verifichino errori durante l'avvio della sessione di debug di Visual Studio Code, provare a impostare il profilo del terminale predefinito sul prompt dei comandi:

  • Premere CTRL + MAIUSC + P per aprire il riquadro comandi.
  • Cercare "Terminale: Selezionare profilo predefinito" e selezionare "Prompt dei comandi"