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