dbt Risk Analytics
Proyecto dbt dedicado a análisis de riesgo que transforma datos desde múltiples fuentes hacia solvento-risk-analytics-prod.
Descripción
Este proyecto dbt (dbt-analytics) es el motor de transformación de datos para análisis de riesgo en Solvento. Transforma datos raw y depurados desde solvento-data-prod y solvento-adv-analytics-prod hacia solvento-risk-analytics-prod, generando data products especializados para análisis de riesgo.
Repositorio
- Repositorio:
dbt-analytics - Nombre del Proyecto:
warehouse - Proyecto GCP Destino:
solvento-risk-analytics-prod
Arquitectura
Flujo de Datos
graph TB
subgraph fuentes["Fuentes de Datos"]
DataProd[solvento-data-prod<br/>RAW]
AdvAnalytics[solvento-adv-analytics-prod<br/>DEPURADO]
end
subgraph dbt["dbt Risk Analytics"]
Staging[Staging Layer<br/>stg_*]
Intermediate[Intermediate Layer<br/>int_*]
Marts[Marts Layer<br/>fact_*/dim_*]
DataProducts[Data Products<br/>Specialized]
end
subgraph destino["Destino"]
RiskProd[solvento-risk-analytics-prod<br/>BigQuery]
end
DataProd --> Staging
AdvAnalytics --> Staging
Staging --> Intermediate
Intermediate --> Marts
Marts --> DataProducts
DataProducts --> RiskProd
Arquitectura Medallion
El proyecto sigue la arquitectura medallion (Bronze → Silver → Gold):
- Staging (Bronze): Transformación inicial de datos raw
- Schema:
staging - Prefijo:
stg_* -
Materialización: Table
-
Intermediate (Silver): Lógica de negocio y transformaciones
- Schema:
intermediate/intermediate_2 - Prefijo:
int_* -
Materialización: Table
-
Marts (Gold): Tablas finales para consumo
- Schema:
core - Prefijo:
fact_*,dim_* -
Materialización: Table
-
Data Products: Productos especializados de riesgo
- Schema:
data_products - Materialización: Table
Fuentes de Datos
Desde solvento-data-prod (Raw)
El proyecto lee datos raw de múltiples fuentes:
LoanPro (Ingerido via Datastream)
- Schema:
loanpro - Ingesta: Datastream (CDC en tiempo real desde MySQL)
- Tablas principales:
loan_entity,loan__customer,loan_setup_entitycustomer_entity,loan_tx,charge_entityloan_status_archive,loan__portfolioline_of_credit_entity,line_of_credit_daily_archive
Syntage
- Schema:
syntage - Tablas principales:
- Datos de buró de crédito
- Información de clientes
- Datos financieros
HubSpot (Ingerido via Airbyte)
- Schema:
hubspot - Ingesta: Airbyte (API REST nativa)
- Tablas principales:
deals,contacts,company
Toku (Ingerido via Webhooks)
- Schema:
toku - Ingesta: Webhooks (Cloud Run → Pub/Sub → Dataflow)
- Tablas: Datos de Toku ingeridos
Otras Fuentes
- Carta Porte: Datos de transporte
- SVC Public: Datos de operaciones
- Analíticas: Datos analíticos
Desde solvento-adv-analytics-prod (Depurado)
Syntage Advanced Analytics
- Schema:
consistency_jobs - Tablas:
invoices: Facturas depuradasinvoices_items: Items de facturas depurados
Desde solvento-risk-analytics-prod (Automation)
- Schema:
automation - Tablas: Datos de automatización
Data Products Principales
1. Solvento Score v2
Sistema de scoring de crédito para evaluación de riesgo.
- Modelo principal:
dp_solvento_score_v2 - Componentes:
comp_cancelled_invoices: Facturas canceladascomp_debt_ratio: Ratio de deudacomp_ratio_top_3: Ratio top 3comp_rev_hubspot_customers: Revenue de clientes HubSpot
2. DSCR (Debt Service Coverage Ratio)
Análisis de cobertura de servicio de deuda.
- Modelo principal:
dscr - Componentes:
comp_monthly_payments_balances: Pagos mensuales y balances
3. Customer Classifier
Clasificación y segmentación de clientes.
- Modelos:
customer_type: Tipo de clientecustomer_type_all_customers: Todos los clientes clasificados
4. Variable Interest Reserve Writeoff
Reservas y writeoffs de interés variable.
- Modelo:
historical_variable_interest_loan_buckets
5. Segmentation
Segmentación de clientes y productos.
- Modelos:
comp_segmentation_carta_porte: Segmentación Carta Portecomp_segmentation_invoice_items: Segmentación de items de factura
Estructura del Proyecto
dbt-analytics/
├── models/
│ ├── staging/ # Bronze: Raw transformations
│ │ ├── loanpro/ # LoanPro staging models
│ │ ├── syntage/ # Syntage staging models
│ │ ├── hubspot/ # HubSpot staging models
│ │ ├── toku/ # Toku staging models
│ │ └── ...
│ ├── intermediate/ # Silver: Business logic
│ │ ├── loanpro/ # LoanPro intermediate models
│ │ ├── syntage/ # Syntage intermediate models
│ │ └── ...
│ ├── intermediate_2/ # Additional processing layer
│ ├── marts/core/ # Gold: Final analytics
│ │ ├── loanpro/ # fact_*/dim_* tables
│ │ ├── syntage/ # Credit analytics
│ │ └── hubspot/ # Customer analytics
│ ├── data_products/ # Risk products
│ │ ├── solvento_score_v2/
│ │ ├── dscr/
│ │ ├── customer_classifier/
│ │ └── ...
│ └── models/ # Source of Truth
│ └── historical_loanpro.sql
├── seeds/ # Reference data
├── macros/ # Reusable functions
├── tests/ # Data quality tests
└── docs/ # Documentation
Modelos Clave
Source of Truth
historical_loanpro.sql: Tabla maestra de préstamos, base para todos los análisis
Core Facts & Dimensions
fact_loanpro_loans: Analytics del ciclo de vida de préstamosfact_loanpro_payments: Transacciones de pagosfact_loanpro_charges: Tracking de fees y cargosfact_syntage_invoices: Facturas de Syntagefact_syntage_invoices_items: Items de facturas
Configuración
Perfil de dbt
warehouse:
target: prod
outputs:
prod:
type: bigquery
method: service-account
project: solvento-risk-analytics-prod
dataset: warehouse
location: US
Schemas por Capa
- Staging:
staging - Intermediate:
intermediate,intermediate_2 - Marts:
core - Data Products:
data_products - Utility:
utility - Semantic:
semantic
Frecuencia de Ejecución
| Capa | Frecuencia | Método |
|---|---|---|
| LoanPro Core | 2 horas | Incremental |
| Syntage Credit | 6 horas | Full refresh |
| HubSpot CRM | 12 horas | Incremental |
| Data Products | 6 horas | Incremental |
Testing y Calidad
Tests Implementados
- Schema Tests: Not null, unique, relationships
- Data Tests: Validación de lógica de negocio
- Custom Tests: Tests específicos de riesgo
test_payoff_component_integritytest_zero_balance_coherence- Tests de DSCR
- Tests de dual source (Syntage)
Ejecutar Tests
# Todos los tests
dbt test
# Tests específicos
dbt test --select fact_syntage_invoices
dbt test --select tag:data_quality
Comandos Comunes
# Ejecutar todo el pipeline
dbt run
# Ejecutar solo data products
dbt run --select data_products.*
# Ejecutar solo staging
dbt run --select staging.*
# Ejecutar con full refresh
dbt run --full-refresh --select fact_loanpro_loans
# Generar documentación
dbt docs generate
dbt docs serve
Relación con Otros Proyectos
Lectura desde solvento-data-prod
- Lee datos raw de LoanPro (replicado por Datastream, ventanas de 15 min), Syntage y Toku (webhooks), HubSpot (Airbyte), etc.
- Transforma y limpia los datos en la capa staging
Lectura desde solvento-adv-analytics-prod
- Lee datos depurados de Syntage (invoices, invoices_items)
- Utiliza datos ya procesados para análisis de riesgo
Escritura a solvento-risk-analytics-prod
- Escribe todas las capas transformadas
- Genera data products especializados de riesgo
- Proporciona datos listos para consumo en herramientas de BI
Monitoreo y Métricas
- Ejecuciones: Monitoreo de ejecuciones de dbt
- Success Rate: Tasa de éxito de las ejecuciones
- Test Results: Resultados de tests de calidad
- Execution Time: Tiempo de ejecución por capa
- Data Freshness: Frescura de los datos fuente
Referencias
- Repositorio:
dbt-analytics - dbt Documentation
- BigQuery Documentation
Este proyecto es mantenido por el equipo de Analytics Engineering de Solvento y es fundamental para el análisis de riesgo de la organización.