CREATE NOTEBOOK PROJECT

创建笔记本项目对象。笔记本项目对象 (NPO) 将 Snowsight 工作区关联到数据库及架构。创建 NPO 时,工作区中的所有文件都会被复制到指定数据库和架构中的项目中。然后,可以使用 EXECUTE NOTEBOOK PROJECT 执行笔记本项目。您可以从暂存区或专用工作区创建笔记本项目对象。

备注

目前不支持从共享工作区创建笔记本项目对象。

另请参阅:

EXECUTE NOTEBOOK PROJECTSHOW NOTEBOOK PROJECTSCREATE NOTEBOOKEXECUTE NOTEBOOK

语法

从专用工作区创建笔记本项目对象:

CREATE NOTEBOOK PROJECT <database_name>.<schema_name>.<project_name>
  FROM 'snow://workspace/<workspace_path>'
  [ COMMENT = '<string_literal>' ];

从暂存区创建笔记本项目对象:

CREATE NOTEBOOK PROJECT [ IF NOT EXISTS ] <database_name>.<schema_name>.<project_name>
  FROM '@<database_name>.<schema_name>.<stage_name>'
  [ COMMENT = '<string_literal>' ];

必填参数

database_name.schema_name.project_name

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

项目名称在架构中必须是唯一的。

标识符必须以字母字符开头,且不能包含空格或特殊字符,除非标识符字符串放在双引号内(例如 "My Project")。

放在双引号内的标识符区分大小写。

FROM 'snow://workspace/{workspace_path' | '@database_name.schema_name.stage_name' }

指定支持此笔记本项目的源。

  • 使用 snow://workspace/... URL 从 Snowsight 中的工作区版本创建笔记本项目:

  • 使用暂存区引用(例如,'@my_db.my_schema.my_stage'),从已部署到内部或临时暂存区的笔记本文件创建笔记本项目。

从工作区创建时,该值必须是指向工作区版本的 snow://workspace/... URL。

该路径通常包括:

  • USER$ 或其他所有者。

  • 架构。

  • 工作区名称。

  • Version (for example, versions/last).

例如:

  • snow://workspace/USER$.MY_SCHEMA."my_notebook_workspace"/versions/last

要找到工作区路径,请运行以下命令:

LIST 'snow://workspace/USER$.PUBLIC.DEFAULT$/versions/last/';

可选参数

COMMENT = 'string_literal'

向笔记本项目对象添加注释或描述。

使用注释来描述目的或工作流程(例如 COMMENT = 'Notebook project for this workflow')。

注释存储为对象元数据;避免在注释中包含敏感数据。

访问控制要求

要执行 CREATE NOTEBOOK PROJECT,角色必须具有足够的权限才能在目标数据库和架构中创建对象。所需权限包括:

  • 对数据库的 USAGE 或 OWNERSHIP 权限。

  • 对架构的 USAGE 或 OWNERSHIP。

  • 对架构的 CREATE NOTEBOOK PROJECT 权限,允许在该架构中创建对象。

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

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

使用说明

  • OR REPLACE 和 IF NOT EXISTS 子句互斥。它们不能同时用于同一条语句中。

  • CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

  • A notebook project points to the specified workspace version indicated in the FROM clause. Using versions/last always references the latest workspace version; using a fixed path references a static version.

  • 如果从暂存区创建笔记本项目,则可以通过从暂存区添加版本来更新笔记本项目。在工作区中运行和计划笔记本 是 Web 令牌 ()、 令牌或 编程访问令牌 。有关详细信息,请参阅 在工作区中运行和计划笔记本

  • 使用描述性项目名称来简化工作流程编排。

  • 替换项目会更新存储的工作区路径和元数据。

  • 要运行 CREATE NOTEBOOK PROJECT 命令,您必须从工作区中的 SQL 文件或 SQL 工作表(而不是从笔记本单元格内)执行该命令。

示例

为工作区创建笔记本项目:

CREATE NOTEBOOK PROJECT analytics_db.workflow_schema.workflow_proj
  FROM 'snow://workspace/USER$.workflow_schema."etl_workflow"/versions/last'
  COMMENT = 'Notebook project for nightly ETL workflow';

从暂存区创建笔记本项目:

CREATE NOTEBOOK PROJECT analytics_db.workflow_schema.workflow_proj
  FROM '@NOTEBOOK_PROJECT_STAGE'
  COMMENT = 'Notebook project created from an internal or temporary stage';

使用 IF NOT EXISTS 从暂存区创建笔记本项目:

CREATE NOTEBOOK PROJECT IF NOT EXISTS ML_TRAIN_NOTEBOOK3
  FROM '@NOTEBOOK_PROJECT_STAGE1'
  COMMENT = 'Notebook project created from an internal or temporary stage';