使用 Visual Studio Code 對內嵌 Python 進行偵錯 Kusto 查詢語言
適用於: ✅Microsoft網狀架構✅Azure 數據總管
您可以使用 python() 外掛程式,在 Kusto 查詢語言 查詢中內嵌 Python 程式代碼。 外掛程式運行時間裝載於沙箱、隔離且安全的 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)。 因此,您可能需要限制輸入以進行偵錯。 如果您需要處理大型數據表,請使用 、 | sample
或 where rand() < 0.x
來限制它進行偵錯| take
。
在 Visual Studio Code 中啟用 Python 偵錯
在您的用戶端應用程式中,在包含內嵌 Python 的查詢前面加上 set query_python_debug;
執行查詢。
- Kusto Explorer:Visual Studio Code 會自動使用 debug_python.py 腳本啟動。
- Kusto Web UI:
- 下載並儲存 debug_python.py、 df.txt和 kargs.txt。 在視窗中,選取 [ 允許]。 將檔案儲存 在選取的目錄中。
- 以滑鼠右鍵按兩下 debug_python.py ,並使用Visual Studio Code 開啟。
debug_python.py腳本包含來自 KQL 查詢的內嵌 Python 程式代碼,其前面加上範本程式碼,以從 df.txt 初始化輸入數據框架,以及來自 kargs.txt 的參數位典。
在 Visual Studio Code 中,啟動 Visual Studio Code 調試程式: 執行>[開始偵錯] [F5],選取 [ Python 組態]。 調試程式會啟動並自動設定斷點來偵錯內嵌程序代碼。
在您的用戶端應用程式中,在包含內嵌 Python 的查詢前面加上 set query_python_debug;
執行查詢。
- Kusto Explorer:Visual Studio Code 會自動使用 debug_python.py 腳本啟動。
- KQL 查詢集:
- 下載並儲存 debug_python.py、 df.txt和 kargs.txt。 在視窗中,選取 [ 允許]。 將檔案儲存 在選取的目錄中。
- 以滑鼠右鍵按兩下 debug_python.py ,並使用Visual Studio Code 開啟。
debug_python.py腳本包含來自 KQL 查詢的內嵌 Python 程式代碼,其前面加上範本程式碼,以從 df.txt 初始化輸入數據框架,以及來自 kargs.txt 的參數位典。
在 Visual Studio Code 中,啟動 Visual Studio Code 調試程式: 執行>[開始偵錯] [F5],選取 [ Python 組態]。 調試程式會啟動並自動設定斷點來偵錯內嵌程序代碼。
Visual Studio Code 中的內嵌 Python 偵錯如何運作?
- 查詢會在伺服器中剖析和執行,直到達到必要的
| evaluate python()
子句為止。
- 會叫用 Python 沙箱,而不是執行程式碼,而是串行化輸入數據表、參數位典和程式代碼,並將其傳回用戶端。
- 這三個物件會儲存在三個檔案中:df.txt、kargs.txt,以及選取的目錄 (Web UI) 或用戶端 %TEMP% 目錄 (Kusto Explorer) 中的debug_python.py。
- Visual Studio Code 會啟動,並預先載入 包含前置詞程式碼的 debug_python.py 檔案,以從其各自的檔案初始化 df 和 kargs,後面接著內嵌在 KQL 查詢中的 Python 腳本。
在您的用戶端應用程式中執行下列 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))
請參閱產生的數據表:
使用 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))
Visual Studio Code 已啟動:

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

注意
Python 沙盒映像和本機安裝之間可能有差異。 藉由查詢外掛程式來檢查特定套件的沙箱映像。
注意
如果啟動 Visual Studio Code 偵錯工作階段時發生錯誤,請嘗試將預設終端機設定檔設定為命令提示字元:
- 按 CTRL + SHIFT + P 以開啟命令選擇區。
- 搜尋 「終端機:選取預設設定檔」,然後選取 [命令提示字元]