Laboratorio 8: Ingesta en Tiempo Real (Streaming con Pub/Sub)

Laboratorio 8: Ingesta en Tiempo Real (Streaming con Pub/Sub)

Objetivos del Laboratorio

  • Diseñar una canalización de datos en tiempo real sin servidor (serverless) y sin código intermedio para reducir la complejidad operativa.
  • Establecer relaciones de confianza seguras entre servicios de Google Cloud mediante asignación de permisos IAM con Terraform.
  • Configurar una suscripción de escritura directa (BigQuery Write Subscription) para procesar payloads JSON asíncronos de forma paralela.
  • Simular flujos de eventos en vivo y verificar la disponibilidad inmediata de los registros en el almacenamiento analítico.

Herramientas y APIs Utilizadas

  • Pub/Sub API: Servicio global e independiente de mensajería asíncrona estructurado bajo el patrón de publicación y suscripción.
  • BigQuery API: Motor encargado de abrir y mantener el canal de almacenamiento en streaming para persistir las entradas del tópico.
  • gcloud CLI: Utilidad empleada para emular emisores locales enviando y publicando mensajes estructurados en formato JSON.

Estructura del Código Desarrollado

  • main.tf: Declaración de Terraform que asocia metadatos del proyecto, el dataset lab08_dataset, la tabla física destino, las políticas de IAM y la suscripción de Pub/Sub con el bloque bigquery_config.
  • 08_verify_streaming.sql: Consulta SQL estructurada para interrogar el buffer de entrada en tiempo real de la tabla nativa.

Paso a Paso del Despliegue

Fase 1: Diseño de la Tabla Destino

  • Creación del esquema estructurado en la tabla de BigQuery asegurando que las columnas coincidan de manera unívoca con las claves que se enviarán en los payloads JSON.
  • Configuración del tipo de dato TIMESTAMP para registrar adecuadamente la hora física de ocurrencia de los eventos de usuario.

Fase 2: Infraestructura y Permisos IAM

  • Uso del bloque data "google_project" en Terraform para recuperar el identificador numérico de nuestro proyecto en tiempo de ejecución.
  • Asignación de los roles de administrador de datos roles/bigquery.dataEditor y de metadatos roles/bigquery.metadataViewer a la cuenta de servicio del agente interno de Pub/Sub.
  • Declaración de la suscripción google_pubsub_subscription enlazando el bloque bigquery_config directamente hacia la tabla física de BigQuery.
  • Aplicación del despliegue mediante el comando de terminal terraform apply garantizando el orden jerárquico de construcción de permisos y recursos.

Fase 3: Simulación e Ingesta Directa

  • Publicación de un evento de tipo clic emulando la interacción de un usuario mediante el comando de CLI gcloud pubsub topics publish con un payload JSON estructurado.
  • Publicación de un segundo evento de tipo compra bajo el mismo mecanismo de envío directo.
  • Ejecución de la consulta SQL de verificación directamente sobre la tabla nativa comprobando que el buffer de streaming almacena e integra los datos en milisegundos sin requerir pipelines de computación adicionales.
Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!