卸载 Clean Room 环境¶
卸载 Clean Room 应用程序¶
要从账户中完全卸载 Clean Room 应用程序,必须使用已安装 Clean Room 应用程序的 Snowflake 账户中的 ACCOUNTADMIN 角色。这将删除账户中所有用户(无论是 Clean Room 提供商还是 Clean Room 使用者)的 Clean Room 环境。
重要
该程序可完全卸载整个环境,而不仅仅是单个 Clean Room。
要为账户卸载 Clean Room 应用程序,请执行以下操作:
联系 Snowflake 支持部门 以检索账户元数据。
收到 Snowflake 支持部门的指示后,运行以下清理脚本:
-- Drop created and installed (joined) clean rooms, if you have not done so. USE ROLE ACCOUNTADMIN -- Drop listings SHOW LISTINGS; SELECT CONCAT('alter listing ', "name", ' unpublish; drop listing ', "name", ';') FROM TABLE(RESULT_SCAN(last_query_id())) WHERE "name" LIKE 'SAMOOHA_CLEANROOM_%'; -- Drop shares SHOW SHARES; SELECT CONCAT('drop share ', "name", ';') FROM TABLE(RESULT_SCAN(last_query_id())) WHERE "kind" = 'OUTBOUND' AND "name" LIKE 'SAMOOHA_CLEANROOM_%'; -- These 3 shares have to be dropped manually: DROP SHARE SAMOOHA_INTERNAL_GOVERNANCE_SUMMARY_SHARE_NAV2; DROP SHARE SAMOOHA_INTERNAL_LOGS_SHARE_NAV2; DROP SHARE SAMOOHA_INTERNAL_PROVIDER_METADATA_NAV2; -- Drop applications SHOW APPLICATIONS; SELECT CONCAT('drop application ', "name", ' cascade;') FROM TABLE(RESULT_SCAN(last_query_id())) WHERE "name" LIKE 'SAMOOHA_CLEANROOM_APP_%'; -- Drop application packages SHOW APPLICATION PACKAGES; SELECT CONCAT('drop application package ', "name", ' cascade;') FROM TABLE(RESULT_SCAN(last_query_id())) WHERE "name" LIKE 'SAMOOHA_CLEANROOM_%'; -- Drop databases SHOW DATABASES; SELECT CONCAT('drop database ', "name", ';') FROM TABLE(RESULT_SCAN(last_query_id())) WHERE "name" = 'SAMOOHA_SAMPLE_DATABASE' OR "name" LIKE 'SAMOOHA_CLEANROOM_%' OR "name" = 'SAMOOHA_BY_SNOWFLAKE_LOCAL_DB' OR "name" LIKE 'SAMOOHA_INTERNAL_GOVERNANCE_%' AND NOT startswith("name", 'SAMOOHA_CLEANROOM_CONSUMER_'); -- Finally drop the Snowflake native app DROP APPLICATION SAMOOHA_BY_SNOWFLAKE CASCADE;
删除您创建的 Clean Room¶
共享用户下次打开 Clean Room Web 应用程序时,他们将无法再看到 Clean Room。如果在删除 Clean Room 时分析正在进行中,则在删除 Clean Room 之前分析可能无法完成。
要使用 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。
要使用 API 卸载(取消联接)单个 Clean Room,请调用 consumer.uninstall_cleanroom。
要列出已安装(已联接)的 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);