BigQuery: Datasets y Tablas con Terraform | Curso Google Cloud Associate Cloud Engineer

Análisis a Escala Petabyte: BigQuery y Estructuras con Terraform

Autor: Eduardo Martínez Agrelo

Tras ver las bases de datos transaccionales (Cloud SQL), entramos en el mundo del análisis masivo. BigQuery es el almacén de datos (Data Warehouse) empresarial de Google Cloud. Es capaz de analizar terabytes en segundos y petabytes en minutos. En el examen Associate Cloud Engineer, se espera que entiendas su jerarquía, cómo gestionar sus permisos y cómo definir sus estructuras básicas. En este ejercicio, automatizamos la creación de un entorno analítico usando Terraform.

¿Por qué BigQuery es diferente? Arquitectura Serverless

A diferencia de cualquier base de datos que hayas usado antes, en BigQuery no hay servidores que gestionar. Ni siquiera eliges el tamaño de la máquina. BigQuery separa totalmente el almacenamiento del cómputo:

  • Almacenamiento (Colossus): Los datos se guardan en un sistema de archivos global de Google de forma columnar (Capacitor). Esto hace que leer una sola columna de mil millones de filas sea extremadamente rápido.
  • Cómputo (Dremel): Cuando lanzas una consulta, BigQuery asigna dinámicamente miles de "slots" (unidades de CPU y RAM) para procesarla y luego los libera.

La Jerarquía de BigQuery

Para organizar tus datos, BigQuery utiliza una estructura de tres niveles que debes conocer para gestionar permisos e infraestructura:

  1. Proyecto (Project): El nivel superior donde reside la facturación.
  2. Dataset (Conjunto de datos): El contenedor lógico de las tablas. Los permisos de acceso y la ubicación geográfica (ej. US o EU) se definen a este nivel.
  3. Tabla / Vista: Donde residen los datos individuales.

Nota de examen: Si creas un Dataset en la región `EU`, no podrás unir (JOIN) sus tablas con las de un Dataset en `US`. Los datos deben estar en la misma ubicación para procesarse juntos.

Gestión de Esquemas: Tipos y Modos

BigQuery es una base de datos de esquema rígido (aunque soporta JSON). Al definir una tabla, debemos especificar:

  • Nombres de columna y Tipos: STRING, INT64, FLOAT64, BOOLEAN, TIMESTAMP, etc.
  • Modos: REQUIRED (no nulo), NULLABLE (puede ser nulo) o REPEATED (para listas o arrays).

Costes en BigQuery: Lo que el ACE debe saber

El modelo de precios de BigQuery es un tema frecuente en la certificación. Pagas por dos conceptos separados:

  • Almacenamiento: Basado en la cantidad de datos guardados (muy barato, similar a Cloud Storage).
  • Análisis (Consultas): Por defecto pagas por cantidad de datos procesados (ej. $5 por TB). Por eso es vital usar SELECT * lo menos posible y preferir seleccionar solo las columnas necesarias.

Implementación con Terraform

En este ejercicio, usamos los recursos google_bigquery_dataset y google_bigquery_table. Veremos cómo inyectar el esquema de la tabla usando formato JSON dentro de nuestra configuración HCL. Esto garantiza que nuestro almacén de datos nazca con la estructura correcta, lista para recibir cargas de datos masivas.

Conclusión: Preparado para el Big Data

Al finalizar este ejercicio, habrás desplegado el esqueleto de un sistema de Business Intelligence. Has aprendido que en BigQuery el foco no es la administración de la infraestructura, sino la organización lógica de los datos y la eficiencia de las consultas.

Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!