CS-01 — Plataformas de datos · Arquitectura cloud · Automatización e IA
Modernización multi-tenant de PostgreSQL a Snowflake
Integración de los datos operativos PostgreSQL de cada tenant de una plataforma de precios en Snowflake, manteniendo el aislamiento entre tenants y automatizando el alta de nuevos clientes.
- Mi papel
- Senior Data Engineer (Wizeline). Ander decidió la arquitectura que se iba a implementar y diseñó la infraestructura junto con el equipo de OPS.
- Periodo
- No documentado
- Divulgación
- Detalles anonimizados
- Tecnologías
- SnowflakePostgreSQLC#.NETAWS FargatePythonSQLAWS LambdaAmazon S3AWS Step FunctionsApache AirflowAmazon EventBridge
- Última revisión
- 13 de noviembre de 2026
Contexto
PricePro es una plataforma empresarial multi-tenant de precios para el retail de combustible (precios, competencia, estrategias, márgenes, volúmenes). Cada tenant tiene sus datos operativos en un entorno PostgreSQL lógicamente aislado. La analítica necesitaba integrar esos datos en Snowflake sin romper el aislamiento entre tenants y de forma escalable.
Retos
- 01Mantener el aislamiento lógico de cada tenant también en la capa analítica.
- 02Dar de alta nuevos tenants sin intervención manual extensa (bases de datos, esquemas, permisos, integración).
- 03Gestionar la evolución de esquemas entre el origen operativo y Snowflake.
- 04Migrar datos históricos y validar la consistencia entre origen y destino.
Solución y arquitectura
Archivado de datos desde PostgreSQL mediante procesos en C# ejecutados en AWS Fargate que generan ficheros JSON, ingeridos después en Snowflake a través de stages con carga orquestada. Pipelines de ingesta y transformación desde PostgreSQL hacia estructuras de Snowflake por tenant, orquestados con servicios AWS (Lambda, S3, Step Functions, eventos) y Airflow, junto con automatización del aprovisionamiento: inicialización del tenant, creación de estructuras de datos, configuración de base de datos y esquema, permisos necesarios y sincronización continua.
Decisiones clave
D-01
Exportación a JSON con tareas en Fargate e ingesta por stages de Snowflake
Desacopla la extracción desde PostgreSQL de la carga en Snowflake; Snowflake ingiere los ficheros desde su stage de forma orquestada.
D-02
Estructuras de datos por tenant en Snowflake
Conservar en la capa analítica el mismo aislamiento lógico que existe en el origen operativo.
D-03
Aprovisionamiento automatizado de tenants
El alta de clientes es recurrente; automatizarla evita pasos manuales propensos a errores.
Compromisos
Aún no documentado
Resultados
Los nuevos tenants se integran en la plataforma analítica mediante automatización en lugar de configuración manual extensa.
Aprendizajes
Aún no documentado
Ander decidió la arquitectura de esta modernización y diseñó la infraestructura con el equipo de OPS. Además, desarrolló en C# el archivado de datos desde PostgreSQL con AWS Fargate. También ha trabajado en: comprender los esquemas PostgreSQL existentes, diseñar mecanismos de ingesta, desarrollar pipelines y transformaciones, dar soporte a estructuras de base de datos conscientes del tenant, gestionar la evolución de esquemas, validar la consistencia, optimizar la ingesta, apoyar la migración histórica y automatizar el alta de tenants.
Los detalles internos (identificadores de tenants, nombres de recursos, cuentas) no se publican.
Pregunta sobre este caso de estudio
Las preguntas de aquí se responden con el caso de estudio «Modernización multi-tenant de PostgreSQL a Snowflake» como contexto.