Snowflake Data Clean Rooms の概要

このページでは、Snowflake Data Clean Roomsの概要について説明します。アカウントにclean roomをインストールしたいSnowflake管理者の方は、 Snowflake Data Clean Rooms 環境のインストール をお読みください。

アカウントへのclean roomのインストール

Snowflake Data Clean Room環境は、Snowflakeアカウントの ACCOUNTADMIN 権限を持つユーザーによって、Snowflakeアカウント全体に対して1回インストールされます (ユーザーまたはclean roomごとに1回インストールされるわけではありません)。

  • clean roomへの招待メールを受け取ったときには、 自分のSnowflakeアカウントにclean roomがすでにインストールされています。clean roomの使用方法について、このページでここから説明しますが、何もインストールする必要はなく、clean roomに入るだけで使用できます。

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

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

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

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 Rooms 環境 は、Snowflakeアカウントの ACCOUNTADMIN 権限を持つユーザーによって、(ユーザーごと、またはclean roomごとではなく) Snowflake アカウント全体で 一度 インストールされます。

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

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

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

詳細

clean roomの作成

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

注釈

プロバイダーとコンシューマーのロールは、個々のユーザーレベルではなく、Snowflakeアカウントレベルで適用されます。つまり、Snowflakeアカウント ABC でclean roomを作成した場合、 ABC clean room環境にアクセスできるすべての ABC ユーザーが、clean roomを管理できます。同様に、Snowflakeアカウント EFG をコンシューマーに招待した場合、clean roomにアクセスできるすべての EFG ユーザーが、そのclean roomのコンシューマーとなります。

clean roomを作成した後、プロバイダーは (リンク) テーブルやビューをclean roomにインポートし、そのデータに対して実行可能なクエリ、そのデータ内で結合したり結果を表示したりできる列、結果に対して実行可能な処理を指定します。(後ほど、標準的なclean roomのバリエーションの作成について説明します)。

その後、プロバイダーはclean roomに参加するコンシューマーを招待し、自分のテーブルとビューをインポートして、プロバイダーが指定したクエリのいずれかを実行します。コンシューマーがclean roomに招待されるには、clean room管理者が事前に承認する必要があります。

詳細

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アカウント、またはプロバイダーが指定したサードパーティのアクティベーションコネクタ) に結果をエクスポートできます。

clean roomにインポートされたデータは、プロバイダーやコンシューマーのいずれの側からも、直接クエリしたり表示したりできませんが、clean room内のテンプレートからアクセスすることだけはできます。テンプレートとは、プロバイダーやコンシューマーがclean room内にインストールする SQL クエリのことです。clean room内で使用するには相手方の許可が必要です。

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

デフォルトでは、clean roomでテンプレートを実行できるのはコンシューマーだけですが、プロバイダーは指定したテンプレートをclean roomで実行するようコンシューマーに依頼できます。

詳細

クエリの実行

すべてのclean roomには、1つ以上の テンプレート が設置されています。テンプレートは SQL クエリであり、テンプレートを実行するユーザーが入力するランタイムパラメーターを含めることができます。これらのパラメーターで、ユーザーは、クエリで使用するclean roomのテーブル、クエリで使用する列、 WHERE 句フィルターなどを指定します。clean roomで任意の SQL クエリを実行することはできず、 SQL クエリに評価されるテンプレートを作成し、そのテンプレートを実行する許可を相手側に求める必要があります。

Snowflakeには、ウェブアプリで使用する標準テンプレートがセットで用意されています。これらのテンプレートにより、オーディエンスの重複、オーディエンスのlookalike、在庫予測、および任意の SQL クエリなどの一般的なユースケースが可能になります。開発者は、clean roomで使用するカスタムテンプレートも作成できます。

テンプレートは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外にデータをエクスポートするには、クエリするデータを共有しているすべての関係者の承認が必ず必要です。

  • いずれかの側が カスタムなPythonコードを追加し、 それを実行中のクエリから呼び出すことができます。このコードは通常、クエリの実行中に何らかの方法でデータのフィルターや操作を行います。ファイルの保存、データのエクスポート、その他の操作の実行など、外部の操作を行うことはできません。

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

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

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

Clean roomのコラボレーターは、特定のclean roomの プロバイダー または コンシューマー のどちらかに分類されます。プロバイダーはclean roomを作成するアカウントで、コンシューマーはclean roomを共有されるアカウントです。clean roomを作成したのと同じアカウント内のユーザーを、そのclean roomのコンシューマーとして招待することはできません。同じSnowflakeアカウント内のすべてのユーザーに、そのアカウント内の同じclean roomのロール (プロバイダーまたはコンシューマー) が割り当てられます。

プロバイダーであるかコンシューマーであるかは、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データclean roomへのアクセス方法

Snowflake Data Clean Roomには、clean roomの作成し管理するために、ノーコードのブラウザベースアプリケーション (clean room UI)、および API が用意されています。現状で、clean room UI と API の機能は、まったく同じではありません。以下にその違いを示します:

UIのみの機能

APIのみの機能

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

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

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

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

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

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

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

ウェブアプリでclean roomを作成し、 API で使用または管理することも (その逆も) できます。

Clean room UI

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

権限とアクセス: clean room UI を使用するには、clean room管理者からアクセスを許可 される必要があります。

clean room UI にログインするたmに、メールアドレス、名前、パスワードが必要です。メールアドレスはSnowflakeアカウントのメールアドレスと同じである必要はなく、clean room管理者が指定します。ユーザー名とパスワードは自分で決めます。

Snowflakeのウェブアプリケーションである Snowsight からclean room UI へのアクセスは、別の URL で行われます。その URL はアカウントごとに異なります。

clean room UI を使ってみたい方は、 clean room UI チュートリアル をお試しいただくか、 clean room UI の詳細をご覧ください

API

Snowflakeには、clean roomを作成または実行するためのストアドプロシージャが多数用意されています。これらのプロシージャは、Snowsightノートブックやワークシート、またはSnowflakeアカウントでストアドプロシージャを実行できるその他のコマンドラインインターフェイスから呼び出すことができます。

これらのプロシージャにより、プロバイダーまたはコンシューマーとしてclean roomを作成、管理、使用するために必要な操作のほとんどを実行できます。API では管理者の操作は行えません。clean roomを管理するには、ウェブアプリを使用する必要があります。API のリファレンスドキュメントをお読みください。

権限とアクセス: API を使用するには、Snowflake アカウントのclean room管理者から samooha_app_roleを使用するためのアクセス許可 を付与される必要があります。

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

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

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

Snowsightで、 Data Products » Apps » Installed Apps を開き、Snowflake Data Clean Roomsがインストールされているかどうかを確認します。