Consejos y ejemplos de consultas sobre privacidad diferencial - AWS Clean Rooms

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Consejos y ejemplos de consultas sobre privacidad diferencial

AWS Clean Rooms Differential Privacy utiliza una estructura de consulta de uso general para admitir una amplia variedad de estructuras de SQL, como las expresiones de tabla comunes (CTE) para la preparación de datos y las funciones agregadas de uso común, como, o. COUNT SUM Para ocultar la contribución de cualquier posible usuario a los datos y hacer más ruido al agregado de los resultados de las consultas en tiempo de ejecución, AWS Clean Rooms Differential Privacy exige que, al final, las funciones de agregado se ejecuten en datos de nivel de usuario. SELECT statement

En el siguiente ejemplo se utilizan dos tablas denominadas socialco_impressions y socialco_users de un publicador de medios que quiere proteger los datos mediante una privacidad diferencial y, al mismo tiempo, colaborar con una marca deportiva que utiliza datos athletic_brand_sales. El publicador multimedia ha configurado la columna user_id como columna de identificador de usuario y, al mismo tiempo, ha habilitado una privacidad diferencial en AWS Clean Rooms. El anunciante no necesita una protección de privacidad diferencial y desea ejecutar una consulta mediante CTE sobre datos combinados. Puesto que su CTE utiliza tablas protegidas por la privacidad diferencial, el anunciante incluye la columna de identificador de usuario de esas tablas protegidas en la lista de columnas de CTE y une las tablas protegidas en la columna de identificador de usuario.

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

Del mismo modo, si desea ejecutar funciones de ventana en tablas de datos con protección de privacidad diferencial, debe incluir la columna de identificador de usuario en la cláusula PARTITION BY.

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