Laboratorio 3: Tablas Externas y Federación de Datos

Laboratorio 3: Tablas Externas y Federación de Datos

Objetivos del Laboratorio

  • Comprender la diferencia arquitectónica entre tablas nativas (almacenamiento en Colossus) y tablas externas.
  • Configurar la federación de consultas para interrogar archivos planos directamente desde el almacenamiento de objetos.
  • Optimizar costes de almacenamiento físico evitando procesos redundantes de extracción, transformación y carga (ETL).
  • Aprender a definir esquemas dinámicos basados en patrones comodín para la asimilación continua de nuevos archivos.

Herramientas y APIs Utilizadas

  • Terraform (>= 1.0.0): Utilizado para declarar la tabla externa de BigQuery y el bucket de origen de manera unificada.
  • gcloud storage: CLI utilizado para simular la llegada de nuevos registros subiendo archivos de logs al bucket.
  • BigQuery API: Motor encargado de mapear la metadata de los archivos planos y resolver las consultas en paralelo.

Estructura del Código Desarrollado

  • web_logs.csv: Archivo de registro inicial de actividad de red con marcas de tiempo y volumen de bytes enviados.
  • main.tf: Declaración de Terraform que asocia el dataset, el bucket de almacenamiento y la tabla lógica externa.
  • 03_query_external_table.sql: Consulta de análisis analítico que consolida estadísticas de red a través de la tabla externa.

Paso a Paso del Despliegue

Fase 1: Preparación del Conjunto de Datos

  • Creación de los datos iniciales de tráfico del servidor conteniendo direcciones IP, marcas de tiempo y códigos de respuesta HTTP.

Fase 2: Infraestructura Declarativa en Terraform

  • Declaración del recurso google_bigquery_table asociando la directiva de configuración external_data_configuration.
  • Establecimiento de las variables autodetect = true y source_format = "CSV" para deducir el esquema al vuelo.
  • Configuración del parámetro source_uris apuntando al bucket mediante un patrón de comodín: raw/logs/*.csv.
  • Aplicación del despliegue mediante terraform apply. Se constata que la tabla se crea en BigQuery aun con el bucket vacío.

Fase 3: Transferencia de Archivos y Consultas Dinámicas

  • Envío del primer archivo CSV de logs hacia el bucket remitiéndolo con el comando gcloud storage cp.
  • Ejecución de la consulta SQL agregada validando que BigQuery lee los datos directamente de Cloud Storage.
  • Simulación de ingesta en vivo subiendo un segundo archivo CSV a la misma ruta.
  • Verificación inmediata de la agregación de nuevos registros en la consulta SQL sin necesidad de alterar la definición de la tabla.
Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!