Logo GCP con Eduardo

GCP con Eduardo

Tu Primer Data Warehouse con Google Antigravity y Medallion en GCP (Sin Escribir SQL)
✦ Guía Técnica & Arquitectura

Construye tu Data Warehouse en GCP con Google Antigravity y Medallion (Sin Tocar SQL)

Descubre cómo la ingeniería de datos moderna delega el código repetitivo en entornos agénticos como Google Antigravity, orquestando infraestructura como código con Terraform, transformaciones gobernadas en Dataform y almacenamiento analítico en BigQuery.

Lo que aprenderás en esta guía

Agentes en GCP: Flujos de trabajo con Google Antigravity para automatizar pipelines.
Arquitectura Medallion: Aislamiento de capas Bronze, Silver y Gold en BigQuery.
Dataform & SQLX: Modelado declarativo con testing y assertions integrados.
Infraestructura IaC: Aprovisionamiento determinista de GCS y BigQuery con Terraform.
Google Cloud Platform (GCP) Google Antigravity BigQuery Dataform (SQLX) Terraform Cloud Storage Python Looker Studio

El Cambio de Paradigma: De Codificador SQL a Diseñador de Arquitecturas

El levantamiento tradicional de un Data Warehouse requiere escribir cientos de líneas de DDL, scripts de ingesta en Python, orquestaciones complejas y consultas SQL manuales propensas a errores tipográficos. Este enfoque artesanal consume semanas en tareas de fontanería tecnológica.

Con herramientas agénticas como Google Antigravity, el trabajo del Ingeniero y Arquitecto de Datos cambia radicalmente: tu responsabilidad deja de ser tipear consultas para convertirse en diseñar la estrategia semántica, supervisar el gobierno del dato y definir los contratos de calidad.

Matriz de Capas: Arquitectura Medallion en BigQuery

Capa Medallion Nivel de Transformación Mecanismo en BigQuery Controles de Calidad Consumidores Finales
Bronze (Raw) Datos crudos sin alterar cargados desde Data Lake (GCS). Tablas externas (GCS CSV/Parquet) o nativas con timestamp de ingesta. Validación de esquemas e integridad de carga origen. Pipelines de ingesta y staging.
Silver (Clean) Tipado estricto, normalización, limpieza y desduplicación. Tablas físicas generadas vía Dataform con índices/claves. Dataform Assertions (Non-null, Unique keys, límites). Data Scientists, ingenieros de ML, analistas avanzados.
Gold (Curated) Agregaciones de negocio, KPIs y métricas multidimensionales. Tablas o vistas materializadas preparadas para reporting. Conciliación financiera y pruebas de consistencia de métricas. Looker Studio, Dashboards ejecutivos y agentes de IA.

⚠ Antipatrón Crítico: Tablas Externas Directas en Producción

Consultar tablas externas en Cloud Storage directamente desde dashboards de visualización (como Looker Studio) genera tiempos de respuesta lentos y costes descontrolados por relectura continua de ficheros no optimizados.

Solución Arquitectónica: Utiliza las tablas externas únicamente en la capa Bronze como punto de entrada. Transfórmalas y materialízalas físicamente en capas Silver y Gold en almacenamiento columnar nativo de BigQuery para aprovechar el motor Dremel, particionado y clustering.

Implementación Técnica: Dataform SQLX y Terraform

A continuación se presenta la estructura declarativa generada para orquestar la transformación de capas Silver y Gold mediante Dataform:

1. Definición de la Capa Silver con Assertions (sales_silver.sqlx)

config {
  type: "table",
  schema: "silver",
  name: "sales_silver",
  description: "Tabla de ventas limpiada, casteada y enriquecida",
  assertions: {
    uniqueKey: ["transaction_id"],
    nonNull: ["transaction_id", "product_id", "sale_date", "total_amount"]
  }
}

SELECT
  SAFE_CAST(transaction_id AS STRING) AS transaction_id,
  SAFE_CAST(sale_date AS DATE) AS sale_date,
  SAFE_CAST(product_id AS STRING) AS product_id,
  SAFE_CAST(quantity AS INT64) AS quantity,
  SAFE_CAST(unit_price AS NUMERIC) AS unit_price,
  SAFE_CAST(quantity AS INT64) * SAFE_CAST(unit_price AS NUMERIC) AS total_amount,
  CURRENT_TIMESTAMP() AS processed_at
FROM
  ${ref("sales_bronze")}
WHERE
  transaction_id IS NOT NULL

2. Definición de la Capa Gold para Consumo en Looker Studio (daily_sales_gold.sqlx)

config {
  type: "table",
  schema: "gold",
  name: "daily_sales_gold",
  description: "Agregación diaria de ventas por categoría y producto para reporting"
}

SELECT
  s.sale_date,
  p.category,
  p.product_name,
  SUM(s.quantity) AS total_units_sold,
  SUM(s.total_amount) AS total_revenue
FROM
  ${ref("sales_silver")} s
LEFT JOIN
  ${ref("products_silver")} p
ON
  s.product_id = p.product_id
GROUP BY
  s.sale_date,
  p.category,
  p.product_name

Framework de Implementación Paso a Paso

Sigue este ciclo de trabajo para desplegar un almacén analítico guiado por agentes:

  1. Contextualización y Prompting en Google Antigravity:

    Abre el workspace, describe los orígenes de datos, los modelos requeridos y solicita el plan de implementación completo con Terraform, Python y Dataform.

  2. Aprovisionamiento de Infraestructura con Terraform:

    Aplica los archivos main.tf y terraform.tfvars para desplegar los buckets de Cloud Storage (landing/raw) y los datasets de BigQuery (bronze, silver, gold).

  3. Ingesta y Carga en el Data Lake (Bronze):

    Ejecuta los scripts de ingesta automatizados para cargar los datos fuente en GCS y enlazar las tablas externas en BigQuery.

  4. Ejecución y Testing del Pipeline con Dataform:

    Compila y ejecuta el flujo mediante dataform run para validar assertions de integridad y generar las tablas limpias y agregadas.

  5. Conexión y Visualización en Looker Studio:

    Apunta la fuente de datos a la tabla daily_sales_gold en BigQuery y construye gráficos de tendencias de facturación y distribución por producto.

Preguntas Frecuentes (FAQ)

¿Qué ventaja tiene Dataform frente a dbt en Google Cloud Platform?

Dataform está completamente integrado de forma nativa e serverless en la consola de GCP y BigQuery Studio, permitiendo control de versiones mediante Git, orquestación de workflows y assertions sin necesidad de infraestructura de cómputo adicional.

¿Es seguro permitir que Google Antigravity u otros agentes de IA creen código Terraform?

Sí, siempre que se mantenga el principio de Human-in-the-loop. El agente genera el plan de ejecución y los archivos de configuración, pero la validación, revisión de seguridad y el comando terraform apply permanecen bajo supervisión del arquitecto de datos.

¿Cómo optimizar los costes de almacenamiento y consulta en este diseño?

En la capa Silver y Gold, aplica particionamiento por fecha (sale_date) y clustering por columnas clave (category o product_id) dentro de las directivas config de Dataform para reducir drásticamente los bytes escaneados por consulta en BigQuery.

AI & Data Architect

Sobre el Autor: Eduardo Martínez Agrelo

Especialista en arquitecturas de datos en Google Cloud Platform, modernización de Data Warehouses, pipelines de streaming y despliegue de sistemas analíticos potenciados por Inteligencia Artificial generativa y agentes autónomos.