clean roomの作成、参加、削除、およびアンインストール¶
このページでは、基本的なclean roomを作成する方法、招待されたclean roomに参加する方法、作成したclean roomを削除する方法、コンシューマーとして参加したclean roomを削除する方法を紹介します。
clean roomを新しく作成する¶
clean roomを作成するには、Snowflakeアカウントに適切な権限が必要です。clean roomの作成者は、 プロバイダー と呼ばれます。
ウェブアプリの Clean Rooms ページでは、プロバイダーとして、クリーンルームの作成と共有を含むクリーンルームのライフサイクルを管理することができます。clean roomのウェブアプリにアクセスできない場合は、Snowflakeアカウントのclean room管理者に問い合わせてください。
clean roomを作成し共有するには、次の手順に従います:
ウェブアプリ でクリーンルーム環境にサインインします。
左側のナビゲーションで Clean Rooms を選択します。
+ Clean Room を選択します。作成するには、以下の手順を実行します:
Add Data を使って、クリーンルームに名前を付け、コンシューマーと共有するテーブルを選択します。名前は最大80文字で、大文字と小文字を区別せず、a-z、0-9、スペース、アンダースコアを使用できます。
Specify Join Policies ステップで、clean roomのアカウント管理者が有効にした ID プロバイダーを有効にし、コンシューマーに参加を許可する列を選択します。
Configure Analysis & Query ステップで、clean roomで使用するテンプレート、テンプレート固有の構成、アクティベーションやプライバシー設定などの追加機能を定義します。
Share Clean Room を使って、コンシューマーをクリーンルームに招き、コラボレーションを行います。また、 Enable Run Analysis & Query オプションを使用して、クリーンルームで分析を実行できるコラボレーターを指定することもできます。
clean room UI で新しいclean roomを作成する手順について詳しい説明を見るには、 clean roomウェブアプリチュートリアル をご利用ください。
新しい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内の1つ以上のテンプレートを指定します。
テンプレートごとにデータの列ポリシーをセットします。
デフォルトのリリースディレクティブをセットします。
clean roomを共有するコンシューマーを指定します。
clean roomを公開します。
新しいclean roomをコードで作成する手順について詳しい説明を見るには、 clean roomコードチュートリアル をご利用ください。
注釈
1つのアカウントで作成できる数(clean roomとコラボレーターの合計)には制限があります。テスト用にclean roomを作成しすぎた場合、新しいclean roomを作成するために、clean roomをいくつか削除する必要があるかもしれません。アカウントごとの制限を超えるclean roomが必要な場合は、 Snowflakeサポート までご連絡ください。
clean roomのインストール(参加)¶
clean roomに招待されたユーザーには、clean room UI でclean roomのインストール、構成、実行に必要なリンクが記載されたメッセージがメールで届きます。リンクをクリックしてclean room UI を使用するか、コードを使用してclean roomをインストールおよび実行することができます。
ウェブアプリの Clean Rooms ページでは、コンシューマーとして、プロバイダーから共有されたクリーンルームをインストールすることができます。clean roomをインストールするには、次の手順に従います:
ウェブアプリ でクリーンルーム環境にサインインします。
左側のナビゲーションで Clean Rooms を選択します。
Invited タブでクリーンルームを探し、 Join を選択します。clean room UI でコラボレーターとして追加されると、このページに直接移動するリンクを記載した招待メールが届きます。
プロバイダーのデータとのコラボレーションに使用するテーブルを選択し、 Next を選択します。
clean room環境にある ID プロバイダーの中から、この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に参加する際、次のようなエラーが発生する場合があります:
Application role `SAMOOHA_BY_SNOWFLAKE.DCR_DELEGATED_CLEANROOM_ROLE` does not exist
or not authorized.
このエラーが発生した場合は、以下のコードを実行し、clean roomへの参加をもう一度実行してください:
USE ROLE ACCOUNTADMIN;
CALL SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.PREPARE_MOUNT_SCRIPT();
EXECUTE IMMEDIATE FROM @SAMOOHA_BY_SNOWFLAKE.APP_SCHEMA.MOUNT_CODE_STAGE/dcr_loader.sql;
作成したクリーンルームの削除¶
削除されたclean roomは、共有ユーザーが次回clean roomウェブアプリを開いた時、表示されなくなります。クリーンルームが削除されたときに分析が進行中である場合、クリーンルームが削除される前に分析が完了しない可能性があります。
作成したclean roomを、clean room UI を使用して削除するには、次を実行します:
ウェブアプリ でクリーンルーム環境にサインインします。
左側のナビゲーションで Clean Rooms を選択します。
API を使用して 単一のクリーンルームを削除する には、 provider.drop_cleanroom を呼び出します。
作成したクリーンルームをリストするには、 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 Rooms を選択します。
Clean Rooms » Joined に移動します。
インストール(参加)したclean roomを一覧表示する
samooha_by_snowflake_local_db.consumer.view_cleanrooms を呼び出し、 IS_ALREADY_INSTALLED = TRUE
で行をフィルターします。これは、単なる招待ではなく、インストールされたクリーンルームを示しています。
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);
1つの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コードチュートリアル をご利用ください。
clean roomへのテーブルの追加または削除¶
clean roomにテーブルを追加または削除 (リンク または リンク解除) する方法を説明します:
UI を使用する場合、clean roomへのリンクを作成できるのは、管理者が登録したテーブルまたは表示のみです。clean roomで使用可能なテーブルや表示が表示されない場合は、管理者に必要なオブジェクトをアカウントに登録するよう依頼してください。
プロバイダーとしてclean roomを作成または編集する際に、 Add Data ステップでclean roomへのリンクを作成するテーブルを選択します。
コンシューマーとしてclean roomに参加または編集する際に、 Add Data ステップでclean roomへのリンクを作成するテーブルを選択します。
一度clean roomに追加されたテーブルを、そのclean roomから削除することはできません。ただし、アカウント全体からデータを削除することはできます。clean roomからテーブルやビューを削除する必要がある場合は、clean room管理者に相談してください。
clean room API を使用する場合は、データオブジェクトの OWNERSHIP 権限を持つユーザーなら誰でも、アカウントに登録できます。オブジェクトが登録されると、そのアカウント内のどのclean roomにもリンクを作成できます。(clean roomへのリンクを作成できるのは、そのオブジェクトを登録したアカウントのみです)。
clean roomへのリンクが作成された後に、そのテーブルやビューからリンクを解除することはできません。ただし、アカウント全体でテーブルやビューの登録を解除し、そのアカウント内のclean roomから使用不可にすることはできます。テーブルの登録を解除する場合は、そのテーブルを参照している行や列、またはテンプレートのポリシーを必ず変更してください。
clean roomへのリンクを作成するために、 データオブジェクトを登録または登録解除する方法をこちらで確認してください。