

Contenidos
Qué es Snowflake Data Sharing y por qué está cambiando la forma de compartir datos
El concepto de Snowflake Data Sharing está transformando la manera en que las organizaciones acceden y distribuyen datos entre equipos, regiones y socios externos. A diferencia de los métodos tradicionales de compartición de datos enviando archivos CSV, FTP, APIs o integraciones batch, Snowflake permite compartir conjuntos de datos de manera instantánea, segura y sin replicación física.
A nivel técnico, Snowflake permite que un proveedor de datos publique un share, que es como una vista externa del conjunto de datos. Este share puede ser accedido por un consumidor desde otra cuenta Snowflake o, si no dispone de una, a través de una reader account que Snowflake crea automáticamente sin coste adicional para el consumidor.
Uno de los retos más frustrantes para ingeniero de datos, es mantener la sincronización de reportes entre las entidades o filiales dentro de una organización. Cada país o entidad suele tener su propio sistema local. A menudo, las exportaciones de datos se hacen manualmente, involucrando envíos de archivos CSV y otros formatos.
Snowflake evita esta complejidad mediante el uso de shares. En mi experiencia, los shares son un mecanismo de compartición de datos muy útil para estos casos, que gestionan de forma transparente la replicación de datos entre regiones para reducir costes y latencias.
Cómo funciona Snowflake Data Sharing
Snowflake Data Sharing está basado en el concepto de compartir acceso, no datos duplicados. El proveedor de datos crea un objeto llamado share en su base de datos, define los objetos (tablas, vistas, UDFs) que desea compartir, y lo asigna a una cuenta externa. Esta cuenta ve los datos casi como si fueran suyos, con latencia cero, sin tener que copiarlos.
Componentes clave del mecanismo:
- Data Provider: La cuenta que crea y mantiene el share.
- Data Consumer: La cuenta que accede a los datos compartidos.
- Reader Accounts: Si el consumidor no tiene Snowflake, se le asigna una cuenta gratuita solo para consumo. Las reader accounts solo pueden crearse en la misma región que el data provider.
- Secure Views: Las vistas compartidas pueden ocultar columnas o aplicar filtros, garantizando privacidad.
Una vez que se entiende el modelo de permisos, crear un share es cuestión de minutos. Incluso pudimos automatizar la actualización del contenido con tasks y streams para que los datos siempre estuvieran actualizados.


Con el control granular que ofrece Snowflake, se pueden establecer filtros por filas o enmascaramientos sobre los datos. De esta forma, se pueden definir políticas que permiten dat visibilidad a algunos roles y a otros no.
Tipos de compartición: entre cuentas, reader accounts y Snowflake Marketplace
Snowflake ofrece tres formas de compartir datos, cada una adaptada a distintos escenarios:
La compartición entre cuentas Snowflake (Secure Data Sharing) es ideal cuando tanto proveedor como consumidor ya tienen cuentas activas. Es el método más directo, sin costes extra, y con total control del proveedor sobre lo que se comparte.
¿Quieres Convertirte en Ingeniero de Datos?
Las reader accounts, están pensadas para socios o filiales que no tienen Snowflake. El proveedor crea una cuenta read-only gestionada, sin coste para el receptor, que puede acceder al share desde una interfaz Snowflake normal.
Si los datos tienen valor más allá de tu organización, puedes publicarlos en el Marketplace de Snowflake. Allí, empresas de cualquier sector pueden descubrir y suscribirse a tus datasets, lo cual abre una posibilidad real de monetizar tus datos.
Ventajas reales de usar Snowflake para compartir datos
Lo más impresionante de Snowflake Data Sharing es que no necesitas mover ni duplicar datos. Aquí te dejo las ventajas más importantes que hemos experimentado en el día a día:
- Baja latencia: Los consumidores ven los datos prácticamente al momento.
- Seguridad nativa: Los shares respetan roles, ennmascaramiento, políticas row-level y más. Puedes mostrar una columna a una cuenta y ocultarla a otra.
- Sencillez de operación: No necesitas pipelines, sincronización, ni mover archivos. Snowflake elimina una gran parte de la complejidad de los ETLs entre empresas.
Cómo compartir datos paso a paso en Snowflake
Aquí tienes un flujo básico para compartir datos entre cuentas Snowflake:
1: Crear el Share
CREATE SHARE regional_data_share;2: Agregar objetos al Share
GRANT USAGE ON DATABASE ventas TO SHARE regional_data_share;
GRANT USAGE ON SCHEMA ventas.enero TO SHARE regional_data_share;
GRANT SELECT ON TABLE ventas.enero.facturas TO SHARE regional_data_share;3: Asignar al consumidor
ALTER SHARE regional_data_share ADD ACCOUNTS = ('ACCOUNT_LOCATOR');4: Crear una Reader Account
CREATE MANAGED ACCOUNT centroamerica_reader
ADMIN_NAME = 'usuario'
ADMIN_PASSWORD = 'tuPassword!'
EMAIL = 'admin@cliente.com'
...El proceso es bastante sencillo, solo asegúrate de usar nombres estandarizados para objetos compartidos, que será lo que verán los consumidores. También, documenta los objetos compartidos y las versiones. Los equipos remotos no siempre tienen contexto.
Recuerda que cada nivel (database > schema > table) debe ser compartido explícitamente.
Snowflake Data Sharing no solo cumple su promesa técnica, sino que libera tiempo, reduce errores y mejora la colaboración entre equipos y organizaciones. No tener que mover ni copiar datos cambia completamente la dinámica de cómo operan los equipos de datos modernos.
¿Qué es un Reader Account?
Un Reader Account es una cuenta de Snowflake que no pertenece directamente al consumidor de datos, sino que es creada y administrada por el proveedor de datos. Es decir, el proveedor (data provider) crea una cuenta de Snowflake aislada para el consumidor que no tiene cuenta propia.
Implicaciones técnicas de usar Reader Accounts
- Aislamiento de recursos: Cada Reader Account es una instancia separada de Snowflake. Tiene su propio catálogo, configuración de seguridad, warehouses, etc. No comparte warehouses ni almacenamiento con la cuenta del proveedor.
- Control total del proveedor: El proveedor controla: Cuándo se crea y elimina la cuenta. Qué datos se comparten. Qué warehouses están disponibles (el proveedor paga por el compute). Esto da un control granular al proveedor, pero también una mayor responsabilidad operativa.


- Coste de cómputo a cargo del proveedor: El compute se factura al proveedor, ya que los Reader Accounts no pueden crear sus propios warehouses. El proveedor debe dimensionar y optimizar los warehouses usados por sus lectores. El coste se incrementa proporcionalmente al uso que hagan los consumidores.
- Seguridad y gobierno: Se puede aplicar role-based access control dentro del reader account. Snowflake garantiza que los datos compartidos no se copian físicamente, sino que se accede de forma virtual (zero-copy sharing). También es posible auditar las consultas realizadas en el reader account.
¿Quién paga los warehouses en el modelo con Reader Accounts?
Aunque los warehouses no se comparten directamente entre la cuenta del proveedor y las Reader Accounts, el proveedor es quien los crea y paga por ellos dentro de cada Reader Account.
- Cuando creas un Reader Account, esa cuenta no tiene la capacidad de crear sus propios warehouses.
- El proveedor, desde su cuenta principal, debe crear y administrar los warehouses dentro de esa Reader Account.
- Estos warehouses ejecutan en la infraestructura de la Reader Account, pero el coste de uso computacional (créditos de Snowflake) se factura al proveedor.
Sigue Aprendiendo con Cursos y Certificaciones
Aquí tienes los cursos de Udemy que te recomiendo para que sigas aprendiendo sobre Snowflake y cómo implementarlo en tus proyectos Big Data como Data Warehouse, ¡no te los pierdas!
Paso 1:


Aprende los conceptos fundamentales teóricos y prácticos de Snowflake
Este primer curso te permitirá familiarizarte rápidamente con los conceptos teóricos fundamentales.
Paso 2:


Domina el Data Warehouse de Snowflake con ejercicios prácticos
Después, te recomiendo hacer este curso práctico en el que desarrollarás conceptos más avanzados con ejemplos acerca de la arquitectura, cargas de datos y mejores prácticas.
Paso 3:


Snowflake para desarrolladores
Por último, este curso está orientado a desarrolladores, en el que usarás el conector de Python para implementar soluciones usando todas las características de la tecnología. Tiene más de 4 horas de vídeo.




![Lee más sobre el artículo Mejores cursos de Java en Udemy [Actualizado]](https://aprenderbigdata.com/wp-content/uploads/Mejores-cursos-udemy-Java-300x169.jpg)
