创建、联接、移除和卸载 Clean Room¶
本页介绍如何创建基本 Clean Room、联接您受邀联接的 Clean Room、删除您创建的 Clean Room 或移除您作为使用者联接的 Clean Room。
创建新的 Clean Room¶
您必须在 Snowflake 账户中拥有适当的权限才能创建 Clean Room。Clean Room 创建者称为 provider。
借助 Web 应用程序程序中的 Clean Rooms 页面,您可以作为提供商管理 Clean Room 的生命周期,包括创建和共享。如果您无权访问 Clean Room Web 应用程序,请与您的 Snowflake 账户的 Clean Room 管理员联系。
要创建和共享 Clean Room,请执行以下操作:
在 Web 应用程序 中登录 Clean Room 环境。
在左侧导航栏中,选择 Clean Rooms。
选择 + Clean Room。创建过程包括以下步骤:
按照 Add Data 步骤命名 Clean Room 并选择与使用者共享的表。名称最多可以为 80 个字符,不区分大小写,包含 a-z、0-9、空格和下划线。
使用 Specify Join Policies 步骤启用由 Clean Rooms 账户管理员启用的身份提供商并选择使用者可以联接的列。
使用 Configure Analysis & Query 步骤定义 Clean Room 中可用的模板、特定于模板的配置设置以及其他功能(如激活和隐私设置)。
按照 Share Clean Room 步骤邀请使用者使用 Clean Room 进行协作。您还可以使用 Enable Run Analysis & Query 选项来指定哪些协作者可以在 Clean Room 中运行分析。
有关在 Web 应用程序中创建新 Clean Room 的完整演示,请尝试 Clean Room Web 应用程序教程
要在代码中创建新的 Clean Room,您必须在账户中被授予 SAMOOHA_APP_ROLE 角色。
USE WAREHOUSE app_wh;
USE ROLE samooha_app_role;
SET cleanroom_name = 'Developer Tutorial';
CALL samooha_by_snowflake_local_db.provider.cleanroom_init(
$cleanroom_name,
'INTERNAL'); -- Use EXTERNAL to share outside your Snowflake org
创建 Clean Room 后,您至少必须执行以下步骤来配置基本 Clean Room:
将数据导入 Clean Room。
对数据设置联接策略。
在 Clean Room 中指定一个或多个模板。
为每个模板的数据设置列策略。
设置默认发布指令。
指定要与之共享 Clean Room 的使用者。
发布 Clean Room。
有关在代码中创建新 Clean Room 的完整演示,请尝试 Clean Room 代码教程
安装(联接)Clean Room¶
如果您受邀联接 Clean Room,您将收到一封电子邮件,其中包含一个链接,用于在 Web 应用程序中安装、配置和运行 Clean Room。您可以点击链接并使用 Web 应用程序,或者使用代码安装并运行 Clean Room。
借助 Web 应用程序中的 Clean Rooms 页面,您可以作为使用者安装已由提供商与您共享的 Clean Room。要安装 Clean Room,请执行以下操作:
在 Web 应用程序 中登录 Clean Room 环境。
在左侧导航栏中,选择 Clean Rooms。
在 Invited 选项卡上,找到 Clean Room 并选择 Join。当您被添加为 Web 应用程序中的协作者时,您应该在邀请电子邮件中获得指向此页面的直接链接。
选择要用于协作处理提供商数据的表,然后选择 Next。
选择您的 Clean Room 环境中需要在此 Clean Room 中使用的任何可用身份提供商。
指定表中的哪些列可以联接,以及提供商数据中的相应列。
选择 Next。
为分配给 Clean Room 的任何模板提供特定于模板的设置。
点击 Finish,可以选择立即运行模板,或计划重复运行该模板。
如果您受邀以使用者身份联接 Clean Room,则可以在代码中安装、配置和运行 Clean Room。
要在代码中联接 Clean Room,请打开受邀添加 Clean Room 的账户,然后运行以下代码:
USE WAREHOUSE app_wh;
USE ROLE samooha_app_role;
SET cleanroom_name = 'Developer Tutorial'; -- Get the actual clean room name and provider's account locator from the provider.
CALL samooha_by_snowflake_local_db.consumer.
install_cleanroom($cleanroom_name, <PROVIDER_LOCATOR>);
安装 Clean Room 后,您必须至少执行以下步骤,才能在该 Clean Room 中运行模板:
链接您的数据。
在表和要运行的模板上设置联接和列策略。
运行模板。
有关在代码中联接 Clean Room 的完整演示,请尝试 Clean Room 代码教程
删除您创建的 Clean Room¶
删除后,共享用户下次打开 Clean Room Web 应用程序时,他们将无法再看到 Clean Room。如果在删除 Clean Room 时分析正在进行中,则在删除 Clean Room 之前分析可能无法完成。
要使用 Web 应用程序删除您创建的 Clean Room,请执行以下操作:
在 Web 应用程序 中登录 Clean Room 环境。
在左侧导航栏中,选择 Clean Rooms。
要使用 API 删除单个 Clean Room,请调用 provider.drop_cleanroom。
要列出您创建的 Clean Room, 请调用 provider.view_cleanrooms:
USE ROLE samooha_app_role; USE WAREHOUSE app_wh; -- List created and published clean rooms CALL samooha_by_snowflake_local_db.provider.view_cleanrooms(); SELECT CLEANROOM_ID AS "cleanroom_name" FROM TABLE(RESULT_SCAN(last_query_id())) WHERE STATE = 'CREATED' AND IS_PUBLISHED = TRUE; -- Specify a clean room name from the list and drop it CALL samooha_by_snowflake_local_db.provider.drop_cleanroom($cleanroom_name);
有关在代码中创建、配置、使用和删除 Clean Room 的完整演示,请尝试 Clean Room 代码教程
卸载(取消联接)Clean Room¶
您可以卸载作为使用者安装(联接)的 Clean Room。这将卸载账户中所有用户的 Clean Room。
在 Web 应用程序 中登录 Clean Room 环境。
在左侧导航栏中,选择 Clean Rooms。
导航到 Clean Rooms » Joined
要列出您已安装(联接)的 Clean Room,请执行以下操作
调用 samooha_by_snowflake_local_db.consumer.view_cleanrooms 并将行筛选为 IS_ALREADY_INSTALLED = TRUE
。这会显示已安装的 Clean Room,而不仅仅是联接邀请。
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
CALL samooha_by_snowflake_local_db.consumer.view_cleanrooms();
SELECT CLEANROOM_ID AS "cleanroom_name"
FROM TABLE(RESULT_SCAN(last_query_id()))
WHERE IS_ALREADY_INSTALLED = TRUE;
CALL samooha_by_snowflake_local_db.consumer.uninstall_cleanroom($cleanroom_name);
要卸载(取消联接)单个 Clean Room,请执行以下操作:
USE ROLE samooha_app_role;
USE WAREHOUSE app_wh;
CALL samooha_by_snowflake_local_db.consumer.
uninstall_cleanroom($cleanroom_name).
有关在代码中创建、配置、使用和删除 Clean Room 的完整演示,请尝试 Clean Room 代码教程