使用 Python 编写存储过程

您可以编写一个用 Python 编码的处理程序的存储过程。通过使用处理程序中 Snowpark 库 中的 APIs,可以对 Snowflake 表执行查询、更新和其他工作。

借助存储过程,您可以使用Snowflake 仓库作为计算框架,在 Snowflake 中构建和运行数据管道。使用 适用于 Python 的 Snowpark API 编写存储过程,以此来构建数据管道。若要计划这些存储过程的执行,请使用 任务

有关机器学习模型和 Snowpark Python 的信息,请参阅 使用 Snowpark Python 训练机器学习模型

您可以 使用 Python 工作表 或使用本地开发环境来编写适用于 Python 的存储过程。

您可以在处理程序代码执行时获取日志和跟踪数据。有关更多信息,请参阅 日志记录、跟踪和指标

备注

要创建和调用匿名过程,请使用 CALL(使用匿名过程)。创建和调用匿名过程不需要具有 CREATE PROCEDURE 架构权限的角色。

本地编写存储过程的先决条件

要在本地开发环境中编写 Python 存储过程,需满足以下先决条件:

  • 必须使用版本 0.4.0 或更新版本的 Snowpark 库。

  • 启用 Anaconda 包,以便 Snowpark Python 可以加载所需的第三方依赖项。请参阅 使用 Anaconda 的第三方包

  • 受支持的 Python 版本包括:

    • 3.9

    • 3.10

    • 3.11

请确保设置您的开发环境以使用 Snowpark 库。请参阅 为 Snowpark 设置开发环境

使用 Anaconda 的第三方包

您可以在创建 Python 存储过程时指定要安装的 Anaconda 包。要查看 Anaconda 的第三方包列表,请参阅 ` Anaconda Snowflake 通道 <https://repo.anaconda.com/pkgs/snowflake (https://repo.anaconda.com/pkgs/snowflake)>`_。这些第三方包由 Anaconda 构建和提供。您可以根据 Anaconda 服务条款的补充嵌入式软件条款免费使用 Snowflake conda 通道进行本地测试和开发。

有关限制,请参阅 Python 存储过程的限制

开始使用

在开始使用 Snowflake 中的 Anaconda 提供的包之前,您必须确认 外部产品条款

备注

您必须使用 ORGADMIN 角色来接受条款。您只需为自己的 Snowflake 账户接受一次 外部产品条款。如果您无权访问 ORGADMIN 角色,请参阅 在账户中启用 ORGADMIN 角色

  1. 登录 Snowsight。

  2. 选择 Admin » Billing & Terms

  3. Anaconda 部分中,选择 Enable

  4. Anaconda Packages 对话框中,单击链接查看 外部产品条款页面

  5. 如果您同意条款,请选择 Acknowledge & Continue

如果您在尝试接受 外部产品条款 时遇到错误,可能是由于您的用户配置文件中缺少信息,如姓名或电子邮件地址。如果您具有管理员权限,请参阅 向您的用户简介添加用户详细信息,以使用 Snowsight 更新您的简介。否则,请联系管理员 更新您的账户

备注

如果您不确认上述 Snowflake 外部产品条款,您仍然可以使用存储过程,但会受到以下限制:

  • 您不能使用 Anaconda 的任何第三方包。

  • 您仍然可以将 Snowpark Python 指定为存储过程中的包,但不能指定特定版本。

  • DataFrame 对象交互时不能使用 to_pandas 方法。

显示和使用包

您可以通过查询 Information Schema 中的 PACKAGES 视图来显示所有可用的包及其版本信息:

SELECT * FROM information_schema.packages WHERE LANGUAGE = 'python';
Copy

有关更多信息,请参阅 Snowflake Python UDF 文档中的 使用第三方包

调用存储过程

创建存储过程后,可以通过以下方式调用存储过程:

语言: 中文