Delen via


Fouten opsporen in Kusto Query Language inline Python met behulp van Visual Studio Code

Schakelen tussen services met behulp van de vervolgkeuzelijst Versie . Meer informatie over navigatie.
Van toepassing op: ✅ Microsoft Fabric ✅ Azure Data Explorer

U kunt Python-code insluiten in Kusto Query Language-query's met behulp van de python()-invoegtoepassing. De plugin runtime hostt in een sandbox, een geïsoleerde en beveiligde Python-omgeving. De mogelijkheid van de python()-invoegtoepassing breidt de systeemeigen functionaliteit van Kusto Query Language uit met het enorme archief van OSS Python-pakketten. Met deze extensie kunt u geavanceerde algoritmen uitvoeren, zoals machine learning, kunstmatige intelligentie, statistische en tijdreeksen als onderdeel van de query.

Kusto Query Language-hulpprogramma's zijn niet handig voor het ontwikkelen en opsporen van fouten in Python-algoritmen. Ontwikkel daarom het algoritme in uw favoriete met Python geïntegreerde ontwikkelomgeving, zoals Jupyter, PyCharm, Visual Studio of Visual Studio Code. Wanneer het algoritme is voltooid, kopieert en plakt u het in KQL. Om deze werkstroom te verbeteren en te stroomlijnen, kunnen Kusto Explorer- of webgebruikersinterfaceclients worden geïntegreerd met Visual Studio Code voor het ontwerpen en opsporen van fouten in KQL inline Python-code.

Opmerking

Deze werkstroom kan alleen worden gebruikt voor het opsporen van fouten in relatief kleine invoertabellen (maximaal enkele MB). Daarom moet u mogelijk de invoer voor foutopsporing beperken. Als u een grote tabel wilt verwerken, beperkt u deze voor foutopsporing met behulp van | take, | sampleof where rand() < 0.x.

Vereiste voorwaarden

Python-foutopsporing inschakelen in Visual Studio Code

  1. Geef in uw clienttoepassing het voorvoegsel van een query met inline Python met set query_python_debug;

  2. Voer de query uit.

    • Kusto Explorer: Visual Studio Code wordt automatisch gestart met het debug_python.py script.
    • Kusto Web UI:
      1. Download en sla debug_python.py, df.txt, en kargs.txt op. Selecteer Toestaan in het venster. Bestanden opslaan in de geselecteerde map.
      2. Klik met de rechtermuisknop op debug_python.py en open met Visual Studio Code. Het debug_python.py script bevat de inline Python-code, uit de KQL-query, voorafgegaan door de sjablooncode om het invoergegevensframe te initialiseren vanuit df.txt en de woordenlijst met parameters uit kargs.txt.
  3. Start in Visual Studio Code het foutopsporingsprogramma van Visual Studio Code: Start>Debugging uitvoeren (F5) en selecteer Python-configuratie . Het foutopsporingsprogramma wordt gestart en stelt automatisch een onderbrekingspunt in om fouten in de inlinecode op te sporen.

  1. Geef in uw clienttoepassing het voorvoegsel van een query met inline Python met set query_python_debug;

  2. Voer de query uit.

    • Kusto Explorer: Visual Studio Code wordt automatisch gestart met het debug_python.py script.
    • KQL-query-set
      1. Download en sla debug_python.py, df.txt, en kargs.txt op. Selecteer Toestaan in het venster. Bestanden opslaan in de geselecteerde map.
      2. Klik met de rechtermuisknop op debug_python.py en open met Visual Studio Code. Het debug_python.py script bevat de inline Python-code, uit de KQL-query, voorafgegaan door de sjablooncode om het invoergegevensframe te initialiseren vanuit df.txt en de woordenlijst met parameters uit kargs.txt.
  3. Start in Visual Studio Code het foutopsporingsprogramma van Visual Studio Code: Start>Debugging uitvoeren (F5) en selecteer Python-configuratie . Het foutopsporingsprogramma wordt gestart en stelt automatisch een onderbrekingspunt in om fouten in de inlinecode op te sporen.

Hoe werkt inline Python-foutopsporing in Visual Studio Code?

  1. De query wordt geparseerd en uitgevoerd op de server totdat de vereiste | evaluate python() component is bereikt.
  2. De Python-sandbox wordt aangeroepen, maar in plaats van de code uit te voeren, wordt de invoertabel, de woordenlijst met parameters en de code geserialiseerd en teruggestuurd naar de client.
  3. Deze drie objecten worden opgeslagen in drie bestanden: df.txt, kargs.txten debug_python.py in de geselecteerde map (webinterface) of in de %TEMP% clientmap (Kusto Explorer).
  4. Visual Studio Code wordt gestart, vooraf geladen met het debug_python.py-bestand dat een voorvoegselcode bevat om df en kargs te initialiseren vanuit hun respectieve bestanden, gevolgd door het Python-script dat is ingesloten in de KQL-query.

Queryvoorbeeld

  1. Voer de volgende KQL-query uit in uw clienttoepassing:

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

    Bekijk de resulterende tabel:

    x x4
    1 1
    2 16
    3 81
    4 256
  2. Voer dezelfde KQL-query uit in uw clienttoepassing met behulp van 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 wordt gestart:

    Start Visual Studio Code.

  4. Visual Studio Code voert foutopsporing uit en drukt het gegevensframe 'result' af in de foutopsporingsconsole.

    VS Code-debuggen.

Opmerking

Er kunnen verschillen zijn tussen de Python-sandboxafbeelding en uw lokale installatie. Controleer de sandbox-image voor specifieke pakketten door een query op de plugin uit te voeren.

Opmerking

Als er fouten optreden bij het starten van de foutopsporingssessie van Visual Studio Code, kunt u het standaard terminalprofiel instellen op opdrachtprompt:

  • Druk op Ctrl+Shift+P om het opdrachtenpalet te openen.
  • Zoek naar 'Terminal: Standaardprofiel selecteren' en selecteer 'Opdrachtprompt'