Condividi tramite


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

Prerequisiti

Eseguire la query nell'applicazione client

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

  2. Consente di eseguire la query.

    • Kusto Explorer: VS Code viene avviato automaticamente con lo script debug_python.py .
    • Interfaccia utente Web Kusto:
      1. Scaricare e salvare debug_python.py, df.txte kargs.txt. Nella finestra selezionare Consenti. Salvare i file nella directory selezionata.

        L'interfaccia utente Web scarica i file Python inline.

      2. 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.

  3. 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?

  1. La query viene analizzata ed eseguita nel server finché 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.txte debug_python.py nella directory selezionata (interfaccia utente Web) o nella directory %TEMP% del client (Kusto Explorer).
  4. 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

  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. Vs Code viene avviato:

    avviare VS Code.

  4. Il debug di VS Code 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

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"