Datastream
Datastream es el servicio de Change Data Capture (CDC) serverless de Google Cloud utilizado para replicar datos de LoanPro hacia BigQuery en ventanas de 15 minutos.
Descripción
Google Cloud Datastream es un servicio de replicación y CDC serverless que permite sincronizar datos desde bases de datos relacionales hacia BigQuery mediante captura de cambios. En Solvento, Datastream replica la base de datos de LoanPro (MySQL) hacia solvento-data-prod en ventanas de 15 minutos.
Flujo de Datos
graph LR
subgraph origen["Origen"]
LoanPro[(LoanPro<br/>MySQL)]
end
subgraph datastream["Google Cloud Datastream"]
CDC[CDC<br/>Change Data Capture]
Window[Ventanas de 15 min<br/>Batch Flush]
end
subgraph destino["Destino"]
DataProd[solvento-data-prod<br/>BigQuery Raw]
end
LoanPro -->|"Binlog CDC"| CDC
CDC --> Window
Window -->|"Replica cada 15 min"| DataProd
Fuentes de Datos
LoanPro (MySQL)
- Base de Datos: LoanPro (MySQL)
- Método: Change Data Capture (CDC) vía binlog de MySQL
- Frecuencia de flush: Ventanas de 15 minutos
- Destino: BigQuery (
solvento-data-prod)
Tablas Principales Replicadas
loan_entity: Entidades de préstamosloan__customer: Relación préstamo-clienteloan_setup_entity: Configuración de préstamoscustomer_entity: Entidades de clientesloan_tx: Transacciones de préstamoscharge_entity: Cargosloan_status_archive: Historial de estados de préstamosloan__portfolio: Portafolios de préstamosline_of_credit_entity: Líneas de créditoline_of_credit_daily_archive: Historial diario de líneas de crédito
Características
Ventanas de 15 Minutos
Datastream captura cambios del binlog de MySQL de forma continua y los materializa en BigQuery en ventanas de 15 minutos:
- Captura incremental: Lee el binlog de MySQL capturando inserciones, actualizaciones y eliminaciones
- Flush cada 15 min: Los cambios acumulados se escriben a BigQuery cada 15 minutos
- Latencia controlada: La frescura máxima de los datos es de 15 minutos
- Sin impacto en origen: La lectura del binlog tiene mínimo impacto sobre LoanPro
Serverless
- No requiere infraestructura dedicada
- Google gestiona la disponibilidad y el mantenimiento
- Escala automáticamente según el volumen de cambios
Integración Nativa con BigQuery
- Escritura directa a BigQuery sin intermediarios
- Soporte para esquemas dinámicos
- Manejo automático de tipos de datos MySQL → BigQuery
Configuración
Conexión a MySQL
# Configuración conceptual de Datastream
source:
type: mysql
host: <loanpro-mysql-host>
port: 3306
database: loanpro
method: binary-log-replication
destination:
type: bigquery
project: solvento-data-prod
dataset: loanpro
stream:
backfill_all: true
max_staleness: 15m # Ventana de flush hacia BigQuery
Requisitos en MySQL
- Binary logging habilitado (
log_bin = ON) - Row-based replication (
binlog_format = ROW) - Usuario con permisos de replicación (
REPLICATION SLAVE,REPLICATION CLIENT)
Integración con GCP
Proyecto Utilizado
solvento-data-prod: Destino de datos raw replicados desde LoanPro
Nota: Según la filosofía de proyectos, Datastream escribe datos raw a solvento-data-prod. Los procesos ETL (dbt, Dataform) transforman estos datos hacia solvento-adv-analytics-prod.
Servicios GCP Relacionados
- BigQuery: Destino principal para datos replicados
- Cloud Monitoring: Monitoreo de streams, lag y freshness
- IAM: Control de acceso a streams y datasets
Monitoreo y Métricas
- Replication Lag: Tiempo transcurrido desde el cambio en MySQL hasta disponibilidad en BigQuery (máximo ~15 min)
- Stream Health: Estado de salud del stream
- Throughput: Volumen de datos replicados por ventana
- Error Rate: Tasa de errores en la replicación
- Data Freshness: Antigüedad de los datos en BigQuery (objetivo ≤ 15 min)