共用方式為


使用 Visual Studio Code 除錯 Kusto 查詢語言中的內嵌 Python

使用 版本 下拉選單切換服務。 了解更多關於導航的資訊
適用於: ✅ Microsoft Fabric ✅ Azure Data Explorer

你可以用 python() 外掛將 Python 程式碼嵌入 Kusto 查詢語言查詢中。 外掛在沙盒中運行,這是一個獨立且安全的 Python 環境。 python() 外掛程式功能會透過大量 OSS Python 套件封存來擴充 Kusto 查詢語言 原生功能。 此延伸模組可讓您執行進階演算法,例如機器學習、人工智慧、統計和時間序列,作為查詢的一部分。

Kusto 查詢語言 工具不適合開發和偵錯 Python 演算法。 因此,請在您慣用的 Python 集成開發環境中開發演算法,例如 Jupyter、PyCharm、Visual Studio 或 Visual Studio Code。 演算法完成後,複製貼上到 KQL。 為了改善及簡化此工作流程,Kusto Explorer 或 Web UI 用戶端可以與 Visual Studio Code 整合,以撰寫和偵錯 KQL 內嵌 Python 程式代碼。

注意

此工作流程只能用來偵錯相對較小的輸入數據表(最多只有 MB)。 因此,你可能需要限制偵錯過程中的輸入。 如果你需要處理一個大型資料表,可以用 | take、 、 | samplewhere rand() < 0.x來限制它作為除錯。

必要條件

在 Visual Studio Code 中啟用 Python 偵錯

  1. 在您的用戶端應用程式中,在包含內嵌 Python 的查詢前面加上 set query_python_debug;

  2. 執行查詢。

    • Kusto Explorer:Visual Studio Code 會自動使用 debug_python.py 腳本啟動。
    • Kusto Web UI:
      1. 下載並儲存 debug_python.pydf.txtkargs.txt。 在視窗中,選取 [ 允許]。 將檔案儲存 在選取的目錄中。
      2. 以滑鼠右鍵按兩下 debug_python.py ,並使用Visual Studio Code 開啟。 debug_python.py腳本包含來自 KQL 查詢的內嵌 Python 程式代碼,其前面加上範本程式碼,以從 df.txt 初始化輸入數據框架,以及來自 kargs.txt 的參數位典。
  3. 在 Visual Studio Code 中,啟動 Visual Studio Code 調試程式: 執行>[開始偵錯] [F5],選取 [ Python 組態]。 調試程式會啟動並自動設定斷點來偵錯內嵌程序代碼。

  1. 在您的用戶端應用程式中,在包含內嵌 Python 的查詢前面加上 set query_python_debug;

  2. 執行查詢。

    • Kusto Explorer:Visual Studio Code 會自動使用 debug_python.py 腳本啟動。
    • KQL 查詢集:
      1. 下載並儲存 debug_python.pydf.txtkargs.txt。 在視窗中,選取 [ 允許]。 將檔案儲存 在選取的目錄中。
      2. 以滑鼠右鍵按兩下 debug_python.py ,並使用Visual Studio Code 開啟。 debug_python.py腳本包含來自 KQL 查詢的內嵌 Python 程式代碼,其前面加上範本程式碼,以從 df.txt 初始化輸入數據框架,以及來自 kargs.txt 的參數位典。
  3. 在 Visual Studio Code 中,啟動 Visual Studio Code 調試程式: 執行>[開始偵錯] [F5],選取 [ Python 組態]。 調試程式會啟動並自動設定斷點來偵錯內嵌程序代碼。

Visual Studio Code 中的內嵌 Python 偵錯如何運作?

  1. 查詢會在伺服器中剖析和執行,直到達到必要的 | evaluate python() 子句為止。
  2. 會叫用 Python 沙箱,而不是執行程式碼,而是串行化輸入數據表、參數位典和程式代碼,並將其傳回用戶端。
  3. 這三個物件會儲存在三個檔案中:df.txt、kargs.txt,以及選取的目錄 (Web UI) 或用戶端 %TEMP% 目錄 (Kusto Explorer) 中的debug_python.py。
  4. Visual Studio Code 會啟動,並預先載入 包含前置詞程式碼的 debug_python.py 檔案,以從其各自的檔案初始化 df 和 kargs,後面接著內嵌在 KQL 查詢中的 Python 腳本。

查詢範例

  1. 在您的用戶端應用程式中執行下列 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))
    

    請參閱產生的數據表:

    x x4
    1 1
    2 16
    3 81
    4 256
  2. 使用 set query_python_debug;在用戶端應用程式中執行相同的 KQL 查詢:

    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 已啟動:

    啟動 Visual Studio Code。

  4. Visual Studio Code 會在偵錯控制台中偵錯並列印「結果」數據框架:

    VS Code 偵錯。

注意

Python 沙盒映像和本機安裝之間可能有差異。 藉由查詢外掛程式來檢查特定套件的沙箱映像。

注意

如果啟動 Visual Studio Code 偵錯工作階段時發生錯誤,請嘗試將預設終端機設定檔設定為命令提示字元:

  • 按 CTRL + SHIFT + P 以開啟命令選擇區。
  • 搜尋 「終端機:選取預設設定檔」,然後選取 [命令提示字元]