Blog de Amazon Web Services (AWS)

Facilitando la colaboración de datos con AWS Clean Rooms

Por Astrid Alcaraz, TAM

 

En el dinámico mundo de los datos y la colaboración empresarial, la recopilación de estos a través de diferentes canales de interacción (con socios, clientes o proveedores) y su análisis sin comprometer su privacidad y su seguridad, además de no requerir la transferencia de grandes volúmenes de información, ha representado un desafío. AWS Clean Rooms es el servicio que está revolucionando la forma en que las empresas colaboran, analizan y desatan el poder de sus datos sin precedentes, apoyando la toma de decisiones empresariales más informadas. Dado lo anterior, el objetivo de este blog es explorar esta solución bajo un enfoque práctico.

Escenario

Para trabajar con la configuración de AWS Clean Rooms durante el desarrollo de este blog se consideran dos bases de datos provistas por dos entidades, Marketplace y Proveedor A. El objetivo consiste en que el Proveedor A sea capaz de llevar a cabo consultas interceptando la información de ambas bases de datos de una forma segura y eficiente. Permitiendo obtener el total de las ventas que se han tenido en la Marketplace, agrupadas por las categorías que el Proveedor A publica

Requisitos

Para comenzar la interacción se deben cumplir con los siguientes requisitos.

  • 1 cuenta de AWS para MarketplaceCo
  • 1 cuenta de AWS para ProviderACo
  • Usuarios con acceso a la consola de AWS
  • Base de datos Marketplace
  • Base de datos Proveedor A

Configuración de la colaboración

  1. Ingresar al servicio AWS Clean Rooms dentro de la consola de AWS en la cuenta ProviderACo
  2. Crear una colaboración

La creación del espacio permitirá la colaboración entre la empresa MarketplaceCo y ProviderACo con el objetivo de analizar el o los conjuntos de datos compartidos de manera segura y eficiente dentro de un entorno controlado.  La colaboración será nombrada Inventory-Analysis.

  1. Agregar miembros a la colaboración

Este ambiente pretende habilitar la colaboración entre MarketplaceCo y ProviderACo. Con el objetivo de analizar el total de ventas del Proveedor A por categoría dentro de la compañía Marketplace, proporcionando visibilidad que permita al proveedor la toma de decisiones oportunas.

El nombre para mostrar el miembro y el ID de la cuenta de AWS del miembro serán visibles para todos los invitados a la colaboración. Después de ingresar y guardar los valores para estos campos, no se pueden editar.

  1. Delimitar responsabilidades

Las responsabilidades a asignar se centran en:

  • Consultar los datos de la colaboración y recibir resultados
  • Asignar un miembro diferente para recibir resultados

Para la presente configuración se selecciona a ProviderACo como miembro con la habilidad de ejecutar consultas y recibir resultados en esta colaboración.

Solo uno de los miembros en la colaboración puede generar consultas.

  1. Habilitar el almacenamiento de registros dentro de CloudWatch, si usted desea que las consultas en esta colaboración se registren. Cada miembro puede recibir solo registros de las consultas que inició o que contienen sus datos.
  2. Validar la colaboración creada

Aceptar invitación a colaboración

  1. Ingresar a la consola de AWS de la cuenta MarketplaceCo e ingresar al servicio AWS Clean Rooms

  1. Crear membresía a la colaboración

Configuración de información a compartir entre compañías

 

  1. Ingresar a la consola de AWS en la cuenta MarketplaceCo e ingresar a AWS Clean Rooms (Esta cuenta tiene la habilidad de contribuir con data)
  2. Seleccionar colaboración Inventory-Analysis y proceder a la asociación de tabla

En esta sección se empleará la conexión a la base de datos existente de la compañía MarketplaceCo bajo el servicio de AWS Glue.

Esta base de datos, a manera de ejemplo, cuenta con los campos:

  • Order_number (string)
  • Sale_date (string)
  • Sku_product_sold (string)
  • Quantity_sold (bigint)
  • Customer_id (string)

 

Comúnmente una base de datos de ventas cuenta con información que incluye fechas de venta, número de pedido, productos vendidos, canal de venta, perfil de cliente, nombre, datos de pago, y dirección de envío. En general la información que debe ser protegida para ser visualizada única y exclusivamente por el propietario de la misma. Es de suma importancia conocer la información con el objetivo de delimitar aquella que será objeto de compartir.

En este escenario el Proveedor A solo necesita conocer el total de ventas por categoría que se han llevado a cabo en la Marketplace basado en los productos que maneja. Por lo que dentro de la base de datos de Marketplace los valores de Customer_id y Order_number pueden permanecer sin acceso.

  1. Seleccionar los campos que se desean compartir con la empresa ProviderACo

Se procede a compartir los campos:

  • Quantity_sold (bigint)
  • Sale_date (string)
  • Sku_product_sold (string)

El objetivo es poder visualizar el total de ventas por el SKU del producto dentro de la Marketplace. Con esta información el Proveedor A será capaz de interceptar por SKU del producto los totales de interés, asegurándonos de eliminar el acceso a cualquier información confidencial relacionada con clientes y transacciones.

  1. Configurar reglas de análisis

Los análisis de agregación, lista y personalizados son reglas que permiten ejecutar consultas en datos con diferentes niveles de control y restricciones.

  • La regla de análisis de agregación permite ejecutar consultas que generan estadísticas agregadas.
  • La regla de análisis de lista permite ejecutar consultas que extraen la lista de filas de la intersección de múltiples conjuntos de datos.
  • La regla de análisis personalizada permite crear consultas personalizadas utilizando la mayoría de las funciones estándar de SQL, como expresiones de tabla comunes (CTE) y funciones de ventana. También permite revisar y aprobar consultas antes de que los colaboradores las ejecuten y revisar las consultas de otros colaboradores antes de que se les permita ejecutarlas en tus tablas.

  1. Delimitar controles de búsqueda permitidos.

En esta sección es posible granular la función de agregación que se estará permitiendo para la columna deseada. Algunas de las funciones disponibles son:

  • COUNT
  • COUNT DISTINCT
  • SUM
  • SUM DISTINCT
  • AVG
  1. Especificar la columna de unión

La intersección de búsqueda entre ambas bases de datos será realizada por el campo sku_product_sold ya que será el que permita identificar el SKU del producto del Proveedor A con el sku_product_sold de ventas dadas en el Marketplace.

La tabla se puede consultar sola, unida a otras tablas o solo cuando se une a una tabla propiedad del miembro que puede realizar la consulta.

  1. Opcionalmente, elija el control o controles de dimensión

Es posible seleccionar qué columnas se desean permitir para que se utilicen en la instrucción SELECT y las partes WHERE, GROUP BY y ORDER BY de la consulta. En la configuración se agregó el campo Sale_date para profundizar en las consultas.

  1. Seleccionar controles de resultados

Es necesario seleccionar el número mínimo de valores distintos que se deben cumplir para cada fila de salida que se devolverá después de aplicarse la función COUNT DISTINCT.

  1. Asociar tabla creada a colaboración.

  1. Asignar rol de acceso

  1. Ingresar a la consola de AWS en la cuenta ProveedorACo e ingresar a AWS Clean Rooms (Esta cuenta tiene la habilidad de contribuir con data y ejecutar consultas)
  2. Seleccionar colaboración Inventory-Analysis
  3. Asociar la tabla

En esta sección se empleará la conexión a la base de datos existente de la compañía ProveedorACo bajo el servicio de Glue.

Esta base de datos, a manera de ejemplo, cuenta con los campos:

  • sku (string)
  • description_product (string)
  • category_product (string)
  • quantity_in_stock (bigint)
  • phisycal_location (string)
  1. Seleccionar los campos que se desean compartir con la empresa ProviderACo

Al ser esta la entidad que puede llevar a cabo la ejecución de consultas es posible optar por compartir todos los campos, sin embargo para el presente analisis se comparten

  • sku (string)
  • category_product (string)
  • quantity_in_stock (bigint)
  1. Configurar reglas de Análisis

Se selecciona nuevamente la opción de agregación.

  1. Delimitar controles de búsqueda permitidos.

Seleccionar controles de agregación de suma para la columna quantity_in_stock

  1. Especificar la columna de intersección

Basados en el objetivo de lograr obtener la intersección de búsqueda entre ambas bases de datos por el campo sku_product_sold en la base de datos Marketplace y sku del producto en la base de datos de ProveedorA, se agrega la columna sku para esta nueva asociación.

  1. Opcionalmente, elija el control o controles de dimensión

En la configuración se decidió agregar los campos description_product y category_product para profundizar en las consultas.

  1. Seleccionar controles de resultados
  2. Asociar tabla creada a colaboración
  3. Validar la colaboración creada y configurada.

Consultar datos en una colaboración

Al llevar a cabo la consulta a todos los campos de la base de datos Marketplace, como es de esperar, un error debe suscitarse indicando que las columnas deben especificarse.

Al indicar la función de agregación previamente habilitada (sum quantity_sold) en la base de datos de Marketplace debe suscitarse un error indicando la ausencia de una operación de intersección o unión (característica configurada previamente)

Ahora procedemos a llevar la consulta objetivo, obtener el total de ventas por sku que se han dado en la Marketplace de los productos que posiciona el Proveedor A, agrupados por categoría.

Conclusión

En resumen, hemos validado que las colaboraciones y la configuración asociada son esenciales para garantizar la integridad y la seguridad de los datos. Estos espacios controlados proporcionan un entorno lógico donde se pueden manejar y procesar datos críticos sin riesgo de contaminación o manipulación no autorizada.

AWS Clean Rooms es un servicio innovador y necesario en el mundo de la computación en la nube. Al seguir las pautas y las mejores prácticas que hemos explorado en este blog, las organizaciones pueden asegurarse de que sus datos estén protegidos y se manejen de manera segura en un entorno limpio y confiable.

 


Acerca de la autora

Astrid Alcaraz es Technical Account Manager en AWS México. Le interesa la analítica de datos y la seguridad de la información.

 

 

 

 

Revisores

Fabiana Serangelli es arquitecta de soluciones en AWS México. Le interesa la analítica de datos y la implementación de inteligencia artificial.

 

 

 

 

Servio Tulio Reyes Castillo es arquitecto de soluciones en AWS México. Le interesan las ciencias de la computación y las tecnologías aeroespaciales.