EXECUTE NOTEBOOK PROJECT

在 Notebooks 编辑器之外执行笔记本项目中存储的笔记本。该命令以非交互式(无界面)模式运行笔记本,并可从以下位置执行:

  • 工作表或 SQL 文件。

  • 其他 Snowflake 可执行对象(任务)。

  • 可发出 SQL 的外部编排工具(例如 Airflow、Prefect、Dagster 以及 CI/CD 系统)。

该命令会使用您配置的运行时、计算池、仓库以及外部访问集成来运行您指定为 MAIN_FILE 的笔记本文件。在容器运行时中运行的笔记本会在计算池上执行,而 SQL/Snowpark 查询则在仓库上执行。

另请参阅:

CREATE NOTEBOOK PROJECTEXECUTE NOTEBOOKCREATE TASK

语法

EXECUTE NOTEBOOK PROJECT <database_name>.<schema_name>.<project_name>
  [ MAIN_FILE = '<notebook_file_name>.ipynb' ]
  [ COMPUTE_POOL = '<compute_pool_name>' ]
  [ RUNTIME = '<runtime_version>' ]          -- e.g., 'V2.2-CPU-PY3.12'
  [ QUERY_WAREHOUSE = '<warehouse_name>' ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ('<integration_name>' [ , ... ]) ];
Copy

必填参数

database_name.schema_name.project_name

要执行的笔记本项目的完全限定标识符。

必须引用一个已存在的笔记本项目,该项目需通过 CREATE NOTEBOOK PROJECT 创建。

除非该项目位于当前的 DATABASE 和 SCHEMA 中,否则必须使用完全限定名称。

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

可选参数

根据项目及运行时的具体配置情况,实际使用中可能需要其中的部分参数。以下说明介绍了这些参数的用途及其常见使用方式。

MAIN_FILE = 'notebook_file_name.ipynb'

指定要执行的工作区中的主笔记本文件(例如 'main.ipynb')。

必须是一个 .ipynb 笔记本文件,且位于该项目所引用的工作区中。

该路径为相对于工作区根目录的相对路径。

COMPUTE_POOL = 'compute_pool_name'

指定在容器运行时中执行笔记本时所使用的计算池。

当笔记本运行时使用 Snowpark Container Services 时,此参数为必填项。

RUNTIME = 'runtime_version'

指定用于执行笔记本的运行时镜像/版本(例如 'V2.2-CPU-PY3.12')。

决定笔记本执行时使用的 Python 版本及其执行环境。

对应一个容器运行时镜像(CPU 或 GPU),或一个仓库运行时变体。

QUERY_WAREHOUSE = 'warehouse_name'

指定用于执行 SQL 以及来自笔记本的 Snowpark 查询的虚拟仓库。

如果笔记本执行 SQL 或 Snowpark 操作,且未通过其他方式配置仓库,则此参数为必填项。

在使用容器运行时时,查询下推由仓库处理,而 Python 代码在计算池上执行。

EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )

指定笔记本在执行过程中可以使用的一个或多个外部访问集成。

当笔记本需要进行出站网络调用时(例如访问外部 APIs),该参数为必填项。

每个集成名称都必须指向一个已存在的外部访问集成。

可以在括号中使用逗号分隔的列表形式指定多个外部访问集成。

示例:

EXTERNAL_ACCESS_INTEGRATIONS = ('http_eai', 's3_eai');
Copy

访问控制要求

执行 EXECUTE NOTEBOOK PROJECT 的角色必须对该笔记本项目拥有足够的权限。

此外,执行角色还必须对以下对象拥有 USAGE/OWNERSHIP 权限:

  • 查询仓库。

  • 计算池。

  • 包含该笔记本项目的数据库和架构。

  • 命令中引用的任务以及外部访问集成。

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

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

使用说明

您可以在任务中调用 EXECUTE NOTEBOOK PROJECT,从而将笔记本运行纳入更大的工作流中。

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

  • 笔记本代码会在 COMPUTE_POOL 参数指定的计算池上执行,并使用 RUNTIME 参数指定的运行时。

  • SQL 以及 Snowpark 查询将使用 QUERY_WAREHOUSE 参数指定的虚拟仓库执行。

示例

使用所有参数执行笔记本项目:

EXECUTE NOTEBOOK PROJECT "sales_detection_db"."schema"."DEFAULT_PROJ_B32BCFD4"
  MAIN_FILE = 'notebook_file.ipynb'
  COMPUTE_POOL = 'test_X_CPU'
  RUNTIME = 'V2.2-CPU-PY3.10'
  QUERY_WAREHOUSE = 'ENG_INFRA_WH'
  EXTERNAL_ACCESS_INTEGRATIONS = ('test_EAI');
Copy

仅使用仓库执行笔记本项目:

EXECUTE NOTEBOOK PROJECT analytics_db.workflow_schema.workflow_proj
  MAIN_FILE = 'jobs/nightly_etl.ipynb'
  QUERY_WAREHOUSE = 'ETL_WH';
Copy
语言: 中文