Tipps und Beispiele für Differential Privacy-Abfragen - AWS Clean Rooms

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tipps und Beispiele für Differential Privacy-Abfragen

AWS Clean Rooms Differential Privacy verwendet eine allgemeine Abfragestruktur, um eine Vielzahl von SQL Konstrukten wie Common Table Expressions (CTEs) für die Datenaufbereitung und häufig verwendete Aggregatfunktionen wie, oder zu unterstützen. COUNT SUM Um den Beitrag jedes möglichen Benutzers in Ihren Daten zu verschleiern, indem den aggregierten Abfrageergebnissen zur Laufzeit Rauschen hinzugefügt wird, erfordert AWS Clean Rooms Differential Privacy, dass Aggregatfunktionen in der Endversion auf Daten auf Benutzerebene ausgeführt werden. SELECT statement

Im folgenden Beispiel werden zwei Tabellen mit dem Namen socialco_impressions und socialco_users von einem Medienverlag verwendet, der Daten mithilfe von Differential Privacy schützen möchte, während er mit einer Sportmarke mit Daten zusammenarbeitet. athletic_brand_sales Der Medienherausgeber hat die user_id Spalte als Benutzer-ID-Spalte konfiguriert und gleichzeitig den differenziellen Datenschutz in AWS Clean Rooms aktiviert. Der Werbetreibende benötigt keinen differenzierten Datenschutz und möchte eine Abfrage CTEs anhand kombinierter Daten ausführen. Da sie Tabellen mit differenziertem Datenschutz CTE verwenden, nimmt der Werbetreibende die Benutzer-ID-Spalte aus diesen geschützten Tabellen in die CTE Spaltenliste auf und verknüpft die geschützten Tabellen in der Benutzer-ID-Spalte.

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

Ebenso müssen Sie, wenn Sie Fensterfunktionen für Tabellen mit differenziellen datenschutzgeschützten Daten ausführen möchten, die Spalte mit der Benutzerkennung in die PARTITION BY Klausel aufnehmen.

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