Quiz Final: Evaluación del Proyecto Integrador

Quiz
15 min~4 min lectura

Quiz Interactivo

Pon a prueba tus conocimientos

Concepto clave

El proyecto integrador en dbt Cloud representa la culminación de tu aprendizaje, donde aplicas todos los conceptos de modelado de datos en un escenario real. Imagina que eres un arquitecto que ha diseñado planos detallados (modelos dbt), especificado materiales de calidad (tests) y creado manuales de uso (documentación). Ahora debes construir la casa completa y certificar que cumple con todos los estándares.

Este proyecto simula un pipeline de datos analytics típico en empresas medianas: extraes datos de múltiples fuentes, los transformas en insights accionables y garantizas su calidad. La evaluación final no solo verifica si el código funciona, sino si has implementado buenas prácticas que harán tu pipeline mantenible y confiable a largo plazo.

Cómo funciona en la práctica

Vamos a evaluar un proyecto completo paso a paso. Primero, revisa la estructura de carpetas:

models/
  staging/           # Modelos de staging (limpieza inicial)
    sources.yml      # Definición de fuentes
    stg_orders.sql
    stg_customers.sql
  marts/             # Modelos finales para analytics
    core/
      dim_customers.sql
      fct_orders.sql
    marketing/
      customer_segments.sql
tests/               # Tests personalizados
  assert_positive_revenue.sql
dbt_project.yml      # Configuración del proyecto
docs/                # Documentación adicional
  business_glossary.md

Luego, ejecuta el pipeline completo: dbt run para construir todos los modelos, seguido de dbt test para validar la calidad. Finalmente, genera documentación con dbt docs generate y revísala en la interfaz web. Cada fallo en tests o inconsistencia en documentación resta puntos en la evaluación.

Código en acción

Antes: Un modelo sin tests ni documentación.

-- models/marts/core/fct_orders.sql
SELECT
    order_id,
    customer_id,
    amount,
    order_date
FROM {{ ref('stg_orders') }}

Después: El mismo modelo con buenas prácticas implementadas.

-- models/marts/core/fct_orders.sql
{{ config(
    materialized='table',
    docs={'node_color': 'green'}
) }}

/*
Tabla de hechos de pedidos.
Métrica clave: amount (monto total del pedido en USD).
Relaciones: dim_customers (customer_id), dim_dates (order_date).
*/

SELECT
    order_id,
    customer_id,
    amount,
    order_date
FROM {{ ref('stg_orders') }}
WHERE amount IS NOT NULL  -- Filtro de calidad básico
# tests/fct_orders.yml
version: 2

models:
  - name: fct_orders
    columns:
      - name: order_id
        tests:
          - unique
          - not_null
      - name: amount
        tests:
          - not_null
          - accepted_values:
              values: ['>0']  # Test personalizado para montos positivos

Errores comunes

  • Olvidar definir sources.yml: Sin esta definición, dbt no puede rastrear el linaje de datos correctamente. Siempre declara tus fuentes en archivos YAML.
  • Tests solo en modelos finales: Los datos corruptos en staging propagan errores. Aplica tests desde el principio, especialmente not_null y unique en keys.
  • Documentación inconsistente: Describir columnas de forma diferente en código y en docs genera confusión. Usa un glosario de negocio unificado.
  • Materializaciones incorrectas: Usar table para datos volátiles o view para tablas grandes impacta el performance. Evalúa cada caso.
  • Ignorar el dbt_project.yml: No configurar modelos por carpeta o tests globales lleva a configuraciones desorganizadas.

Checklist de dominio

  1. Todos los modelos tienen al menos un test básico (not_null o unique).
  2. Las fuentes están declaradas en YAML con frescura configurada.
  3. La documentación incluye descripciones para modelos y columnas clave.
  4. El linaje de datos es claro: staging → marts sin dependencias circulares.
  5. Los tests personalizados cubren reglas de negocio críticas.
  6. El proyecto se ejecuta completamente sin errores en dbt Cloud.
  7. Los nombres de modelos y columnas siguen convenciones consistentes.

Audita y mejora un proyecto dbt existente

Descarga este proyecto dbt con problemas comunes: enlace simulado. Tu tarea es identificar fallos y mejorarlo.

  1. Ejecuta dbt run y dbt test. Anota todos los errores y warnings.
  2. Revisa la estructura de carpetas. ¿Falta algún archivo de configuración clave?
  3. Inspecciona 3 modelos aleatorios. ¿Tienen documentación y tests adecuados?
  4. Corrige al menos 5 problemas identificados: agrega tests faltantes, documentación o configuración.
  5. Vuelve a ejecutar el proyecto. Verifica que todos los tests pasen y la documentación sea clara.

Entrega un informe breve con: problemas encontrados, cambios realizados y lecciones aprendidas.

Pistas
  • Usa dbt compile para ver el código SQL generado sin ejecutarlo.
  • Revisa el archivo dbt_project.yml primero; ahi suelen estar configuraciones globales.
  • Los tests de accepted_values son útiles para validar dominios de datos como status en pedidos.

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.