Snowflake Data Clean Rooms の概要

このページでは、Snowflake Data Clean Roomsの仕組みの概要を説明します。Snowflake管理者で、アカウントにクリーンルームをインストールしたい場合は、 Snowflake Data Clean Rooms 環境のインストール をご参照ください。

Snowflake Data Clean Rooms の概要

データclean roomは構成可能であり、隔離されたSnowflake環境です。コラボレーターはここにデータをインポートし、そのデータに対して実行可能なクエリを指定したり、差分プライバシーの設定、結合や投影の可能行の指定などのデータ保護設定を行ったりできます。clean roomにアクセスするには招待が必要です。

Clean roomは収益化の機能をサポートしていません。プロバイダーのコストは、clean roomの有効化に必要なさまざまなバックグラウンドプロセスに対して請求され、クエリを実行するアカウントのコストは、データとコンピューティングの使用に対する標準的なSnowflakeコストに対して請求されます。コストについて詳しくは、 コストを理解する をご覧ください。

clean roomへのアクセスには、clean roomプロバイダーの招待が必要です。clean roomを多くのユーザーに公開したい場合は、コラボレーターになりたいユーザーからSnowflakeアカウント (Snowflakeユーザーではない場合はメールアドレス) を送ってもらうよう手配し、そのユーザーを招待する必要があります。

以降ではSnowflake Data Clean Roomsについて概要を説明します:

clean room環境のインストール

Snowflake Data Clean Room環境は、Snowflakeアカウントに対する ACCOUNTADMIN 権限を持つユーザーによって1つのSnowflakeアカウントに対して1回インストールされます(ユーザーごとまたはクリーンルームごとに1回ではない)。

管理者は環境を構成する際に、clean roomの作成やクエリの実行を許可するユーザー、 API へのアクセスを許可するユーザー、clean roomへのコラボレーターの招待が許可されるアカウント、clean room作成者がclean roomにインポートできるデータ、このアカウントで作成されたclean roomからクエリ結果をエクスポートするために使用できるサードパーティサービス (もしあれば) を指定します。

お客様のアカウントにclean room環境がすでにインストールされている場合は、clean room管理者に問い合わせてアクセスを依頼してください。アカウントにclean room環境がインストールされていない場合は、 環境のインストール方法 をご覧ください。

環境のインストールと構成を行った後、clean room UI、 API、 またはその両方を使用する権限が、管理者によって他のSnowflakeユーザーに付与されます。

詳細

注釈

  • クリーンルームへの招待をメールで受け取った場合 、Snowflakeアカウントに既にクリーンルームがインストールされています。このページの残りの部分を読むことで、クリーンルームの使用方法について詳しく学ぶことができますが、クリーンルームに参加するだけで、何もインストールする必要はありません。

  • アカウント管理者の方で、Snowflakeアカウントにclean room環境がインストールされていない場合は、 Snowflakeアカウントにclean room環境をインストールする方法 をご覧ください。

  • アカウント管理者でない方は、 アカウント管理者に Snowflake Data Clean Rooms がインストールされているかどうかを確認してください。インストールされていない場合は、インストールとアクセス許可の付与を依頼してください。その場合は、clean roomにアクセスするための権限を要求してください。

  • 開発者の方で、 API アクセスが必要な場合は、 clean room管理者に API へのアクセスを許可するよう 依頼してください。

clean roomの作成

Snowflakeアカウント管理者は、Snowflakeアカウントのユーザーにクリーンルームを作成する権限を付与します。クリーンルームを作成するアカウントは、そのクリーンルームの プロバイダー と呼ばれます。プロバイダーはクリーンルームを構成し、他のSnowflakeアカウントのユーザー(またはSnowflake以外のユーザー)と共有することができます。クリーンルームが共有された場合、そのクリーンルームの コンシューマー と呼ばれます。

クリーンルームを作成した後、プロバイダーはテーブルまたはビューを リンク (インポート)し、データに対してどのクエリを実行できるか、データ内のどの列を結合できるか、または結果に表示できるか、および結果で何ができるかを指定します。

次に、プロバイダーはコンシューマーがクリーンルームに参加するよう招待し、独自のテーブルとビューをリンクし、プロバイダーが指定したクエリのいずれかを実行します。コンシューマーをクリーンルームに招待するには、クリーンルーム管理者がコンシューマーを事前承認する必要があります。

詳細

clean roomへの参加

clean roomを作成および構成した後、プロバイダーは他のアカウントのユーザーに、clean roomへの招待を送信します。招待されたユーザーは、 コンシューマー または コラボレーター と呼ばれます。clean room UI を通して招待されたコンシューマーは、clean roomへの招待メールを受け取ります。Snowflakeユーザーがclean roomに招待されるには、clean room環境がインストールされている必要がありますが、 Snowflake以外のユーザー をclean roomに招待することもできます。clean roomの作成者がユーザーを招待するには、そのSnowflakeアカウントがclean room管理者によって許可リストに登録されている必要があります。

(clean room UI では、コンシューマーがclean roomの招待を受け入れることを、「参加する」とも「インストールする」とも言います。これは、clean roomが文字どおりコンシューマーのclean room環境にインストールされる必要があるからです)。

clean roomに参加した後、コンシューマーはclean roomのテンプレートに必要なデータをインポート (リンク) し、どの列に結合や投影を許可するかなど、データへのアクセス方法を指定し、テンプレート固有のフィルターやその他のパラメーターを入力して、テンプレートを実行します。コンシューマーは、必要に応じてテンプレートの繰り返し実行を指定できます。結果はブラウザで表示したり、ダウンロードしたりできます。プロバイダーがアクティベーションを有効にし、コンシューマーが承認した場合、コンシューマーは承認された場所 (自身のSnowflakeアカウント、またはプロバイダーが指定したサードパーティのアクティベーションコネクタ) に結果をエクスポートできます。

クリーンルームにインポートされたデータは、どちらの当事者(プロバイダーまたはコンシューマー)によっても直接クエリしたり表示したりすることはできませんが、クリーンルーム内のテンプレートを介してのみアクセスできます。テンプレートは、プロバイダーまたはコンシューマーによってクリーンルームにインストールされた SQL クエリです。クリーンルームで使用するには、相手側が権限を付与する必要があります。

また、それぞれの側でアクセスルールを設定し、どの列の結合、投影、またはエクスポートを許可するか、どのテンプレートの実行をclean roomで許可するかなどを各自のデータに設定します。それぞれの側からいつでもclean roomのデータを削除できます。

デフォルトでは、コンシューマーだけがクリーンルームでテンプレートを実行できますが、プロバイダーは、クリーンルームで指定されたテンプレートを実行する権限をコンシューマーに求めることができます。

詳細

テンプレート

各クリーンルームには、1つ以上の テンプレート がインストールされています。テンプレートは、通常はテンプレート実行者が提供するランタイムパラメーターを含む JinjaSQL クエリです。これらのパラメーターにより、ユーザーは列名やテーブル名、または WHERE 句フィルターを指定できます。ただ任意の SQL クエリをクリーンルームで実行することはできません(プロバイダーが その機能を付与 しない限り)。ほとんどのクリーンルームの使用は、プロバイダーまたはコンシューマーが提出し、相手方に承認されたテンプレートに制限されます。

Snowflakeは、オーディエンスの重複やリーチと頻度のテンプレートなど、一般的なユースケース向けのストックテンプレートをいくつか提供します。また、クリーンルームで使用するカスタムテンプレートも作成できます。 Snowflake Data Clean Rooms は有効な JinjaSQL テンプレートをサポートします。

テンプレートはclean room UI またはコードで実行できます。テンプレートの結果は表示またはダウンロードすることや、あるいは アクティベーション がそのclean roomで許可されていれば、プロバイダー、コンシューマー、および承認されたサードパーティと共有することもできます。

詳細

Clean roomのバリエーション

最も一般的なclean roomでは、上記で説明したように、プロバイダーがデータをインポートし、そのデータに対して実行できる1つ以上の特定のクエリと、その結果の共有方法を指定する場所です。また、コンシューマーが自分のデータをインポートし、結合されたデータに対して許可されたクエリを実行することもできます。ただし、プロバイダーは標準的なclean roomにさまざまなバリエーションを加えることができます:

  • プロバイダーからコンシューマーデータに対して独自のクエリを実行できます。デフォルトでは、clean roomでクエリを実行できるのはコンシューマーだけです。clean roomが有効な場合、プロバイダーはコンシューマーに対して、clean room内で指定したクエリを実行する許可をリクエストできます。

  • クエリ結果を、クエリを実行してるユーザーのSnowflakeアカウント、またはSnowflakeが承認したサードパーティアカウント (Meta Ads ManagerやThe Trade Deskなど) にエクスポート (アクティベート) できます。clean room外にデータをエクスポートするには、クエリするデータを共有しているすべての関係者の承認が必ず必要です。

  • いずれかの当事者に、実行するクエリによって呼び出すことができる :doc:`カスタムPythonコードを含む </user-guide/cleanrooms/demo-flows/custom-code>`ことを許可します。このコードは通常、クエリの実行中にデータを何らかの方法でフィルターまたは操作します。ファイルの保存、データのエクスポート、その他のアクションの実行などの外部アクションは実行できません。

  • クエリから 他のclean roomのデータにアクセス できますが、アクセスされるすべてのclean roomのプロバイダーの承認が必要です。

  • 複数のクエリを連鎖させることができます。

プロバイダーとコンシューマーについて

クリーンルームのコラボレーターは、クリーンルームの プロバイダー または コンシューマー のいずれかに分類されます。プロバイダーは、クリーンルームを作成するアカウントです。コンシューマーは、クリーンルームを共有されたアカウントです。クリーンルームを作成した同じアカウントの誰かを、そのクリーンルームのコンシューマーとして招待することはできません。同じSnowflakeアカウントのすべてのユーザーは、そのアカウントにおいて同じクリーンルームに対して同じクリーンルームロール(プロバイダーまたはコンシューマー)を持ちます。

プロバイダーとコンシューマーのロールは、個々のユーザーレベルではなく、Snowflakeアカウントレベルで適用されます。つまり、Snowflakeアカウント ABC を使用してクリーンルーム cleanroom1 を作成し、アカウント XYZ に cleanroom1 を共有した場合、 cleanroom1 にアクセスできるすべての ABC ユーザーはプロバイダーであり、 cleanroom1 にアクセスできるすべての XYZ ユーザーはコンシューマーです。

プロバイダーであるかコンシューマーであるかは、Snowflakeのロールやその他の権限ではなく、常にclean roomを作成したのか、共有されたかによって決定します。

プロバイダーとコンシューマーのロールについて、以降で詳しく説明します。

Tip

コラボレーター という用語が、コンシューマーまたは特定のclean roomにアクセスできるユーザーという意味で使われることもあります。

プロバイダー

プロバイダー は、clean roomを作成したアカウントです。そのアカウントからclean roomにアクセスするユーザーは、そのclean roomのプロバイダーとみなされます。

プロバイダーは以下のclean roomアクションを行います:

  • clean roomを作成、共有、削除する

  • コンシューマーとしてclean roomの使用を許可する人を指定する (コンシューマーの招待)

  • clean roomにデータをインポートする

  • clean roomで実行可能なテンプレートを定義する

  • コンシューマーによるclean roomでのカスタムテンプレート実行を許可するかどうかの指定

  • clean roomを共有するコンシューマーの招待

  • clean roomで使用するテンプレートの指定、およびclean roomへのカスタムテンプレートの作成

  • コンシューマーデータへのクエリ実行 (コンシューマーが同意した場合)

  • 連鎖テンプレートの許可

  • Pythonスクリプトをclean roomに読み込み、テンプレートで使用する

  • このclean roomのプロバイダーデータが、コンシューマークエリで指定された他のclean roomのデータでクエリされることを許可する

  • clean roomまたはコンシューマーの差分プライバシーを有効化または無効化する

  • clean roomのバージョンを管理する

  • 自分のデータに列および結合ポリシーを設定する

コンシューマー

コンシューマー は、プロバイダーからのclean roomへの参加 (インストール) の招待を受けて拡張されたアカウントです。

コンシューマーは以下のclean roomアクションを (clean room構成に従って) 実行します:

  • アカウントのclean roomに参加 (インストール) する

  • データをclean roomにインポートする

  • clean roomがサポートするクエリを実行する

  • clean roomで許可された場合にクエリ結果をエクスポートする

  • clean roomで自分のテンプレートを使用する権限をリクエストする

  • プロバイダーによるclean roomでのテンプレート実行を許可するかどうかを指定する (デフォルトでは、コンシューマーだけがテンプレートを実行できます)

  • clean roomのプロバイダーからコンシューマーのデータに対するクエリ実行を許可する

  • 複数のclean roomから、自分とプロバイダーのデータを参照するクエリを実行する (すべてのclean roomのプロバイダーが同意した場合)

  • clean roomにPythonスクリプトを読み込む (プロバイダーから権限を得た場合)

  • 自分のデータに列および結合ポリシーを設定する

  • プロバイダーが実行するクエリの差分プライバシーを設定する

Snowflake Data Clean Roomsにアクセスする方法

Snowflake Data Clean Roomsは、クリーンルームを作成して管理するためにノーコードブラウザーベースのアプリケーション(クリーンルーム UI )と API 両方を提供します。現在クリーンルーム UI および API は、機能において完全に同等ではありません。相違点の概要は次のとおりです。

UIのみの機能

APIのみの機能

  • clean roomのロゴ、名前、説明、使用可能なアクティベーションやIDコネクタのリストなどの環境管理タスク。

  • 管理者、プロバイダー、(潜在的な) コンシューマーアカウントのリストの管理。

  • テンプレートの繰り返し実行のスケジュール設定。(CRONジョブなどの他のスクリプトツールを使用したスケジュール設定もできます)。

  • ID プロバイダーの使用。

  • プロバイダーまたはコンシューマーのカスタムテンプレートの作成

  • テンプレート連鎖の作成

  • マルチプロバイダー分析

  • テーブルおよびテンプレートに対するコンシューマーレベルのアクセス制御(restrict_table_options_to_consumers および restrict_template_options_to_consumers)。

クリーンルーム UI を使用してクリーンルームを作成し、 API で使用または管理できることに注意してください。その逆もしかりです。

Clean room UI

Snowflake Data Clean Roomは、ブラウザで管理および実行できます。clean room UI を使用し、プロバイダーまたはコンシューマーとしてclean roomを作成、管理、使用したり、管理アカウント、サードパーティコネクタ、 UI ユーザー向け機能など、さまざまなアカウントレベルの機能を構成したりできます。

クリーンルーム UI には、Snowsightから別の URL でアクセスします。ログイン URL はこちら です。

権限とアクセス: クリーンルーム管理者に クリーンルーム UI を使用するためのアクセス権を付与 してもらう必要があります。クリーンルーム UI はSnowflakeの認証情報を使用します。

クリーンルーム UI チュートリアルを試す か、クリーンルーム UI の詳細をご参照ください

API

Snowflakeは、クリーンルームを作成、管理、実行するための多数のストアドプロシージャを提供します。これらのプロシージャは Snowsight ノートブックまたはワークシート、もしくはSnowflakeアカウントでストアドプロシージャを実行できるインターフェースを介して呼び出すことができます。 API は、クリーンルームのアカウント管理を有効にしません。そのため、クリーンルームアカウントを管理するには、クリーンルーム UI を使用する必要があります。

権限とアクセス: API を使用するためには、Snowflakeアカウントのクリーンルーム管理者に SAMOOHA_APP_ROLE を使用するためのアクセス権を付与 してもらう必要があります。

clean room API の説明をご覧になるか、 または API チュートリアル をお試しください。

Snowflakeアカウントにclean room環境がインストールされていない場合

以降では、clean room UI または API がアカウントにインストールされているかどうかを確認する方法を説明します:

Snowflake Data Clean Roomsがインストールされているかどうかを確認するには:

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Catalog » Apps » Installed Apps を選択します。

  3. Snowflake Data Clean RoomsInstalled Apps リストに表示されるかを確認します。