Skip to content

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éstamos
  • loan__customer: Relación préstamo-cliente
  • loan_setup_entity: Configuración de préstamos
  • customer_entity: Entidades de clientes
  • loan_tx: Transacciones de préstamos
  • charge_entity: Cargos
  • loan_status_archive: Historial de estados de préstamos
  • loan__portfolio: Portafolios de préstamos
  • line_of_credit_entity: Líneas de crédito
  • line_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)

Referencias