你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 “版本 ”下拉列表切换服务。 了解有关导航的详细信息。
适用于: ✅ Microsoft Fabric ✅ Azure 数据资源管理器
可以使用 python() 插件在 Kusto 查询语言查询中嵌入 Python 代码。 插件运行时托管在沙盒中,这是一个独立且安全的 Python 环境。 python() 插件功能扩展了 Kusto 查询语言的本机功能,并提供了大量的 OSS Python 包。 使用此扩展,你可以在查询中运行高级算法,例如机器学习、人工智能、统计和时间系列。
Kusto 查询语言工具不适用于开发和调试 Python 算法。 因此,在喜欢的 Python 集成开发环境(如 Jupyter、PyCharm、Visual Studio 或 Visual Studio Code)上开发算法。 算法完成后,将其复制并粘贴到 KQL 中。 为了改进和简化此工作流,Kusto Explorer 或 Web UI 客户端可以与 Visual Studio Code 集成,以便创作和调试 KQL 内联 Python 代码。
注意
此工作流仅可用来调试相对较小的输入表(最大为几 MB)。 因此,可能需要限制用于调试的输入。 如果需要处理大型表,可以通过使用| take、| sample或where rand() < 0.x进行限制来调试它。
先决条件
- Azure 订阅。 创建免费 Azure 帐户。
- Azure 数据资源管理器群集和数据库。 创建群集和数据库。
- 安装 Python Anaconda 分发版。 在“高级选项”中,选择“将 Anaconda 添加到我的 PATH 环境变量”。
- 安装 Visual Studio Code。
- 安装适用于 Visual Studio Code 的 Python 扩展。
- 启用 Python 插件。 有关详细信息,请参阅管理 Azure 数据资源管理器 群集中的语言扩展。
- 具有已启用 Microsoft Fabric 的容量的工作区。
- 数据库。 创建 KQL 数据库。
- 安装 Python Anaconda 分发版。 在“高级选项”中,选择“将 Anaconda 添加到我的 PATH 环境变量”。
- 安装 Visual Studio Code。
- 安装适用于 Visual Studio Code 的 Python 扩展。
- 启用 Python 插件。
在 Visual Studio Code 中启用 Python 调试
在客户端应用程序中,为包含内联 Python 的查询添加
set query_python_debug;前缀运行该查询。
- Kusto 资源管理器:使用 debug_python.py 脚本自动启动 Visual Studio Code。
- 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 资源管理器:使用 debug_python.py 脚本自动启动 Visual Studio Code。
- 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 和 debug_python.py,这些文件位于所选目录 (Web UI) 或客户端 %TEMP% 目录 (Kusto Explorer) 中。
- 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))查看生成的表:
x x4 1 1 2 16 3 81 4 256 使用
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 打开命令面板。
- 搜索“终端: 选择默认配置文件”,然后选择“命令提示符”