Laboratorio 10: Transformación de Datos con dbt (Data Build Tool)

Laboratorio 10: Transformación de Datos con dbt (Data Build Tool)

Objetivos del Laboratorio

  • Implementar metodologías de ingeniería analítica (Analytics Engineering) estructurando pipelines lógicos dentro de BigQuery de forma controlada.
  • Organizar y modelar los datos analíticos dividiendo el flujo en capas de procesamiento: Staging (vistas limpias) y Marts (tablas físicas consolidadas).
  • Garantizar la integridad de la información mediante pruebas automatizadas de esquema y pruebas personalizadas de aserción de reglas de negocio.
  • Establecer accesos de desarrollo seguros utilizando el método de autenticación local con oauth para heredar de forma transparente los permisos de GCP.

Herramientas y APIs Utilizadas

  • dbt-core: Herramienta de código abierto empleada para estructurar, compilar y documentar pipelines lógicos de transformación SQL.
  • dbt-bigquery: Adaptador oficial encargado de traducir las macros lógicas de dbt en ejecuciones y compilaciones físicas dentro de BigQuery.
  • BigQuery API: API de Google Cloud encargada de orquestar la creación de esquemas y procesar las transformaciones en la nube.

Estructura del Código Desarrollado

  • profiles.yml: Archivo de configuración de conexiones de dbt que utiliza autenticación local basada en herencia de token de GCP.
  • dbt_project.yml: Especificaciones globales del proyecto de dbt que asocian el perfil de conexión y los tipos de materialización por capas.
  • models/schema.yml: Archivo de configuración que describe las fuentes de datos crudos (sources), los modelos analíticos y sus respectivas pruebas asociadas.
  • models/staging/stg_raw_orders.sql: Modelo de la capa staging encargado de limpiar campos y reformatear cadenas de texto a tipos físicos de fecha.
  • models/marts/fct_orders_summary.sql: Modelo consolidado de negocio para ofrecer agregaciones históricas por cliente.
  • tests/assert_spent_non_negative.sql: Prueba de aserción personalizada que comprueba que ningún registro completado posea importes negativos.

Paso a Paso del Despliegue

Fase 1: Datos de Entrada y Preparación

  • Despliegue declarativo con Terraform del dataset de datos crudos lab10_raw y su respectiva tabla nativa de órdenes.
  • Carga inicial de registros inconsistentes forzando que las fechas residan en formato de cadena de texto (STRING).

Fase 2: Configuración del Proyecto dbt

  • Instalación aislada de dependencias creando un entorno virtual de Python y ejecutando pip install dbt-bigquery.
  • Estructuración de la conexión remota segura en el archivo profiles.yml estableciendo el parámetro method: oauth.
  • Asociación de los tipos de materialización en el archivo del proyecto (view para la capa de staging y table para la capa marts).

Fase 3: Desarrollo de Capas Lógicas y Pruebas

  • Estructuración del modelo de staging aislando la fuente declarada con la macro {{ source() }} y aplicando el formateo temporal con PARSE_DATE.
  • Estructuración del modelo final de marts agregando la información de negocio y haciendo referencia a la capa limpia mediante la macro {{ ref() }}.
  • Estructuración de pruebas personalizadas en el directorio de pruebas (tests) para identificar registros anómalos de negocio.

Fase 4: Ejecución y Validación Analítica

  • Lanzamiento y compilación del pipeline de transformaciones en la terminal ejecutando el comando dbt run.
  • Validación de la calidad de los datos y de las aserciones de esquema del proyecto ejecutando el comando dbt test.
  • Inspección de las tablas resultantes directamente en el dataset autogenerado de BigQuery lab10_analytics.
Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!