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

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

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

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

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

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