Laboratorio 4: Optimización: Particionado y Clustering

Laboratorio 4: Optimización: Particionado y Clustering

Objetivos del Laboratorio

  • Comprender los mecanismos de división física de datos mediante el particionado por tiempo en BigQuery.
  • Implementar técnicas de ordenamiento interno con clustering para acelerar filtros sobre atributos de alta cardinalidad.
  • Reducir el volumen de bytes escaneados en las consultas aplicando descarte de particiones (partition pruning).
  • Desplegar de forma declarativa y estructurada tablas optimizadas para el control de costes en entornos analíticos.

Herramientas y APIs Utilizadas

  • Terraform (>= 1.0.0): Utilizado para declarar el dataset y la estructura optimizada de la tabla nativa.
  • bq CLI: Cliente de línea de comandos empleado para el envío de trabajos de carga (load jobs) a BigQuery.
  • BigQuery API: Servicio encargado de estructurar y distribuir el almacenamiento físico en Colossus aplicando particionado y clustering.

Estructura del Código Desarrollado

  • transactions.csv: Archivo plano conteniendo información transaccional repartida en múltiples fechas y tiendas.
  • main.tf: Declaración de Terraform con la definición estricta del esquema, del bloque de particionado diario y del agrupamiento por clustering.
  • 04_query_optimization.sql: Consulta analítica que filtra por fecha y por identificador de tienda para validar la reducción de escaneo de datos.

Paso a Paso del Despliegue

Fase 1: Preparación del Conjunto de Datos

  • Creación de los datos históricos de transacciones distribuidos en varios días de marzo de 2026 y asociados a diversos identificadores de tienda.

Fase 2: Infraestructura Optimizada con Terraform

  • Declaración del recurso google_bigquery_table con un esquema explícito de tipos físicos definidos en formato JSON.
  • Configuración del bloque de particionado diario time_partitioning basado en el campo transaction_date de tipo fecha.
  • Configuración de la directiva de clustering para ordenar los registros de cada día por el campo store_id.
  • Aplicación del despliegue de infraestructura analítica mediante el comando de terminal terraform apply.

Fase 3: Carga de Datos y Consulta de Rendimiento

  • Carga del archivo CSV local a la tabla pre-esquematizada en BigQuery utilizando la herramienta de comandos bq load.
  • Ejecución de la consulta SQL aplicando filtros en el WHERE sobre las claves físicas de partición y de clustering.
  • Verificación del descarte de datos redundantes (partition pruning) comprobando la estimación y el total de bytes procesados por el motor de BigQuery.
Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!