Pipelines de Datos
El pipeline de reportes de Lana se ejecuta dentro de la aplicación. La base de datos operacional publica eventos públicos, el relé outbox escribe esos eventos en el almacén de datos Postgres, dbt transforma las tablas del almacén, y los trabajos de reportes en Rust generan archivos de reporte descargables.
Descripción General
El pipeline proporciona:
- Tablas de almacén basadas en eventos para informes y análisis.
- Transformaciones dbt en
report/dbt_lana_pg_dw. - Archivos de informes regulatorios y operativos generados por trabajos Rust en
core/report. - Comprobaciones CI que comparan esquemas de eventos públicos, modelos de staging dbt y definiciones de informes.
Almacén de Datos Postgres
El almacén de datos se puebla desde el outbox de eventos públicos. La generación de informes no depende de tablas de aterrizaje externas ni de un orquestador Python separado.
La aplicación necesita DW_PG_CON cuando el almacén de datos está habilitado. El mismo DSN se pasa a dbt cuando el ejecutor de informes Rust invoca la herramienta de línea de comandos dbt. Sin esta configuración, la generación de informes manuales y de fin de día queda deshabilitada para ese despliegue.
Transformaciones dbt
El proyecto dbt se encuentra en:
report/dbt_lana_pg_dw/
├── models/
│ ├── staging/
│ ├── intermediate/
│ └── outputs/
├── macros/
├── seeds/
├── dbt_project.yml
└── profiles.yml
Los niveles del modelo son:
| Nivel | Propósito |
|---|---|
| Staging | Normalizar tablas de eventos públicos y campos de payload tipados. |
| Intermediate | Reconstruir estado de entidad, intervalos, balances y lógica de negocio regulatoria. |
| Outputs | Producir las relaciones de informe finales o funciones SQL as-of consumidas por el ejecutor de informes Rust. |
Los informes as-of utilizan la materialización as_of_sql_function para que el ejecutor de informes pueda llamar a la relación de salida con una fecha objetivo.
Generación de Informes
Los trabajos de informes manuales y de fin de día son trabajos ordinarios de Lana. Estos:
- Ejecutan
dbt depsydbt buildpara los recursos dbt de Postgres requeridos. - Consultan la tabla de salida dbt o la función SQL desde el DW de Postgres.
- Generan salidas en formato CSV, XML o texto a partir de la definición del informe en
core/report/report-definitions/reports.yml. - Cargan los archivos al almacenamiento configurado y persisten registros de
ReportRun/Reportpara el panel de administración.
Verificaciones de CI
El flujo de trabajo del pipeline de datos valida el proyecto dbt de Postgres sin provisionar infraestructura externa de almacén de datos:
dev/check-pg-dw.pyvalida los modelos de staging y rollup de pg-dw contra los esquemas de eventos públicos.ci/tasks/validate-report-columns.shanaliza el manifiesto dbt de Postgres y verifica que las definiciones de informes as-of apunten a modelosas_of_sql_functionutilizando la macro de filtro as-of esperada.