CREATE NOTEBOOK¶
创建新的 Snowflake 笔记本 或替换现有的笔记本。
语法¶
CREATE [ OR REPLACE ] NOTEBOOK [ IF NOT EXISTS ] <name>
[ FROM '<source_location>' ]
[ MAIN_FILE = '<main_file_name>' ]
[ COMMENT = '<string_literal>' ]
[ QUERY_WAREHOUSE = <warehouse_to_run_nb_and_sql_queries_in> ]
[ IDLE_AUTO_SHUTDOWN_TIME_SECONDS = <number_of_seconds> ]
[ WAREHOUSE = <warehouse_to_run_notebook_python_runtime> ]
必填参数¶
name
指定笔记本标识符(即名称)的字符串;在创建笔记本的架构中必须是唯一的。
此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,
"My object"
)。放在双引号内的标识符也区分大小写。有关更多信息,请参阅 标识符要求。
可选参数¶
FROM 'source_location'
指定应从指定暂存区位置的
.ipynb
文件或 私人笔记本 中创建笔记本:要从暂存区上的文件创建笔记本,请将
source_location
设置为文件的暂存区位置,并将 MAIN_FILE 参数设置为文件名。要从私人笔记本创建笔记本(例如,将私人笔记本用于共享用途),请将此参数设置为:
'snow://notebook/USER$username.schema.notebook/versions/version$1/'
其中:
username
是您的用户名。schema
是包含私人笔记本的架构的名称。notebook
是私人笔记本的名称。
如果未指定此参数,则通过模板笔记本创建笔记本对象。
MAIN_FILE = 'main_file_name'
笔记本文件名的用户指定标识符。这与
name
参数中指定的笔记本对象名称是分开的。此文件必须是ipynb
文件。QUERY_WAREHOUSE = warehouse_name
指定运行笔记本中 SQL 查询的仓库。此参数是可选的。但是,需要运行 EXECUTE NOTEBOOK 命令。
IDLE_AUTO_SHUTDOWN_TIME_SECONDS = number_of_seconds
笔记本自动关闭前的空闲时间秒数。此参数仅适用于在容器运行时运行的笔记本。值必须是介于 60 和 259200(72 小时)之间的整数。
默认值:3600 秒
WAREHOUSE = warehouse_name
运行笔记本内核和 Python 代码的仓库。
如果创建笔记本时没有指定仓库,Snowflake 会使用由架构沿袭参数 DEFAULT_STREAMLIT_NOTEBOOK_WAREHOUSE 定义的默认仓库。您可以在架构、数据库或账户沿袭级别设置此参数,以定义首选仓库。
访问控制要求¶
权限 |
对象 |
---|---|
USAGE |
数据库 |
USAGE 或 OWNERSHIP |
架构 |
CREATE NOTEBOOK |
架构 |
要对架构中的任何对象执行操作,需要对父数据库和架构具有 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
OR REPLACE
和IF NOT EXISTS
子句互斥。它们不能同时用于同一条语句中。CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
示例¶
以下示例将创建名为 mynotebook
的笔记本:
CREATE NOTEBOOK mynotebook;
虽然 QUERY_WAREHOUSE 参数是可选的,但建议在创建新笔记本时指定该参数,以便可以在仓库上运行 EXECUTE NOTEBOOK。
CREATE NOTEBOOK mynotebook
QUERY_WAREHOUSE = my_warehouse;
以下示例从暂存区上的 ipynb
文件创建笔记本:
CREATE NOTEBOOK mynotebook
FROM '@my_db.my_schema.my_stage'
MAIN_FILE = 'my_notebook_file.ipynb'
QUERY_WAREHOUSE = my_warehouse;