Datastream · Loanpro (CDC del core de préstamos)
CDC continuo desde una read-replica RDS MySQL de Loanpro hacia
solvento-data-prod.datastream_loanpro.*mediante GCP Datastream.
¿Llegaste hasta acá desde…?
Usa esta tabla para entrar en sentido inverso (lo que ves → de dónde sale):
| Si ves… | Eso sale de… | La lógica está en… |
|---|---|---|
| Préstamos / pagos en analítica o Metabase | solvento-data-prod.datastream_loanpro.* (RAW) |
dbt-analytics → models/staging/loanpro/ y models/marts/core/loanpro/ |
Un fact_loanpro_* / dim_loans |
marts models/marts/core/loanpro/ |
dbt-analytics → models/marts/core/loanpro/ |
Una tabla datastream_loanpro.5202851_P_* cruda |
solvento-data-prod.datastream_loanpro.* (RAW) |
Ingesta vía GCP Datastream (CDC, sin lógica de negocio); ver "Paso a paso" |
Resumen
| Campo | Valor |
|---|---|
| Origen | Read-replica RDS MySQL de Loanpro (44.208.254.51:3307, usuario solvento_ro) |
| Patrón | GCP Datastream (CDC) — sin lógica de negocio en la ingesta |
| Destino | solvento-data-prod.datastream_loanpro.* |
| Frecuencia | CDC continuo (streaming) |
| Criticidad | 🟡 Media — réplica del core de préstamos |
| Dueño | Gero (Datastream) · transformaciones: Diego (dbt-analytics) |
| Repos | (servicio gestionado — sin repo; configurado en consola de GCP Datastream) |
⚠️ No tenemos acceso a la cuenta AWS donde vive el RDS de Loanpro: solo al usuario MySQL
solvento_ro. Si el problema está del lado de la réplica (caída, credenciales, firewall del origen) hay que contactar al equipo de Loanpro.
Diagrama de linaje
graph LR
SRC[["🗄️ RDS MySQL Loanpro<br/>read-replica · 44.208.254.51:3307<br/>(cuenta AWS de Loanpro)"]]
subgraph ing["1 · Ingesta (CDC, sin lógica de negocio)"]
DS["GCP Datastream<br/>stream Loanpro (CDC)"]
RAW[("solvento-data-prod<br/>datastream_loanpro.* · RAW")]
end
subgraph logica["2 · Lógica de negocio · dbt-analytics"]
STG["staging/loanpro/<br/>stg_loanpro__*"]
MARTS["marts/core/loanpro/<br/>fact_* · dim_loans"]
end
CONS["📈 Metabase / analítica de préstamos"]
SRC -->|"CDC continuo (solvento_ro)"| DS --> RAW
RAW --> STG --> MARTS --> CONS
classDef src fill:#fde68a,stroke:#b45309,color:#000;
classDef store fill:#bfdbfe,stroke:#1e40af,color:#000;
classDef logic fill:#dcfce7,stroke:#15803d,color:#000;
class SRC src;
class RAW store;
class STG,MARTS logic;
Paso a paso
1 · Ingesta (mueve datos, no aplica lógica de negocio)
- Loanpro mantiene una read-replica RDS MySQL (
44.208.254.51:3307). Vive en una cuenta AWS de Loanpro a la que no tenemos acceso; solo se nos dio el usuario MySQL de solo lecturasolvento_ro. - GCP Datastream corre un stream de CDC continuo configurado en la consola de GCP Datastream (no hay repo de código). Lee el binlog de la réplica y propaga inserts/updates/deletes.
- Datastream escribe los datos crudos en
solvento-data-prod.datastream_loanpro.*. Los nombres de tabla conservan el prefijo del origen (5202851_P_loan_entity,5202851_P_payment_entity, etc.). La ingesta solo replica; no aplica reglas de negocio.
Nota: esta fuente migró de Matia a GCP Datastream el 2026-02-02.
2 · Lógica de negocio (dbt — aquí están las reglas) → repo dbt-analytics
models/staging/loanpro/stg_loanpro__*— renombra/tipa las tablas crudas5202851_P_*a nombres legibles (stg_loanpro__loans,stg_loanpro__payments,stg_loanpro__charges,stg_loanpro__customers, …).models/marts/core/loanpro/— construye los hechos y dimensiones (fact_loanpro_loans,fact_loanpro_payments,fact_loanpro_charges,dim_loans, …) que consume la analítica.
3 · Consumo
- Metabase / analítica de préstamos lee de los modelos
staging/loanproymarts/core/loanpro.
Tablas que alimenta
| Tabla | Contenido | Job que la carga |
|---|---|---|
datastream_loanpro.5202851_P_loan_entity |
Préstamos (core) | GCP Datastream (CDC) |
datastream_loanpro.5202851_P_payment_entity |
Pagos | GCP Datastream (CDC) |
datastream_loanpro.5202851_P_charge_entity |
Cargos | GCP Datastream (CDC) |
datastream_loanpro.5202851_P_customer_entity |
Clientes | GCP Datastream (CDC) |
datastream_loanpro.5202851_P_portfolio_entity |
Portafolio | GCP Datastream (CDC) |
datastream_loanpro.5202851_P_line_of_credit_entity |
Líneas de crédito | GCP Datastream (CDC) |
Consumo aguas abajo
- dbt-analytics (
models/staging/loanpro,models/marts/core/loanpro) → Metabase / analítica de préstamos.
Si falla 🛠️
Impacto: 🟡 medio. Réplica del core de préstamos; un stream detenido desactualiza la analítica de loans/pagos.
| Síntoma | Dónde mirar | Acción |
|---|---|---|
datastream_loanpro.* no avanza |
Consola de GCP Datastream — estado del stream + Cloud Logging | Revisar el error; si es transitorio, reanudar el stream |
| Error de conexión al origen | Conectividad GCP → 44.208.254.51:3307 (usuario solvento_ro) |
Verificar conectividad/credenciales de nuestro lado; reanudar el stream |
| Falla del lado de la réplica (caída, credenciales del origen, firewall, binlog) | Stream marca el origen como inalcanzable | No tenemos acceso a la cuenta AWS → contactar al equipo de Loanpro |
| Números "raros" en analítica de préstamos | Lógica en dbt-analytics (staging/loanpro, marts/core/loanpro) |
Revisar la transformación en el repo, no la ingesta |
Escalación: Datastream / ingesta → Gero · réplica del origen (AWS de Loanpro) → equipo de Loanpro · lógica SQL / Metabase → Diego · resto → Martin.
Enlaces
- 📊 Estado en vivo: dashboard "Data Processes" (Cloud Monitoring)
- ⚙️ Configuración de la ingesta: consola de GCP Datastream → stream
Loanpro(servicio gestionado, sin repo) - 🧮 Lógica:
dbt-analytics— modelos enmodels/staging/loanpro/ymodels/marts/core/loanpro/
Última actualización: 2026-06-21 · Si cambia el flujo o un modelo dbt, actualizar esta ficha en el mismo MR.