Clean Room 환경 제거하기

계정에서 Clean Room 환경을 완전히 제거하려면 Clean Room 애플리케이션이 설치된 Snowflake 계정에서 ACCOUNTADMIN 역할을 사용해야 합니다. 이렇게 하면 Clean Room 공급자 및 Clean Room 컨슈머 모두 계정의 모든 사용자에 대한 Clean Room 환경이 삭제됩니다.

중요

이 프로시저를 수행하면 개별 Clean Room뿐만 아니라 계정의 전체 환경이 완전히 제거됩니다.

계정의 Clean Room 환경을 제거하려면 다음을 수행하십시오.

  1. 공급자로서 생성한 모든 클린룸을 삭제합니다.

  2. 컨슈머로 설치(조인)한 모든 클린룸을 제거합니다.

  3. 다음 제거 명령을 실행합니다.

    각 SELECT CONCAT 문은 Clean Room 환경을 제거하려는 계정의 Snowflake 워크시트에서 실행해야 하는 하나 이상의 SQL 명령을 생성합니다.

    -- Drop created and installed (joined) clean rooms, if you have not done so.
    
    USE ROLE ACCOUNTADMIN;
    
    -- 1: Drop listings --
    -- 1.1 Generate the SQL commands:
    SHOW listings;
    WITH listings AS (
        SELECT * FROM TABLE(result_scan(last_query_id()))
        WHERE "name" ilike 'SAMOOHA^_CLEANROOM^_%' ESCAPE '^'
    ),
    alter_n_drop_listings AS (
        SELECT 'ALTER LISTING ' || "name" || ' UNPUBLISH;DROP LISTING ' || "name" || ';'
        FROM listings WHERE "state" = 'PUBLISHED'
    ),
    drop_listings AS (
        SELECT 'DROP LISTING ' || "name" || ';'
        FROM listings WHERE "state" = 'UNPUBLISHED'
    )
    SELECT * FROM alter_n_drop_listings
    UNION ALL
    SELECT * FROM drop_listings;
    
    -- 1.2 Run the ALTER LISTING commands generated by the previous SELECT statement.
    
    -- 2: Drop shares --
    -- 2.1 Generate the SQL commands:
    SHOW SHARES;
    SELECT CONCAT('DROP SHARE ', "name", ';')
      FROM TABLE(RESULT_SCAN(last_query_id()))
      WHERE "kind" = 'OUTBOUND'
        AND "name" LIKE 'SAMOOHA_CLEANROOM_%';
    
    -- 2.2 Run the DROP SHARE commands generated by the previous SELECT statement.
    
    -- These 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;
    
    -- Needed only for accounts that enabled Cross-Cloud Auto-Fulfillment
    DROP SHARE SAMOOHA_INTERNAL_GOVERNANCE_SUMMARY_SHARE_NAV2_LAF;
    
    -- 3: Drop applications --
    -- 3.1 Generate the SQL commands:
    SHOW APPLICATIONS;
    SELECT CONCAT('DROP APPLICATION ', "name", ' CASCADE;')
      FROM TABLE(RESULT_SCAN(last_query_id()))
      WHERE "name" LIKE 'SAMOOHA_CLEANROOM_APP_%';
    
    -- 3.2 Run the DROP APPLICATION commands generated by the previous SELECT statement.
    
    -- 4: Drop application packages --
    -- 4.1 Generate the SQL commands:
    SHOW APPLICATION PACKAGES;
    SELECT CONCAT('DROP APPLICATION PACKAGE ', "name", ' CASCADE;')
      FROM TABLE(RESULT_SCAN(last_query_id())) WHERE "name" LIKE 'SAMOOHA_CLEANROOM_%';
    
    -- 4.2 Run the DROP APPLICATION PACKAGE commands generated by the previous SELECT statement.
    
    -- 5: Drop databases --
    -- 5.1 Generate the SQL commands:
    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_');
    
    -- 5.2 Run the DROP DATABASE commands generated by the previous SELECT statement.
    
    -- 6: Drop warehouses --
    -- 6.1 Generate the SQL commands:
    SHOW WAREHOUSES;
    SELECT 'DROP WAREHOUSE IF EXISTS ' || "name" || ';' AS drop_statements
    FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
    WHERE "name" LIKE 'APP\_WH%'
      OR "name" LIKE 'DCR\_WH%'
      OR "name" LIKE 'PROVIDER\_RUN\_%'
      OR "name" LIKE 'SAMOOHA_TASK_WAREHOUSE'
    ORDER BY "name";
    
    -- 6.2 Run the DROP WAREHOUSES commands generated by the previous SELECT statement.
    
    -- 7: Finally drop the Snowflake native app
    DROP APPLICATION SAMOOHA_BY_SNOWFLAKE CASCADE;
    
    Copy
  4. Snowflake Data Clean Rooms에서 조직을 삭제하려면 Snowflake 지원팀 으로 문의하십시오.