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

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

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

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

次の例では、athletic_brand_sales データを持つスポーツブランドとのコラボレーションで差分プライバシーを使用してデータを保護したいと考えているメディアパブリッシャーの socialco_impressionssocialco_users という名前の 2 つのテーブルを使用しています。メディアパブリッシャーは、 AWS Clean Roomsで差分プライバシーを有効にして、user_id 列をユーザー識別子列として設定しています。広告主は差分プライバシー保護を必要とせず、結合データ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