ユースケース: 重複とセグメンテーション¶
Snowflakeでは、すべてのコラボレーターのデータ内に存在するのはどのエンティティかを判断したり、それらのエンティティに関する情報を集約して表示したりするために、オーバーラップとセグメンテーションのテンプレートを用意しています。
このテンプレートを使用する場合、2つの関係者がそれぞれ1つ以上のテーブルをclean roomに追加します。これらのテーブルのエンティティは、指定した結合列によって結合または識別されます。さらに、重複回数を分析したり、特定のセグメンテーション属性でフィルターをかけたりできます。これにより、関係者はそれぞれのデータセット間の重複について分析情報を入手し、コラボレーションの価値を判断するために使用したり、clean roomでのその他のユースケースに役立てたりできます。コンシューマーは、結合する列と表示する列を指定します。すべての投影列はグループ化されるか、集約関数で集約されなければなりません。クエリ結果に含まれるエンティティを識別する列はブロックされ、特定のエンティティに関する情報の保護を強化するために、clean roomによる差分プライバシーの適用が行われます。clean room作成者が有効にすれば、結果を第三者にアクティベートできます (ウェブアプリケーションのみ)。
たとえば、広告主はパブリッシャーのインベントリで重複分析を行い、そのパブリッシャーでメディアを購入する価値を知ることができます。広告主は次に、希望するオーディエンスの IDs をアクティベートしてパブリッシャーに戻し、ターゲティング目的で使用します。
重複とセグメンテーションのテンプレートは、ウェブアプリケーションとコードの両方で使用できます。ウェブアプリケーションで使用すると、IDプロバイダーの使用やサードパーティ関係者へのアクティベーションが容易になり、コードで使用すると、プロバイダーとコンシューマーから複数のテーブルを使用できるようになります。
ウェブアプリケーションの使用¶
ウェブアプリケーションでは、このユースケースは Audience Overlap & Segmentation という既製のテンプレートでサポートされています。このテンプレートはマーケティングと広告のユースケースをターゲットにしていますが、あらゆる業界のあらゆる重複およびセグメンテーションのユースケースに使用できます。このテンプレートの作成方法と使用方法については、以下の手順に従ってください。
ウェブテンプレートの機能:
clean room管理者により構成されていれば、ワンクリックでアクティベーションできます。
clean room管理者により構成されていれば、IDプロバイダーをワンクリックで使用できます。
プロバイダーが実行する分析をサポートします。
双方がデータをインポートし、結合列 (非表示)、投影列 (表示可能)、アクティビティ列 (アクティベーションが有効な場合、指定された第三者にエクスポート可能) を指定できます。
使用可能なテーブルのうち、1つのコンシューマーテーブルと1つのプロバイダーテーブルで重複をクエリできます。
差分プライバシーを構成できます。
注釈
ウェブインターフェイスチュートリアル では、ウェブアプリケーションでclean roomを使用する手順について、エンドツーエンドで詳しく説明しています。このテンプレートについてもこのチュートリアルで説明しています。
ステップ1: プロバイダーによるclean roomの作成¶
以降では、プロバイダーが Audience Overlap & Segmentation テンプレートを使用してclean roomを作成し、構成する方法を説明します:
ウェブアプリケーションにサインインし、 新しいclean roomを作成 します。
Add Data で、以下の操作を行います:
clean roomにリンク (インポート) するテーブルを選択します。必要なテーブルがリストにない場合は、clean roomの管理者に問い合わせてください。
Specify Join Policies で、以下の操作を行います:
コラボレーターがテーブルから結合できる列を選択します。ここで選択した列を、セグメンテーション、フィルター、グループ化の目的で表示したり、分析に使用したりすることはできません。
ID プロバイダーを使用して、複数の識別子を持つエンティティ (たとえば、異なるデータベースに複数の電子メールアカウントを持つ1人の個人) を解決する場合は、 Identity Hub で ID プロバイダーを選択します。
Configure Analysis & Query で、以下の操作を行います:
分析タイプとして Audience Overlap & Segmentation を選択します。(clean roomのテンプレートは複数選択できます。)各テンプレートの構成オプションがページに表示されます。
Tables では、先にリンクしたテーブルの中からどれを、このテンプレートのclean roomでコンシューマーに使用を許可するかを選択します。
Segmentation & Attribute Columns を使用して、クエリ結果に表示する列を選択します。コラボレーターは、選択した列を表示、フィルター、グループ化することができます。clean roomでSnowflakeのアクティベーションが有効になっている場合、コラボレーターはこれらの属性の値をアクティベートできます。列がこのリストに表示されない場合は、おそらく結合可能としてマークしているからです。列を結合可能にすると同時にクエリ結果に表示することはできません。
Allow categorical value previews during filtering には、プレビューに実際の値を表示するかどうかを指定します。列内で重複を除いた値が20個に満たない場合はデフォルトで有効になりますが、20個を超える場合は PII を保護するためにデフォルトで無効になります。
結果データのアクティベーションを有効、構成、または無効にするには、 Activation Settings セクションをご参照ください:
アクティベーションのユースケースで利用可能な ID Columns を選択します。デフォルトでは、結合ポリシー列が自動で選択されます。
Allow non-overlap activation を有効にすると、コラボレーターのデータセットにある IDs と照合することなく、自分のデータセットから IDs をアクティベートできます。たとえば、100個の IDs を取り込んでコラボレーターとの重複分析を実行し、25件の IDs のみが重複した場合、非重複アクティベーションによって、自分のデータセットから75件が照合なしで IDs アクティベートされます。
選択したアクティベーション先のみがclean roomで有効になっていることを確認するには、 Enabled Partners をチェックします。アクティベーション先を有効に変更したい場合は、clean roomの管理者にご相談ください。
必要に応じてデフォルトの Privacy Settings を更新します:
Threshold Value はデフォルトで有効であり、5にセットされています。これにより、結合ポリシー列の重複を除いたカウントがこの閾値を下回るグループについては結果が表示されなくなります。
Differential Privacy はデフォルトで無効です。これを有効にすると、結果にノイズを追加し、1日のクエリ数を制限することで、潜在的な差分攻撃からの保護が可能になります。 Snowflake Data Clean Roomsの差分プライバシー について詳しくご覧になり、この機能を使用するために必要なコストを理解してください。
Share clean rooms で、以下の操作を行います:
Select collaborator メニューを展開し、clean roomにコラボレーターを追加します。コラボレーターには、次で説明するように、clean roomへの参加および利用を促す電子メールが送られます。そのページのコラボレーターリストには、このclean roomにアクセスできるすべてのアカウントが、自分のアカウントを含めて表示されます。
コラボレーターの横にある Enable run analysis and query を選択すると、そのアカウントがclean roomでテンプレートを実行できるかどうかを制御できます。デフォルトで、自分のアカウントではclean roomで分析を実行できません (つまり、 プロバイダーが実行する分析 は、デフォルトでは無効)。デフォルトでは、コンシューマーはclean roomで任意のテンプレートを実行できます。
ステップ2: コンシューマーがclean roomに参加する¶
以降では、コンシューマーが Audience Overlap & Segmentation 分析テンプレートを含むclean roomに参加し、構成を行う方法を説明します:
Add Data で、以下の操作を行います:
clean roomにリンク (インポート) するテーブルを選択します。必要なテーブルがリストにない場合は、clean roomの管理者に問い合わせてください。
Specify Join Policies で、以下の操作を行います:
自分のデータのどの結合可能列を、プロバイダーのデータの結合可能列にマッピングさせるかを決めます。それぞれの実行中に、これらのどの列で結合するかを指定します。
ID プロバイダーを使用して、複数の識別子を持つエンティティ (たとえば、異なるデータベースに複数の電子メールアカウントを持つ1人の個人) を解決する場合は、 Identity Hub で ID プロバイダーを選択します。
Configure Analysis & Query ステップで、次の操作を行います:
Audience Overlap & Segmentation 分析を選択し、そのテンプレートの構成オプションを表示します。
Tables ドロップダウンメニューから、この分析で使用するテーブルを選択します。
Segmentation & Attribute Columns を使用して、クエリ結果に表示する列を選択します。これらの列は、clean roomでSnowflakeのアクティベーションが有効になっている場合にもアクティベートできます。列がこのリストに表示されない場合は、おそらく結合可能としてマークしているからです。列を結合可能にすると同時にクエリ結果に表示することはできません。
アクティベーションのユースケースで利用可能な ID Columns を選択します。デフォルトでは、結合ポリシー列が自動で選択されます。
オプションで、 Allow activation for clean room provider を有効にして、サポートされているアクティベーション先に、clean roomプロバイダーからアクティベートすることもできます。このオプションは、clean roomでプロバイダーによる実行が有効な場合にのみ表示されます。これを有効にすると、行レベルのデータがアクティベートされ、プロバイダーのアカウントに戻されることに注意してください。コンシューマーはプロバイダーのクエリとアクティベーションを実行する際にコンピューティングコストを請求されます。ただし、それにはコンシューマーがプロバイダーのアクションを許可することに同意しなくてはなりません。
clean roomで選択したアクティベーション先が有効になっていることを Enabled Partners で確認します。有効化が必要な場合は、clean roomのプロバイダーに連絡してください。
Finish をクリックして結果を保存します。分析を実行するには、次のセクションをご参照ください。
ステップ3: コンシューマーが分析を実行する¶
注釈
デフォルトの構成では、コンシューマーだけがこのテンプレートを使用して分析を実行できます。このテンプレートでプロバイダーが実行する分析を有効にするには、プロバイダーはclean room構成で Share clean rooms タブを開き、アカウント名の横にある Enable run analysis and query を選択する必要があります。
プロバイダーとコンシューマーがclean roomに対してオーディエンスの重複とセグメンテーションを構成した後、どちらか分析を実行する権限を持つ方が以下の操作を行います:
ウェブアプリケーションで Clean rooms に移動します。
オーディエンスの重複を構成したclean roomで Run を選択し、 Audience Overlap & Segmentation > Proceed を選択します。(または、 Analyses & Queries ページにアクセスし、 + New Analysis & Query を選択して、 Audience Overlap & Segmentation タイプを選択し、その分析タイプが構成されているclean roomを選択します)。
Query Configurations section で実行の詳細を設定します:
My tables - コラボレーターのテーブルに結合させる自分のテーブルを選択します。
Collaborator table - 自分のテーブルに結合させるコラボレーターのテーブルを選択します。
My join columns - テーブル間で結合する列をすべて選択します。
User segmentation - オプションでグループ化する列を選択します。
Filters - オプションで、セグメンテーション列や属性列として指定された列に対する1つ以上のフィルターを、セットアップ時に指定します。
Privacy settings - このクエリにより差分プライバシーを実装し、グループ化の際の最小行数を設定できます。使用済みや残りの差分プライバシー、および最小グループサイズをここで確認できます。
コンシューマーとして分析を行う場合、 ウェアハウスのサイズ を変更し、大きいウェアハウスを選択してクエリ時間を改善することや、小さいウェアハウスを選択してコストを削減することができます。プロバイダーとして分析を行う場合、ウェアハウスは選択できませんが、自動スケーリングによってクエリ時間の最適化が試行されます。
Run を選択します。これが新しいクエリの場合は、次のようにしてください:
分析とクエリの名前を指定します。
オプションで、 繰り返し分析のスケジュール設定 を行います。
Save を選択し、実行を開始またはスケジュールします。1回の実行に時間がかかることもあります。分析のステータスや結果は、ウェブアプリケーションの Analysis & Queries ページで確認できます。
コードの使用¶
重複とセグメンテーションを使用する方法を紹介した SQL コードによるサンプルのノートブックをダウンロードして実行できます。このサンプルは Snowsight にアップロードして実行できます。
このノートブックでは、ID プロバイダーの使用方法や、サードパーティプロバイダーへの アクティベーション や、 プロバイダーが実行する分析 については説明しません。これらのアクションをコードで実行する方法については、リンク先のトピックを参照してください。
前提条件
同じ組織にSnowflake Data Clean Roomsがインストールされた2つのアカウントが必要です。プロバイダーとコンシューマーとで別々のアカウントを使用します。
サンプルコードをインストールして実行する
プロバイダーアカウントとコンシューマーアカウントの両方にノートブックをインストールします。ノートブックをアップロードするには、以下の操作を行います:
Snowsight で Projects » Notebooks に移動します。
+ Notebook » Import .ipynb file を選択します。
ダウンロードした.ipynbファイルを選択します。
ファイルに好きな名前を付けて、データベースとスキーマを選択します。
デフォルトのウェアハウス
APP_WH
をそのまま使用します。Create を選択します。
プロバイダーアカウントでノートブックを開き、プロバイダーの部分を入力してclean roomを作成します。
コンシューマーアカウントでノートブックを開き、コンシューマーの部分を入力してclean roomをインストールおよび構成し、テンプレートを実行します。