Saltar al contenido principal
Version: 0.58.0-rc.42

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:

NivelPropósito
StagingNormalizar tablas de eventos públicos y campos de payload tipados.
IntermediateReconstruir estado de entidad, intervalos, balances y lógica de negocio regulatoria.
OutputsProducir 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:

  1. Ejecutan dbt deps y dbt build para los recursos dbt de Postgres requeridos.
  2. Consultan la tabla de salida dbt o la función SQL desde el DW de Postgres.
  3. Generan salidas en formato CSV, XML o texto a partir de la definición del informe en core/report/report-definitions/reports.yml.
  4. Cargan los archivos al almacenamiento configurado y persisten registros de ReportRun / Report para 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.py valida los modelos de staging y rollup de pg-dw contra los esquemas de eventos públicos.
  • ci/tasks/validate-report-columns.sh analiza el manifiesto dbt de Postgres y verifica que las definiciones de informes as-of apunten a modelos as_of_sql_function utilizando la macro de filtro as-of esperada.