差分プライバシークエリのヒントと例 - AWS Clean Rooms

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

差分プライバシークエリのヒントと例

AWS Clean Rooms 差分プライバシーは、汎用クエリ構造を使用して、データ準備のための共通テーブル式 (CTEs) や、 や などの一般的に使用される集計関数などCOUNT、さまざまなSQLコンストラクトをサポートしますSUM。実行時にクエリ結果を集計するためのノイズを追加して、データ内の可能なユーザーの寄与を難読化するには、 AWS Clean Rooms 差分プライバシーでは、最後の の集計関数SELECT statementがユーザーレベルのデータで実行される必要があります。

次の例では、athletic_brand_sales データを持つスポーツブランドとのコラボレーションで差分プライバシーを使用してデータを保護したいと考えているメディアパブリッシャーの socialco_impressionssocialco_users という名前の 2 つのテーブルを使用しています。メディアパブリッシャーは、 で差分プライバシーを有効にしながら、 user_id 列をユーザー識別子列として設定しました AWS Clean Rooms。 アドバタイザーは差分プライバシー保護を必要とせず、結合データCTEsに対して を使用してクエリを実行したいと考えています。は差分プライバシー保護対象テーブルCTEを使用するため、アドバタイザーはそれらの保護対象テーブルのユーザー識別子列をCTE列のリストに含め、ユーザー識別子列の保護対象テーブルを結合します。

WITH matches_table AS( SELECT si.user_id, si.campaign_id, s.sale_id, s.sale_price FROM socialco_impressions si JOIN socialco_users su ON su.user_id = si.user_id JOIN athletic_brand_sales s ON s.emailsha256 = su.emailsha256 WHERE s.timestamp > si.timestamp UNION ALL SELECT si.user_id, si.campaign_id, s.sale_id, s.sale_price FROM socialco_impressions si JOIN socialco_users su ON su.user_id = si.user_id JOIN athletic_brand_sales s ON s.phonesha256 = su.phonesha256 WHERE s.timestamp > si.timestamp ) SELECT COUNT (DISTINCT user_id) as unique_users FROM matches_table GROUP BY campaign_id ORDER BY COUNT (DISTINCT user_id) DESC LIMIT 5

同様に、差分プライバシーで保護されたデータテーブルでウィンドウ関数を実行する場合は、PARTITION BY 句にユーザー ID 列を含める必要があります。

ROW_NUMBER() OVER (PARTITION BY conversion_id, user_id ORDER BY match_type, match_age) AS row