EXECUTE NOTEBOOK¶
在笔记本编辑器之外执行笔记本。例如,您可以从工作表单独运行 EXECUTENOTEBOOK,将其嵌套在另一个 Snowflake 可执行文件(例如存储过程或任务)中,或在第三方编排工具中使用它。
该命令会运行笔记本中所有单元格的最新代码。结果可从笔记本编辑器访问。
备注
EXECUTE NOTEBOOK 还要求设置 QUERY_WAREHOUSE 参数,否则会出错。要设置 QUERY_WAREHOUSE 参数,请使用 ALTER NOTEBOOK 命令。
语法¶
EXECUTE NOTEBOOK <name>([ <parameter_string> [ , ... ] ]);
必填参数¶
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). |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
使用 EXECUTE NOTEBOOK 命令运行笔记本时:
Python 单元格在由 RUNTIME 参数定义的计算池上执行。
SQL 和 Snowpark 查询使用 WAREHOUSE 参数中指定的虚拟仓库执行。
备注
当您执行使用计算池的笔记本时,Python 代码将在计算池上运行。但是,您可能会在 Query History 中看到显示使用仓库来运行 EXECUTE NOTEBOOK 命令的活动。这是符合预期的行为。仓库短暂地用于初始化笔记本执行环境,但它不消耗任何仓库 credit。所有代码执行均由计算池处理。
示例¶
以下示例会在不传入任何实参的情况下触发指定笔记本的默认版本:
EXECUTE NOTEBOOK MY_DB.PUBLIC.MY_NOTEBOOK();
将参数传递到笔记本¶
您可以选择在运行笔记本时传入参数。在 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'
);
在笔记本的 Python 单元格中,可以通过 sys.argv
列表以字符串形式访问每个实参。
要了解如何在笔记本中访问和使用这些实参(包括如何解析列表或提取键值对),请参阅 在 Snowflake Notebooks 中开发和运行代码。