Debugowanie wbudowanego języka Zapytań Kusto w języku Python przy użyciu programu Visual Studio Code

Przełącz usługi przy użyciu rozwijanej listy Wersja. Dowiedz się więcej o nawigacji.
Dotyczy: ✅ Microsoft Fabric ✅ Azure Data Explorer

Kod języka Python można osadzać w zapytaniach języka Kusto Query Language przy użyciu wtyczki python(). Środowisko uruchomieniowe wtyczki jest hostowane w piaskownicy, izolowanym i bezpiecznym środowisku języka Python. Funkcja wtyczki python() rozszerza język zapytań Kusto natywne funkcje dzięki ogromnej archiwum pakietów języka Python systemu operacyjnego. To rozszerzenie umożliwia uruchamianie zaawansowanych algorytmów, takich jak uczenie maszynowe, sztuczna inteligencja, statystyka i szeregi czasowe w ramach zapytania.

narzędzia język zapytań Kusto nie są wygodne podczas opracowywania i debugowania algorytmów języka Python. W związku z tym opracuj algorytm w ulubionym środowisku projektowym zintegrowanym z językiem Python, takim jak Jupyter, PyCharm, Visual Studio lub Visual Studio Code. Po zakończeniu algorytmu skopiuj i wklej go do KQL. Aby ulepszyć i usprawnić ten przepływ pracy, klienci programu Kusto Explorer lub internetowego interfejsu użytkownika mogą integrować się z programem Visual Studio Code na potrzeby tworzenia i debugowania wbudowanego kodu języka Python języka KQL.

Uwaga

Ten przepływ pracy może służyć tylko do debugowania stosunkowo małych tabel wejściowych (do kilku MB). W związku z tym może być konieczne ograniczenie danych wejściowych do debugowania. Jeśli musisz przetworzyć dużą tabelę, ogranicz ją do debugowania przy użyciu metody | take, | samplelub where rand() < 0.x.

Wymagania wstępne

Włączanie debugowania języka Python w programie Visual Studio Code

  1. W aplikacji klienckiej prefiks zapytania zawierającego wbudowany język Python set query_python_debug;

  2. Uruchamianie zapytania.

    • Kusto Explorer: program Visual Studio Code jest automatycznie uruchamiany za pomocą skryptu debug_python.py .
    • Internetowy interfejs użytkownika usługi Kusto:
      1. Pobierz i zapisz debug_python.py, df.txt i kargs.txt. W oknie wybierz pozycję Zezwalaj. Zapisz pliki w wybranym katalogu.
      2. Kliknij prawym przyciskiem myszy debug_python.py i otwórz go za pomocą programu Visual Studio Code. Skrypt debug_python.py zawiera wbudowany kod języka Python z zapytania KQL poprzedzony kodem szablonu w celu zainicjowania ramki danych wejściowych z df.txt i słownika parametrów z kargs.txt.
  3. W programie Visual Studio Code uruchom debuger programu Visual Studio Code: Uruchom uruchamianie>debugowania (F5) i wybierz pozycję Konfiguracja języka Python. Debuger uruchamia i automatycznie ustawia punkt przerwania w celu debugowania kodu wbudowanego.

  1. W aplikacji klienckiej prefiks zapytania zawierającego wbudowany język Python set query_python_debug;

  2. Uruchamianie zapytania.

    • Kusto Explorer: program Visual Studio Code jest automatycznie uruchamiany za pomocą skryptu debug_python.py .
    • Zestaw zapytań KQL:
      1. Pobierz i zapisz debug_python.py, df.txt i kargs.txt. W oknie wybierz pozycję Zezwalaj. Zapisz pliki w wybranym katalogu.
      2. Kliknij prawym przyciskiem myszy debug_python.py i otwórz go za pomocą programu Visual Studio Code. Skrypt debug_python.py zawiera wbudowany kod języka Python z zapytania KQL poprzedzony kodem szablonu w celu zainicjowania ramki danych wejściowych z df.txt i słownika parametrów z kargs.txt.
  3. W programie Visual Studio Code uruchom debuger programu Visual Studio Code: Uruchom uruchamianie>debugowania (F5) i wybierz pozycję Konfiguracja języka Python. Debuger uruchamia i automatycznie ustawia punkt przerwania w celu debugowania kodu wbudowanego.

Jak działa wbudowane debugowanie języka Python w programie Visual Studio Code?

  1. Zapytanie jest analizowane i wykonywane na serwerze do momentu osiągnięcia wymaganej | evaluate python() klauzuli.
  2. Piaskownica języka Python jest wywoływana, ale zamiast uruchamiać kod, serializuje tabelę wejściową, słownik parametrów i kod oraz wysyła je z powrotem do klienta.
  3. Te trzy obiekty są zapisywane w trzech plikach: df.txt, kargs.txt i debug_python.py w wybranym katalogu (interfejs użytkownika sieci Web) lub w katalogu %TEMP% klienta (Eksplorator Kusto).
  4. Program Visual Studio Code jest uruchamiany, wstępnie ładowany z plikiem debug_python.py zawierającym kod prefiksu do inicjowania plików df i kargs z odpowiednich plików, a następnie skrypt języka Python osadzony w zapytaniu KQL.

Przykład zapytania

  1. Uruchom następujące zapytanie KQL w aplikacji klienckiej:

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

    Zobacz wynikowej tabeli:

    x x4
    1 1
    2 16
    3 81
    100 256
  2. Uruchom to samo zapytanie KQL w aplikacji klienckiej przy użyciu polecenia 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. Program Visual Studio Code został uruchomiony:

    uruchom program Visual Studio Code.

  4. Program Visual Studio Code debuguje i drukuje ramkę danych "result" w konsoli debugowania:

    Debugowanie programu VS Code.

Uwaga

Mogą istnieć różnice między obrazem piaskownicy języka Python a instalacją lokalną. Sprawdź obraz piaskownicy pod kątem określonych pakietów, wysyłając zapytanie do wtyczki.

Uwaga

Jeśli podczas uruchamiania sesji debugowania programu Visual Studio Code występują błędy, spróbuj ustawić domyślny profil terminalu na wiersz polecenia:

  • Naciśnij CTRL + SHIFT + P, aby otworzyć paletę poleceń.
  • Wyszukaj frazę "Terminal: wybierz profil domyślny" i wybierz pozycję "Wiersz polecenia"