Clean Room環境のアンインストール

アカウントからclean room環境を完全にアンインストールするには、clean roomアプリケーションがインストールされているSnowflakeアカウントで ACCOUNTADMIN ロールを使用する必要があります。これにより、clean roomのプロバイダーおよびコンシューマーの側で、アカウント内の全ユーザーのClean Room環境が削除されます。

重要

このプロシージャにより、個々のclean roomだけでなく、アカウントの環境全体が完全にアンインストールされます。

アカウントのClean Room環境をアンインストールするには:

  1. プロバイダーとして作成したクリーンルームをすべて削除してください。

  2. コンシューマーとしてインストール(参加)したクリーンルームをすべてアンインストールしてください。

  3. 以下のアンインストールコマンドを実行します。

    各 SELECT CONCAT ステートメントは、Clean Room環境を削除したいアカウントのSnowflakeワークシートで実行される、1 つ以上の 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 Support までご連絡ください。