Laboratorio 2: Ingesta de Datos en Batch (GCS a BigQuery)

Laboratorio 2: Ingesta de Datos en Batch (GCS a BigQuery)

Objetivos del Laboratorio

  • Establecer una arquitectura de lago de datos centralizado (landing zone) en Google Cloud Storage.
  • Aprender a formatear correctamente archivos estructurados en formato CSV y JSON delimitado por líneas (NDJSON).
  • Garantizar la calidad e integridad del almacén analítico mediante la definición estricta de esquemas físicos en formato JSON.
  • Automatizar la ingesta por lotes (batch ingestion) a tablas nativas de BigQuery utilizando herramientas de línea de comandos.

Herramientas y APIs Utilizadas

  • gcloud storage: Utilidad moderna de línea de comandos para la administración y transferencia de objetos en GCS.
  • bq CLI: Cliente oficial para el envío de trabajos de carga (load jobs), consultas y manipulación de metadatos de BigQuery.
  • Cloud Storage API: Interfaz de programación que habilita el almacenamiento de objetos de gran volumen en GCP.
  • BigQuery API: Servicio que administra y procesa las tareas de ingesta física de datos.

Estructura del Código Desarrollado

  • ecommerce_users.csv: Datos planos estructurados con delimitadores por comas que contienen la cabecera e información de clientes.
  • products.json: Archivo en formato NDJSON que simula un catálogo de productos con un objeto plano estructurado por línea física.
  • ecommerce_users_schema.json: Esquema explícito que asocia nombres de columnas, tipos físicos y mandatoriedad (modo) para la tabla de usuarios.
  • main.tf: Declaración de Terraform que despliega el dataset lab02_dataset y el bucket de almacenamiento seguro.
  • 02_verify_batch_data.sql: Consulta de validación para certificar la consistencia del tipo de datos posterior a la carga física.

Paso a Paso del Despliegue

Fase 1: Preparación de Datos y Esquemas

  • Creación de los datos planos de usuarios y estructuración del archivo de productos respetando el diseño obligatorio de una sola línea de texto por registro JSON.
  • Estructuración manual del esquema JSON de clientes declarando tipos estrictos como INTEGER y DATE para prevenir fallos silenciosos.

Fase 2: Infraestructura con Terraform

  • Declaración del recurso google_storage_bucket con la opción force_destroy activada para permitir limpiezas en entornos de prueba.
  • Definición de un bloque lifecycle_rule de borrado automático tras un día para controlar y evitar acumulación de costes residuales en almacenamiento.
  • Inicialización, planificación y despliegue físico del bucket de almacenamiento y del dataset mediante terraform apply.

Fase 3: Transferencia e Ingesta Física

  • Copia y transferencia de los datos locales a la ruta remota del bucket utilizando la instrucción gcloud storage cp.
  • Lanzamiento del comando de ingesta de usuarios mapeando el esquema estructurado y omitiendo la cabecera mediante --skip_leading_rows=1.
  • Lanzamiento del comando de ingesta de productos activando la inferencia de tipos con la directiva de seguridad de tipos --autodetect.
  • Ejecución e inspección de los metadatos y de los datos importados mediante consultas de verificación agregadas en BigQuery.
Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!