Autor: Eduardo Martínez Agrelo
Bienvenidos al tercer laboratorio de vuestro camino en la replicación con Eventarc. En este módulo, sentaremos las bases del Change Data Capture (CDC) en tiempo real. No se trata solo de consultar bases de datos relacionales, sino de transformar mutaciones de estado NoSQL en registros analíticos instantáneos. Utilizaremos Google Cloud para sincronizar eventos en la capa Bronze.
La Evolución: De Consultas Periódicas a Event-Driven CDC
El escaneo y consulta periódica sobre bases de datos transaccionales satura la red, consume lecturas operacionales y genera latencia de sincronización innecesaria. En arquitecturas modernas, el CDC guiado por eventos es la respuesta óptima:
- Limitaciones: Ejecutar consultas de forma masiva sobre la base de datos de producción degrada el rendimiento del sistema transaccional.
- La Solución: Capturar mutaciones de estado asíncronamente mediante disparadores en tiempo real evita impactos y elimina el retraso analítico.
La Preservación Raw: Deserialización, Metadatos y JSON Nativos
Para asegurar que nuestra base analítica almacene de forma fiel cada mutación, utilizaremos el motor de BigQuery ejecutando tres pasos lógicos:
Captura de Evento (Protobuf) + Conversión a Diccionario (MessageToDict) + Registro de Historial (JSON)
Aprenderemos que un registro sin formato de eventos es inútil para el histórico; por ello, nos enfocaremos en conservar el payload NoSQL original completo dentro de columnas tipadas como JSON nativos en BigQuery.
Configuración de Eventos con Terraform
En la ingeniería de datos en tiempo real, la infraestructura de eventos debe estar automatizada. No configuramos disparadores de forma manual en la consola; utilizamos Terraform para aprovisionar las rutas y permisos que conectarán Firestore con BigQuery:
- Gobernanza: Crearemos una tabla en BigQuery con tipado nativo de columnas y la enlazaremos con Terraform de forma limpia.
- Triggers: Configuraremos un canal de Eventarc para capturar las mutaciones producidas en la base de datos de origen.
Implementación práctica
En este laboratorio práctico, codificarás el script del trigger en Python. Crearemos la función asíncrona y definiremos
las dependencias en el archivo requirements.txt para deserializar los payloads, permitiéndote simular
mutaciones en la colección y observar la sincronización.
Conclusión: Replicación CDC en tiempo real
Has completado con éxito la replicación CDC en tiempo real. Has aprendido a desacoplar el sistema de producción capturando eventos NoSQL e insertándolos de forma asíncrona en BigQuery sin afectar el rendimiento transaccional. Ya tienes tus primeros datos de clientes fluyendo de forma continua; el siguiente paso es automatizar la ingesta por lotes de archivos planos.