专用笔记本¶
在 Snowsight 中,您可以创建用户所有的专用笔记本。此专用笔记本存储在您的个人数据库中:一个专用的工作区,您可以在其中创建、修改和管理专用笔记本。与基于角色的所有权不同,个人数据库中的对象归个人用户所有。您可以在个人数据库中创建专用笔记本,无需等待他人授予适当权限。
备注
The lifecycle of a personal database is directly linked to its owner. If a user is deleted from the Snowflake account, their personal database is transferred to the role that deleted the user.
Your personal database is named after your username in the form USER$username (for example, USER$JOHNDOE). You
can also reference it with the prefix USER$. You can view details for your personal database in Catalog »
Database Explorer.
专用笔记本可以执行以下任务:
私下以交互方式开发代码并尝试数据和模型。
通过将笔记本从个人数据库复制到常规的非个人数据库来部署这些项目。
备注
用户不能在个人数据库中创建表或其他对象。有关限制和约束的完整列表,请参阅 限制。
使用专用笔记本的先决条件¶
在创建和使用专用笔记本之前,具有 ACCOUNTADMIN 角色的管理员必须先完成以下任务:
- 在账户级别或对特定用户启用个人数据库功能。
个人数据库是 Snowflake 对象,使笔记本能够作为专用笔记本。有关完成此任务的信息,请参阅以下部分:
- 如有必要,为将要创建专用笔记本的用户适当设置次要角色。
有关完成此任务的信息,可能取决于近期 BCR 捆绑包的启用,请参阅 激活专用笔记本用户的所有次要角色。
重要
在管理员启用个人数据库后,受影响的用户必须注销并重新登录才能看到新的用户界面行为。
有关创建专用笔记本的详细信息,请参阅 创建新笔记本。
激活专用笔记本用户的所有次要角色¶
在创建专用笔记本之前,必须先启用 所有 次要角色。这是因为专用笔记本归用户所有,而非其主要角色。
要在默认情况下激活用户的所有次要角色,用户或管理员可以使用 ALTER USER 命令取消设置该用户的 DEFAULT_SECONDARY_ROLES 对象属性,或者设置为 ('ALL') 。
例如:
ALTER USER my_user UNSET DEFAULT_SECONDARY_ROLES;
ALTER USER my_user SET DEFAULT_SECONDARY_ROLES = ('ALL');
After the user or an administrator executes the SQL statement above, the user can create a private notebook in Snowsight (Projects » Notebooks) or by executing SQL commands in a new worksheet.
要在现有工作表中执行 SQL 命令的用户必须在创建专用笔记本前执行以下 SQL 语句:
USE SECONDARY ROLES ALL;
为账户启用和禁用专用笔记本¶
要在 Snowflake 账户上启用或禁用专用笔记本,请使用 ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB 参数。
示例¶
要为账户启用用笔记本,请使用 ALTER ACCOUNT 命令,将 ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB 参数设置为 TRUE。例如:
ALTER ACCOUNT SET ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB = TRUE;
您无法更改其他账户;只能更改当前账户。有关此命令的更多信息,请参阅 ALTER ACCOUNT。
要为该账户禁用专用笔记本,请运行相同的命令,但将参数设置为 FALSE。例如:
ALTER ACCOUNT SET ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB = FALSE;
要检查 ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB 参数的当前值,请运行以下 SHOW PARAMETERS 命令:
SHOW PARAMETERS LIKE 'ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB' IN ACCOUNT;
创建专用笔记本¶
要创建新的专用笔记本,请按照以下步骤操作:
Sign in to Snowsight.
In the navigation menu, select Projects » Notebooks.
选择 + Notebook。
从 Owner 列表中选择您的用户名。
输入笔记本的名称。
备注
如果您使用的是 AWS 区域,您可以为您的笔记本指定运行时环境:可以选择仓库运行时或 容器运行时。
选择 Notebook location。这是存储您的笔记本的数据库和架构。创建笔记本后,这些内容便无法更改。如果您在为账户启用个人数据库后创建专用笔记本,则默认情况下,您的个人数据库将在 Notebook location 下预先填充。但是,如果要创建专用笔记本,并且个人数据库中只有一个架构,则 Notebook location 选项不可用。
备注
您打开 Create Notebook 对话框之后创建的数据库可能不会显示在 Notebook location 下拉菜单中。如果您找不到最近创建的数据库、架构或仓库,请尝试重新加载浏览器窗口。
在笔记本中查询数据并不局限于此位置。在笔记本中,您可以查询可以访问的任意位置的数据。要指定位置,请运行 USE WAREHOUSE 和 USE SCHEMA。
选择 Run on warehouse 或 Run on container 作为您的 Python 环境。
可选 选择 Query warehouse 来运行笔记本发出的任何 SQL 和 Snowpark 查询。
选择一个 Notebook warehouse 来运行笔记本特定的任务。Snowflake 建议您使用 SYSTEM$STREAMLIT_NOTEBOOK_WH,这是一个由 Snowflake 管理的仓库,在用于运行笔记本的每个账户中提供。
选择 Create 来创建和打开笔记本。
整理专用笔记本¶
您可以创建和使用架构,作为整理专用笔记本的一种方式。默认情况下,个人数据库包含名为 PUBLIC 和 INFORMATION_SCHEMA 的标准架构。
以通常的方式创建和使用新架构,但确保在创建架构时使用您的个人数据库。例如:
USE DATABASE USER$bobr;
CREATE SCHEMA bobr_schema;
USE SCHEMA bobr_schema;
您也可以对个人数据库中的架构使用 ALTER SCHEMA 命令,并可使用 SHOW SCHEMAS 命令来查看属于个人数据库的架构。例如:
ALTER SCHEMA bobr_schema RENAME TO bobr_personal_schema;
SHOW TERSE SCHEMAS;
+-------------------------------+----------------------+------+---------------+-------------+
| created_on | name | kind | database_name | schema_name |
|-------------------------------+----------------------+------+---------------+-------------|
| 2024-10-28 19:33:18.437 -0700 | BOBR_PERSONAL_SCHEMA | NULL | USER$BOBR | NULL |
| 2024-10-29 14:11:33.267 -0700 | INFORMATION_SCHEMA | NULL | USER$BOBR | NULL |
| 2024-10-28 12:47:21.502 -0700 | PUBLIC | NULL | USER$BOBR | NULL |
+-------------------------------+----------------------+------+---------------+-------------+
将专用笔记本设为一般用途可用¶
在其开发的某个时刻,您可能需要在个人数据库外重新创建笔记本。要进行此更改,请使用 CREATE NOTEBOOK 命令复制原始笔记本。执行此操作时,其他用户可以看到该笔记本。
例如:
CREATE NOTEBOOK bobr_prod_notebook
FROM 'snow://notebook/USER$BOBR.PUBLIC.bobr_private_notebook/versions/version$1/'
QUERY_WAREHOUSE = 'PUBLIC_WH'
MAIN_FILE = 'notebook_app.ipynb'
COMMENT = 'Duplicated from personal database';
Notebook BOBR_PROD_NOTEBOOK successfully created.
您也可以使用在生产数据库中创建的笔记本来创建专用笔记本。
备注
您无法通过 Snowsight 用户界面完成此任务;必须使用明确的 SQL 命令(例如,在笔记本的 SQL 单元格中或工作表中)。
FROM 'source_location'指定应从指定暂存区位置的
.ipynb文件中创建的笔记本:要从暂存区上的文件创建笔记本,请将
source_location设置为文件的暂存区位置,并将 MAIN_FILE 参数设置为文件名。要从私人笔记本创建笔记本(例如,将私人笔记本用于共享用途),请将此参数设置为:
'snow://notebook/USER$username.schema.notebook/versions/version$1/'其中:
username是您的用户名。schema是包含私人笔记本的架构的名称。notebook是私人笔记本的名称。
如果未指定此参数,则通过模板笔记本创建笔记本对象。
查看有关专用笔记本和个人数据库的信息¶
Individual users can use Snowsight to view information about their notebooks. In the navigation menu, select Projects » Notebooks. The owner of the notebook is listed as the user.
For information about databases, including personal databases, In the navigation menu, select Catalog » Database Explorer. You can easily see which
databases are personal databases because they have the USER$ prefix.
管理员可见性¶
拥有 MANAGE GRANTS 权限的角色可以查看账户内的所有对象,包括个别用户拥有的个人对象。例如,在默认情况下,ACCOUNTADMIN 等角色可以查看所有数据库,包括个人数据库。这些角色还可以访问个人数据库中有关架构和专用笔记本的详细信息。
要查看账户内所有个人数据库的详细信息,请查询 DATABASES Account Usage 视图:
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.DATABASES;
管理员可使用 DESCRIBE NOTEBOOK 查看特定专用笔记本的属性:
DESCRIBE NOTEBOOK USER$.PUBLIC.bobr_private_notebook;
在 Snowsight 的 Projects » Notebooks 页面上,管理员无法在 Notebooks 列表中看到属于其他用户的专用笔记本对象。
显示当前用户的个人数据库:
SHOW DATABASES LIKE 'USER$BOBR';
对于个人数据库,kind 列中的值为 PERSONAL DATABASE。
限制¶
专用笔记本限制¶
无法计划专用笔记本。
个人数据库限制¶
用户只能在个人数据库中创建专用笔记本和架构。例如,无法创建和加载表。
用户无法更改、克隆或复制其个人数据库。
用户无法在个人和非个人数据库间移动架构。
个人数据库不能与角色共享。
管理员不能将个人数据库添加到复制组以进行复制。
用户不能共享个人数据库中的对象。
用户无法将个人数据库添加到原生应用程序(应用程序包)。
用户和管理员无法删除和/或重命名
USER$.PUBLIC架构。
协作限制¶
管理员无法创建数据库角色。
用户和管理员无法向其他人授予其架构的任何
CREATE <object>权限。用户无法将其对象的权限授予共享或应用程序包。
用户无法将其个人数据库的
REFERENCE_USAGE权限授予共享或应用程序包。用户无法将个人数据库添加到共享中(以实现跨账户共享)。