ユースケース: 重複とセグメンテーション

Snowflakeでは、すべてのコラボレーターのデータ内に存在するのはどのエンティティかを判断したり、それらのエンティティに関する情報を集約して表示したりするために、オーバーラップとセグメンテーションのテンプレートを用意しています。

このテンプレートを使用する場合、2人の関係者がそれぞれ1つ以上のテーブルをクリーンルームに追加します。これらのテーブルのエンティティは、指定した結合列によって結合または識別されます。さらに、重複数は特定のセグメンテーション属性ごとに分類したり、フィルタリングしたりできます。これにより、関係者はデータセット間の重複に関する洞察を得ることができ、クリーンルームにおけるコラボレーションの価値を決定し、他の下流のユースケースを促進することができます。コンシューマーは、結合する列と表示する列を指定します。投影される列はすべて、グループ化するか、集約関数で集計する必要があります。エンティティ識別列はクエリ結果からブロックされ、クリーンルームによって差分プライバシーを適用し、特定のエンティティに関する情報をさらに保護します。クリーンルーム作成者が有効にすると、その結果は第三者(クリーンルーム UI のみ)に対してアクティブ化されます。

たとえば、広告主はパブリッシャーのインベントリで重複分析を行い、そのパブリッシャーでメディアを購入する価値を知ることができます。広告主は次に、希望するオーディエンスの IDs をアクティベートしてパブリッシャーに戻し、ターゲティング目的で使用します。

オーバーラップとセグメンテーションテンプレートは、クリーンルームUIとコードの両方で使用できます。クリーンルーム UI により、IDプロバイダーの簡単な使用と、サードパーティパートナーへのアクティベーションが可能となり、コードの使用により、プロバイダーとコンシューマーの両方から複数のテーブルが有効になります。

Tip

Audience Overlapテンプレートで差分プライバシーを有効にした場合は、重複統計を計算しません。これを行うと、ユーザーのプライバシー予算のほとんどが消費され、分析を実行するための予算がほとんど、または全くなくなってしまいます。

クリーンルーム UI の使用状況

クリーンルームUIでは、:ui:`Audience Overlap & Segmentation`という既知のテンプレートを通じて、このユースケースをサポートしています。このテンプレートはマーケティングおよび広告のユースケースを対象としていますが、あらゆる業界の重複およびセグメンテーションのユースケースで使用できます。このテンプレートの作成方法と使用方法については、以下の手順に従ってください。

注釈

クリーンルームUIでこの分析を実行する場合、重複率は分析を実行する人によって異なります。これは、パーセンテージが(自分のテーブル内で一致したIDs)/(自分のテーブル内の合計IDs)で計算されるからです。たとえば、コラボレーターAに100IDsがあり、コラボレーターBには500IDsがある場合、両方が50IDs で重複していると、Aには50%の重複が表示され、Bには10%の重複のみが表示されます。

また、コラボレーターAのデータの同じIDがコラボレーターBのデータで複数のIDs に一致する場合、その重複は分析を実行する人によって異なります。

ウェブテンプレートの機能:

  • clean room管理者により構成されていれば、ワンクリックでアクティベーションできます。

  • clean room管理者により構成されていれば、IDプロバイダーをワンクリックで使用できます。

  • プロバイダーが実行する分析をサポートします。

  • 双方がデータをインポートし、結合列 (非表示)、投影列 (表示可能)、アクティビティ列 (アクティベーションが有効な場合、指定された第三者にエクスポート可能) を指定できます。

  • 使用可能なテーブルのうち、1つのコンシューマーテーブルと1つのプロバイダーテーブルで重複をクエリできます。

  • 差分プライバシーを構成できます。

注釈

:doc:`ウェブインターフェイスチュートリアル </user-guide/cleanrooms/tutorials/cleanroom-web-app-tutorial>`を試して、クリーンルームUIでクリーンルームを使用するための完全なエンドツーエンドのウォークスルーをご確認ください。このテンプレートは、このチュートリアルでも説明しています。

ステップ1: プロバイダーによるclean roomの作成

以降では、プロバイダーが Audience Overlap & Segmentation テンプレートを使用してclean roomを作成し、構成する方法を説明します:

  1. クリーンルームUIにサインインし、:ref:`新しいクリーンルーム<label_dcr_create_cleanroom>`を作成します。

  2. Add Data で、以下の操作を行います:

    1. clean roomにリンク (インポート) するテーブルを選択します。必要なテーブルがリストにない場合は、clean roomの管理者に問い合わせてください。

  3. Specify Join Policies で、以下の操作を行います:

    • コラボレーターがテーブルから結合できる列を選択します。ここで選択した列を、セグメンテーション、フィルター、グループ化の目的で表示したり、分析に使用したりすることはできません。

    • ID プロバイダーを使用して、複数の識別子を持つエンティティ (たとえば、異なるデータベースに複数の電子メールアカウントを持つ1人の個人) を解決する場合は、 Identity Hub で ID プロバイダーを選択します。

  4. Configure Analysis & Query で、以下の操作を行います:

    1. 分析タイプとして Audience Overlap & Segmentation を選択します。(clean roomのテンプレートは複数選択できます。)各テンプレートの構成オプションがページに表示されます。

    2. Tables では、先にリンクしたテーブルの中からどれを、このテンプレートのclean roomでコンシューマーに使用を許可するかを選択します。

    3. Segmentation & Attribute Columns を使用して、クエリ結果に表示する列を選択します。コラボレーターは、選択した列を表示、フィルター、グループ化することができます。clean roomでSnowflakeのアクティベーションが有効になっている場合、コラボレーターはこれらの属性の値をアクティベートできます。列がこのリストに表示されない場合は、おそらく結合可能としてマークしているからです。列を結合可能にすると同時にクエリ結果に表示することはできません。

    4. Allow categorical value previews during filtering には、プレビューに実際の値を表示するかどうかを指定します。列内で重複を除いた値が20個に満たない場合はデフォルトで有効になりますが、20個を超える場合は PII を保護するためにデフォルトで無効になります。

    5. 結果データのアクティベーションを有効、構成、または無効にするには、 Activation Settings セクションをご参照ください:

      • アクティベーションのユースケースで利用可能な ID Columns を選択します。デフォルトでは、結合ポリシー列が自動で選択されます。

      • Allow non-overlap activation を有効にすると、コラボレーターのデータセットにある IDs と照合することなく、自分のデータセットから IDs をアクティベートできます。たとえば、100個の IDs を取り込んでコラボレーターとの重複分析を実行し、25件の IDs のみが重複した場合、非重複アクティベーションによって、自分のデータセットから75件が照合なしで IDs アクティベートされます。

      • 選択したアクティベーション先のみがclean roomで有効になっていることを確認するには、 Enabled Partners をチェックします。アクティベーション先を有効に変更したい場合は、clean roomの管理者にご相談ください。

    6. 必要に応じてデフォルトの Privacy Settings を更新します:

      • Threshold Value はデフォルトで有効であり、5にセットされています。これにより、結合ポリシー列の重複を除いたカウントがこの閾値を下回るグループについては結果が表示されなくなります。

      • Differential Privacy はデフォルトで無効です。これを有効にすると、結果にノイズを追加し、1日のクエリ数を制限することで、潜在的な差分攻撃からの保護が可能になります。Snowflake Data Clean Roomsの差分プライバシー について詳しくご覧になり、この機能を使用するために必要なコストを理解してください。

  5. 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に参加し、構成を行う方法を説明します:

  1. :ref:`クリーンルームUIにサインインし、クリーンルーム<label-cleanrooms_web_app_install>`に参加します。

  2. Add Data で、以下の操作を行います:

    • clean roomにリンク (インポート) するテーブルを選択します。必要なテーブルがリストにない場合は、clean roomの管理者に問い合わせてください。

  3. Specify Join Policies で、以下の操作を行います:

    • 自分のデータのどの結合可能列を、プロバイダーのデータの結合可能列にマッピングさせるかを決めます。それぞれの実行中に、これらのどの列で結合するかを指定します。

    • ID プロバイダーを使用して、複数の識別子を持つエンティティ (たとえば、異なるデータベースに複数の電子メールアカウントを持つ1人の個人) を解決する場合は、 Identity Hub で ID プロバイダーを選択します。

  4. 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のプロバイダーに連絡してください。

  5. Finish をクリックして結果を保存します。分析を実行するには、次のセクションをご参照ください。

ステップ3: コンシューマーが分析を実行する

注釈

デフォルトの構成では、コンシューマーだけがこのテンプレートを使用して分析を実行できます。このテンプレートでプロバイダーが実行する分析を有効にするには、プロバイダーはclean room構成で Share clean rooms タブを開き、アカウント名の横にある Enable run analysis and query を選択する必要があります。

プロバイダーとコンシューマーがclean roomに対してオーディエンスの重複とセグメンテーションを構成した後、どちらか分析を実行する権限を持つ方が以下の操作を行います:

  1. クリーンルームUIで、:ui:`Clean rooms`にナビゲートします。

  2. オーディエンスの重複を構成したclean roomで Run を選択し、 Audience Overlap & Segmentation > Proceed を選択します。(または、 Analyses & Queries ページにアクセスし、 + New Analysis & Query を選択して、 Audience Overlap & Segmentation タイプを選択し、その分析タイプが構成されているclean roomを選択します)。

  3. Query Configurations section で実行の詳細を設定します:

    • My tables - コラボレーターのテーブルに結合させる自分のテーブルを選択します。

    • Collaborator table - 自分のテーブルに結合させるコラボレーターのテーブルを選択します。

    • My join columns - テーブル間で結合する列をすべて選択します。

    • User segmentation - オプションでグループ化する列を選択します。

    • Filters - オプションで、セグメンテーション列や属性列として指定された列に対する1つ以上のフィルターを、セットアップ時に指定します。

    • Privacy settings - このクエリにより差分プライバシーを実装し、グループ化の際の最小行数を設定できます。使用済みや残りの差分プライバシー、および最小グループサイズをここで確認できます。

  4. コンシューマーとして分析を行う場合、 ウェアハウスのサイズ を変更し、大きいウェアハウスを選択してクエリ時間を改善することや、小さいウェアハウスを選択してコストを削減することができます。プロバイダーとして分析を行う場合、ウェアハウスは選択できませんが、自動スケーリングによってクエリ時間の最適化が試行されます。

  5. Run を選択します。これが新しいクエリの場合は、次のようにしてください:

  6. Save を選択し、実行を開始またはスケジュールします。各実行が完了するまでに時間がかかる場合があります。クリーンルームUIの:ui:`Analysis & Queries`ページで、分析ステータスや結果を確認できます。

コードの使用

重複とセグメンテーションを使用する方法を紹介した SQL コードによるサンプルのノートブックをダウンロードして実行できます。このサンプルは Snowsight にアップロードして実行できます。

このノートブックでは、ID プロバイダーの使用方法や、サードパーティプロバイダーへの アクティベーション や、 プロバイダーが実行する分析 については説明しません。これらのアクションをコードで実行する方法については、リンク先のトピックを参照してください。

前提条件

同じ組織にSnowflake Data Clean Roomsがインストールされた2つのアカウントが必要です。プロバイダーとコンシューマーとで別々のアカウントを使用します。

サンプルコードをインストールして実行する

  1. サンプルノートブックをダウンロードします

  2. プロバイダーアカウントとコンシューマーアカウントの両方にノートブックをインストールします。ノートブックをアップロードするには、以下の操作を行います:

    1. Snowsight で Projects » Notebooks に移動します。

    2. + Notebook » Import .ipynb file を選択します。

    3. ダウンロードした.ipynbファイルを選択します。

    4. ファイルに好きな名前を付けて、データベースとスキーマを選択します。

    5. デフォルトのウェアハウス APP_WH をそのまま使用します。

    6. Create を選択します。

    7. プロバイダーアカウントでノートブックを開き、プロバイダーの部分を入力してclean roomを作成します。

    8. コンシューマーアカウントでノートブックを開き、コンシューマーの部分を入力してclean roomをインストールおよび構成し、テンプレートを実行します。