Clean Room 版本控制

备注

本主题适用于 Clean Room 创建者。Clean Room 使用者无需考虑 Clean Room 版本控制。

Clean Room 版本编号

Snowflake Clean Room 已进行版本控制。没有任何 Python 代码的 Clean Room 的初始版本是 V1.0.0。

在某些 提供商 事件(例如上传 Python 代码或启用外部表或 Iceberg 表)后,Snowflake 会自动创建 Clean Room 的新版本。仅当此操作触发的安全扫描通过时,Snowflake 才会创建新版本。可能创建新版本的操作将在过程响应中提及这一点。安全扫描失败的操作不会生成新版本。只有提供商的操作才能生成新的 Clean Room 版本;使用者的操作不能。

Snowflake 只增加每个新版本的补丁号(最后一位数字)。因此,三个连续版本的版本号将是 V1.0.0、V1.0.1 和 V1.0.2。

备注

Clean Room 之所以进行版本控制,是因为它们是作为 原生应用程序包 实现的。在 Snowflake 的 Native Application Framework 中,惯例是,对于版本 V1.0.2,“V1.0”(字符串)是版本号,2(整数)是补丁号。Clean Room 文档通常使用术语“版本”来表示整个编号(V1.0.1),而不仅仅是“V1.0”前缀(有时在原生应用程序框架中使用)。

您可以通过使用 Clean Room 的 ID 调用 SHOW VERSIONS IN APPLICATION PACKAGE samooha_cleanroom_CLEANROOM_ID; 来查看给定 Clean Room 的版本历史记录。

默认发布指令

Clean Room 创建者为每个 Clean Room 分配了 默认发布指令。默认发布指令指定应在用户账户中安装哪个版本的 Clean Room。使用者无法指定要安装哪个版本的 Clean Room。根据 可用资源的要求,Snowflake 会自动处理更新,并且在用户账户上安装新版本之前可能会有一些延迟。

Clean Room 提供商必须在 Clean Room 可以初始共享(内部或外部)之前,或者每当提供商上传代码并且安全扫描通过时,指定 Clean Room 的默认发布指令。如果生成了新版本的 Clean Room 但未更新默认发布指令,则将继续向使用者提供最新的默认版本。

如果需要,Clean Room 提供商可以将默认发布指令恢复到较早的版本。

通过调用 provider.set_default_release_directive 指定 Clean Room 的默认发布指令。

备注

只有在代码中创建或修改 Clean Room 时,提供商才必须设置默认发布指令。使用 Web 应用程序时会自动处理版本控制。

相对较少的提供商调用可能会生成新的 Clean Room 版本。只有安全扫描通过,Snowflake 才会生成新版本。因此,在更新默认发布指令之前,应该通过调用 provider.view_cleanrooom_scan_status 来检查 Clean Room 的安全扫描状态。不更新默认发布指令不会导致错误,但如果不更新,则包含更改的较新版本将不会提供给用户。

示例

列出在此 Snowflake 账户中创建的所有 Clean Room 包(Clean Room):

SHOW APPLICATION PACKAGES STARTS WITH 'SAMOOHA_CLEANROOM_';
Copy

列出 Clean Room MY_FIRST_CLEANROOM 的所有版本:

SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
Copy

在首次发布 Clean Room 之前,必须始终设置默认发布指令。如果没有添加 Python 代码,应该是 V1.0.0:

CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
  $cleanroom_name, 'V1_0', '0');
Copy

如果这是您刚刚设置为外部的 Clean Room,或者已经是外部的并且版本已更改,请在设置版本之前检查扫描审查状态:

CALL samooha_by_snowflake_local_db.provider.view_cleanroom_scan_status('MY_FIRST_CLEANROOM');

-- When REVIEW_STATUS = APPROVED, you can update the default version to the
-- latest version, if you haven't done so already.
SHOW VERSIONS IN APPLICATION PACKAGE SAMOOHA_CLEANROOM_MY_FIRST_CLEANROOM;
CALL samooha_by_snowflake_local_db.provider.set_default_release_directive(
  $cleanroom_name, 'V1_0', '<<LATEST_PATCH_NUMBER>>');
Copy
语言: 中文