Ladění dotazovacího jazyka Kusto v pythonu pomocí editoru Visual Studio Code

Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer

Kód Pythonu můžete vložit do dotazů dotazovacího jazyka Kusto pomocí modulu plug-in python(). Runtime pluginu je hostován v izolovaném a zabezpečeném prostředí Pythonu. Funkce modulu plug-in python() rozšiřuje dotazovací jazyk Kusto nativní funkce s obrovským archivem balíčků OSS Python. Toto rozšíření umožňuje spouštět pokročilé algoritmy, jako je strojové učení, umělá inteligence, statistická a časová řada v rámci dotazu.

dotazovací jazyk Kusto nástroje nejsou vhodné pro vývoj a ladění algoritmů Pythonu. Proto vyvíjejte algoritmus ve vašem oblíbeném vývojovém prostředí integrovaném v Pythonu, jako je Jupyter, PyCharm, Visual Studio nebo Visual Studio Code. Po dokončení algoritmu zkopírujte a vložte ho do KQL. Aby bylo možné tento pracovní postup vylepšit a zjednodušit, můžou se klienti Kusto Exploreru nebo webového uživatelského rozhraní integrovat se sadou Visual Studio Code pro vytváření a ladění vloženého kódu Pythonu.

Poznámka:

Tento pracovní postup lze použít pouze k ladění relativně malých vstupních tabulek (až do několika MB). Proto může být potřeba vstup pro ladění omezit. Pokud potřebujete zpracovat velkou tabulku, omezte ji pro ladění pomocí , | take| samplenebo where rand() < 0.x.

Požadavky

Povolení ladění Pythonu v editoru Visual Studio Code

  1. V klientské aplikaci předpona dotazu obsahujícího vložený Python set query_python_debug;

  2. Spusťte dotaz.

    • Průzkumník Kusto: Visual Studio Code se automaticky spustí pomocí debug_python.py skriptu.
    • Webové uživatelské rozhraní Kusto:
      1. Stáhněte a uložte debug_python.py, df.txt a kargs.txt. V okně vyberte Povolit. Uložte soubory ve vybraném adresáři.
      2. Klikněte pravým tlačítkem na debug_python.py a otevřete ho pomocí editoru Visual Studio Code. Skript debug_python.py obsahuje vložený kód Pythonu z dotazu KQL s předponou kódu šablony, který inicializuje vstupní datový rámec z df.txt a slovník parametrů z kargs.txt.
  3. V editoru Visual Studio Code spusťte ladicí program editoru Visual Studio Code: Spusťte>ladění (F5) a vyberte konfiguraci Pythonu. Ladicí program se spustí a automaticky nastaví zarážku pro ladění vloženého kódu.

  1. V klientské aplikaci předpona dotazu obsahujícího vložený Python set query_python_debug;

  2. Spusťte dotaz.

    • Průzkumník Kusto: Visual Studio Code se automaticky spustí pomocí debug_python.py skriptu.
    • Sada dotazů KQL:
      1. Stáhněte a uložte debug_python.py, df.txt a kargs.txt. V okně vyberte Povolit. Uložte soubory ve vybraném adresáři.
      2. Klikněte pravým tlačítkem na debug_python.py a otevřete ho pomocí editoru Visual Studio Code. Skript debug_python.py obsahuje vložený kód Pythonu z dotazu KQL s předponou kódu šablony, který inicializuje vstupní datový rámec z df.txt a slovník parametrů z kargs.txt.
  3. V editoru Visual Studio Code spusťte ladicí program editoru Visual Studio Code: Spusťte>ladění (F5) a vyberte konfiguraci Pythonu. Ladicí program se spustí a automaticky nastaví zarážku pro ladění vloženého kódu.

Jak funguje vložené ladění Pythonu v editoru Visual Studio Code?

  1. Dotaz se parsuje a spouští na serveru, dokud nedosáhne požadované | evaluate python() klauzule.
  2. Sandbox Pythonu se vyvolá, ale místo spuštění kódu serializuje vstupní tabulku, slovník parametrů a kód a odešle je zpět klientovi.
  3. Tyto tři objekty se ukládají do tří souborů: df.txt, kargs.txt a debug_python.py ve vybraném adresáři (webovém uživatelském rozhraní) nebo v adresáři klienta %TEMP% (Kusto Explorer).
  4. Visual Studio Code se spustí, předem načte se souborem debug_python.py , který obsahuje kód předpony pro inicializaci souborů df a kargs z příslušných souborů, následovaný skriptem Pythonu vloženým do dotazu KQL.

Příklad dotazu

  1. V klientské aplikaci spusťte následující dotaz KQL:

    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))
    

    Podívejte se na výslednou tabulku:

    linka x4
    1 1
    2 16
    3 81
    4 256
  2. Spusťte stejný dotaz KQL v klientské aplikaci pomocí set query_python_debug;následujícího příkazu:

    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. Spustí se Visual Studio Code:

    spusťte Visual Studio Code.

  4. Visual Studio Code ladí a vytiskne datový rámec result v konzole ladění:

    Ladění VS Code

Poznámka:

Mezi imagí sandboxu Pythonu a místní instalací můžou být rozdíly. Zkontrolujte image sandboxu pro konkrétní balíčky dotazováním modulu plug-in.

Poznámka:

Pokud při spuštění ladicí relace editoru Visual Studio Code dojde k chybám, zkuste nastavit výchozí profil terminálu na příkazový řádek:

  • Stisknutím kombinace kláves CTRL+SHIFT+P otevřete paletu příkazů.
  • Vyhledejte "Terminál: Vybrat výchozí profil" a vyberte Příkazový řádek.