Skip to content

Dataform

Dataform es una plataforma de desarrollo de datos en BigQuery que Solvento utiliza para transformaciones ad hoc, cuadraturas, consistencia de datos y generación de snapshots para dashboards. No sustituye a dbt: ambas herramientas coexisten con propósitos distintos.

Descripción

Dataform permite escribir SQL estructurado (SQLX) directamente en la consola de GCP o conectado a un repositorio Git. A diferencia de dbt, que corre en pipelines CI/CD programados, Dataform en Solvento se usa principalmente de forma interactiva y puntual — sin schedules automatizados en el estado actual.

Rol dentro de la arquitectura

Herramienta Uso en Solvento Destino
dbt-etls ETL principal — transformaciones de Syntage hacia adv-analytics solvento-adv-analytics-prod
dbt-analytics ETL de riesgo — construye data products de riesgo solvento-risk-analytics-prod
Dataform Cuadraturas, consistencia ad hoc, exploración, snapshots para BI solvento-data-prod y solvento-adv-analytics-prod

Estado actual en GCP

Al auditar los proyectos GCP se encontraron 38 repositorios Dataform distribuidos en dos proyectos:

Proyecto Repositorios totales Con schedule Conectados a Git
solvento-data-prod 13 0 0
solvento-adv-analytics-prod 25 0 0

Hallazgo principal: ningún repositorio tiene release configs ni workflow configs configurados, lo que significa que no hay ejecuciones automatizadas desde Dataform. Los repositorios de GitLab (dataform_terminal, dataform_metabase_luzmo) no están conectados a la consola de Dataform.


Repositorios en GitLab (con código versionado)

Estos dos proyectos existen en GitLab y contienen el código SQLX con control de versiones, aunque no están vinculados directamente al workspace de Dataform en GCP.

dataform_terminal

  • GitLab: solventomx/data/dataform_terminal
  • Proyecto GCP: solvento-data-prod
  • Dataset destino: solvento-data-prod.dataform
  • Propósito: Transformaciones de datos de Syntage y Carta Porte para preparar tablas de análisis de terminal de carga.
  • Modelos principales:
Modelo Descripción
syntage_cartaporte.sqlx Datos consolidados de Carta Porte desde syntage.cp_body
syntage_mercancias.sqlx Mercancías de la Carta Porte desde syntage.cp_mercancias
syntage_ubicaciones_origen.sqlx Ubicaciones de origen desde syntage.cp_ubicaciones
syntage_ubicaciones_destino.sqlx Ubicaciones de destino desde syntage.cp_ubicaciones

dataform_metabase_luzmo


Repositorios en la consola GCP (ad hoc / sin Git)

Estos repositorios existen directamente en el workspace de Dataform en GCP sin control de versiones. Se clasifican en dos grupos:

Repositorios operativos (solvento-data-prod)

Usados para cuadraturas, consistencia y análisis de calidad de datos. Se ejecutan manualmente cuando se necesita.

Repositorio Propósito
consistencia Verificaciones de consistencia entre fuentes de datos
cuadraturas client terminal Cuadraturas de datos de clientes y terminal
cuadratura invoices_items Cuadratura de items de facturas
deduplication invoice_items Deduplicación de registros en invoices_items
invoices_dbt Transformaciones complementarias de facturas
report_invoices_items_consistency_totalitems_90_days Reporte de consistencia de items — últimos 90 días
xml-data Transformaciones sobre datos XML parseados por bucket-xml-parser-prod
metabase_usage Métricas de uso de Metabase (queries, usuarios activos)
dwh-usage-all Análisis de uso del data warehouse (bytes, costos, frecuencia)
Proveedores de transporte Análisis de proveedores de transporte desde Carta Porte

Repositorios operativos (solvento-adv-analytics-prod)

Repositorio Propósito
items_consistency Consistencia de items en el proyecto depurado
terminal_ag Análisis exploratorio de datos de terminal
terminal_quoting_dataset_v2 Dataset de cotización para la aplicación Terminal v2
model_training Preparación de datos para entrenamiento de modelos ML
Non-anon-enrich Enriquecimiento de datos sin anonimizar (revisar — posible PII, ver BigQuery — PII)

Repositorios de exploración (sin uso en producción)

Repositorios personales o temporales que no deben usarse en pipelines de producción. Candidatos a eliminar:

explore_1 a explore_5, Astrid, CHR_20260302, DataRealese20260324, CH sample 2, ch_sample_terminaldataOAL, Freins State, Freins Municipio, Deliveries BQ, qualitas-insurance-data, qualitas-insurance-data-grouped, QA_SAT_Income, Find Hubspot Contacts, Customers Carta Porte Trucks, cobra 2.0 guide, Whitepaper Model


Flujo de datos

graph TB
    subgraph raw["solvento-data-prod — RAW"]
        syntage_src[syntage<br/>invoices, cp_body, etc.]
        svc_src[svc_master_public<br/>xml_data]
    end

    subgraph dataform_dp["Dataform — solvento-data-prod"]
        df_terminal[dataform_terminal<br/>cartaporte, mercancias, ubicaciones]
        df_cuad[Cuadraturas y Consistencia<br/>ad hoc / manual]
    end

    subgraph dataform_adv["Dataform — solvento-adv-analytics-prod"]
        df_meta[dataform_metabase_luzmo<br/>snapshots saldos / límites / pagos]
        df_items[items_consistency<br/>terminal_ag / quoting]
    end

    subgraph adv["solvento-adv-analytics-prod — DEPURADO"]
        dashboards_ds[dashboards<br/>snapshots BI]
        terminal_ds[terminal / terminal_v3]
    end

    subgraph destinos_raw["solvento-data-prod.dataform"]
        df_out[syntage_cartaporte<br/>mercancias, ubicaciones]
    end

    syntage_src --> df_terminal --> df_out
    svc_src --> df_cuad
    syntage_src --> df_cuad

    adv --> df_meta --> dashboards_ds
    adv --> df_items --> terminal_ds

Dataset dataform_assertions en solvento-data-prod

El dataset dataform_assertions almacena los resultados de los assertions (tests de calidad) ejecutados por Dataform. Cada vez que un workspace ejecuta tests, los resultados se escriben aquí para auditoría y monitoreo de calidad.

Este dataset está documentado en BigQuery — Datasets como parte de los recursos de solvento-data-prod.


Comparación Dataform vs dbt en Solvento

Aspecto dbt (dbt-etls / dbt-analytics) Dataform
Propósito ETL estructurado y repetible Exploración, cuadraturas, snapshots BI
Versionado Git (GitLab) — obligatorio Solo 2 repos en Git; resto sin control
Scheduling CI/CD + Cloud Scheduler Sin schedules activos actualmente
Destino principal adv-analytics-prod, risk-analytics-prod data-prod.dataform, adv-analytics-prod
Tests Integrados en el pipeline dataform_assertions dataset
Quién lo usa Equipo data engineering (pipeline) Equipo data engineering (ad hoc + BI)

Observaciones y plan de mejora

Sin ejecuciones automatizadas

Ninguno de los 38 repositorios en GCP tiene release configs ni workflow configs. Los modelos de dataform_terminal y dataform_metabase_luzmo que necesitan ejecución periódica deben conectarse a Git y configurar un schedule en la consola de Dataform o mediante Cloud Scheduler.

Prioridad Acción Detalle
Alta Conectar dataform_metabase_luzmo a Git y configurar schedule Los snapshots de saldos/límites/pagos para Metabase dependen de ejecución periódica
Alta Conectar dataform_terminal a Git en Dataform Evitar que los modelos SQLX solo existan en GitLab sin conexión al workspace de GCP
Media Eliminar repositorios de exploración obsoletos 15+ repos sin nombre claro ni uso — generan confusión en la consola
Media Añadir descriptions a los repos operativos en GCP Ningún repo tiene descripción en la consola de Dataform
Baja Revisar Non-anon-enrich por posible PII El nombre sugiere datos personales sin anonimizar — revisar contenido y acceso

Referencias