如何在Kusto中直接调用上传至Azure容器的.py/.ipynb文件?
Kusto调用外部Python文件的可行性及替代方案
核心结论
Kusto 不支持直接调用外部的 .py 或 .ipynb 文件——无论是本地文件还是上传到 Azure 容器的文件,目前仅支持通过你提到的内嵌代码方式运行 Python 逻辑:
let code = ''' if 1: # 你的Python代码逻辑 ''' table_name | evaluate python(typeof(*), code, ...)
可行替代方案
- 内嵌脚本内容:将本地
.py文件中的代码直接复制到 Kusto 查询的code变量中。如果代码量较大,可将其封装为 Kusto 函数,方便后续复用。 - 借助 Azure Functions 中转:若脚本逻辑复杂、需要频繁更新,可将 Python 脚本部署为 Azure Functions,然后在 Kusto 中通过
invoke external_function调用该函数,执行逻辑后将结果返回至 Kusto 进行后续处理。 - 处理 Jupyter 笔记本文件:对于
.ipynb文件,需先提取其中的纯 Python 代码块(移除注释、输出内容等非执行部分),再将代码内嵌到 Kusto 查询中,Kusto 无法直接解析.ipynb的格式结构。
实践建议
- 对于复用性高的 Python 逻辑,优先封装为 Kusto 函数,减少重复代码编写。
- 若脚本依赖第三方库,需确认这些库已在 Kusto 的 Python 运行环境中预装;若需自定义库,可通过配置自定义镜像扩展 Kusto 的 Python 环境(仅限托管集群,需按官方流程操作)。
- 上传至 Azure 容器的脚本可作为版本化存储,每次更新时提取代码嵌入到 Kusto 查询或 Azure Functions 中,便于维护和追溯。
内容的提问来源于stack exchange,提问作者mintorii
相关产品推荐
相关产品推荐

