CREATE NOTEBOOK PROJECT

Creates a notebook project object. A notebook project object (NPO) links a Snowsight workspace to a database and schema. When the NPO is created, all files from the workspace are copied into the project in the specified database and schema. The notebook project can then be executed using EXECUTE NOTEBOOK PROJECT. You can create a notebook project object from a stage or a private workspace.

备注

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

另请参阅:

EXECUTE NOTEBOOK PROJECTSHOW NOTEBOOK PROJECTSCREATE NOTEBOOKEXECUTE NOTEBOOK

语法

Create a notebook project object from a private workspace:

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

Create a notebook project object from a stage:

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

必填参数

database_name.schema_name.project_name

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

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

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

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

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

Specifies the source that backs this notebook project.

  • Use a snow://workspace/... URL to create the notebook project from a workspace version in Snowsight.

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

When creating from a workspace, the value must be a snow://workspace/... URL pointing to a workspace version.

该路径通常包括:

  • USER$ 或其他所有者。

  • 架构。

  • 工作区名称。

  • 版本(例如 versions/head)。

例如:

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

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

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

可选参数

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> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

  • 笔记本项目指向 FROM 子句中指定的工作区版本。使用 versions/head 始终引用最新的工作区版本;而使用固定路径则引用一个静态版本。

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

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

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

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

示例

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

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

Create a notebook project from a stage:

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

Create a notebook project from a stage using 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';
Copy
语言: 中文