EXECUTE NOTEBOOK

在笔记本编辑器之外执行笔记本。例如,您可以从工作表单独运行 EXECUTENOTEBOOK,将其嵌套在另一个 Snowflake 可执行文件(例如存储过程或任务)中,或在第三方编排工具中使用它。

该命令会运行笔记本中所有单元格的最新代码。结果可从笔记本编辑器访问。

备注

EXECUTE NOTEBOOK 还要求设置 QUERY_WAREHOUSE 参数,否则会出错。要设置 QUERY_WAREHOUSE 参数,请使用 ALTER NOTEBOOK 命令。

语法

EXECUTE NOTEBOOK <name>([ <parameter_string> [ , ... ] ]);
Copy

必填参数

name

指定笔记本标识符(即名称);在创建笔记本的架构中必须是唯一的。如果笔记本未存储在您当前操作的 database.schema 中,则必须使用完全限定名称。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,“My object”)。放在双引号内的标识符也区分大小写。

有关更多信息,请参阅 标识符要求

可选参数

parameter_string

可选择将参数传递给笔记本。在笔记本的 Python 单元格中,您可以使用 sys.argv 变量 (https://docs.python.org/3/library/sys.html#sys.argv) 访问这些实参。

仅支持字符串;其他数据类型(例如整数或布尔值)会被解释为 NULL。

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

备注

OWNERSHIP

笔记本

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

使用 EXECUTE NOTEBOOK 命令运行笔记本时:

  • Python 单元格在由 RUNTIME 参数定义的计算池上执行。

  • SQL 和 Snowpark 查询使用 WAREHOUSE 参数中指定的虚拟仓库执行。

备注

当您执行使用计算池的笔记本时,Python 代码将在计算池上运行。但是,您可能会在 Query History 中看到显示使用仓库来运行 EXECUTE NOTEBOOK 命令的活动。这是符合预期的行为。仓库短暂地用于初始化笔记本执行环境,但它不消耗任何仓库 credit。所有代码执行均由计算池处理。

示例

以下示例会在不传入任何实参的情况下触发指定笔记本的默认版本:

EXECUTE NOTEBOOK MY_DB.PUBLIC.MY_NOTEBOOK();
Copy

将参数传递到笔记本

您可以选择在运行笔记本时传入参数。在 Python 单元格中,您可以使用 sys.argv 变量访问这些实参,此变量是 一个内置的 Python 列表,用于存放命令行实参 (https://docs.python.org/3/library/sys.html#sys.argv)。

您可以使用实参自定义笔记本行为;例如,您可以传入输入值、指定目标环境或根据这些实参调整执行逻辑。

示例

EXECUTE NOTEBOOK MY_DATABASE.PUBLIC.MY_NOTEBOOK(
  'parameter_string a,b,c,d',
  'target_database=PROD_DB'
);
Copy

在笔记本的 Python 单元格中,可以通过 sys.argv 列表以字符串形式访问每个实参。

要了解如何在笔记本中访问和使用这些实参(包括如何解析列表或提取键值对),请参阅 在 Snowflake Notebooks 中开发和运行代码

语言: 中文