INSERTANDO DATA EN STREAMING A BIGQUERY
Tags: datapathformation, bigquery, dataflow, streaming
Published: 2023-07-19 20:35:49

Queremos acelerar el talento en data y analytics en LATAM. Si te gusta el artículo recuerda que todos los meses tenemos inicios de nuestros programas especializados de Data Engineering, Data Analyst, Cloud y Machine Learning Engineer. Puedes conocer más [aquí](https://wa.me/51946561058?text=Hola,%20vengo%20de%20la%20comunidad%20Dev.to,%20quiero%20conocer%20los%20pr%C3%B3ximos%20inicios).

BigQuery es el almacén de datos en tiempo real a través de streaming. Esto permite capturar y analizar información en tiempo casi real al insertar datos a BigQuery con la API de BigQuery, Cloud Pub/Sub y Cloud Dataflow. En este articulo, exploraremos los tres métodos principales.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mpgvwzd11b939fy20xym.JPG)Enlace imagen 1: https://hazelcast.com/glossary/stream-processing/

**¿Cómo realizar streaming a través de la API de BigQuery?**
La API de BigQuery proporciona una forma directa de insertar datos en tiempo real a través de solicitudes HTTP POST. Puedes enviar datos en formato JSON o CSV directamente a BIgQuery utilizando cualquier lenguaje de programación compatible con solicitudes HTTP, ejemplo practico usando Phyton en la imagen 2, en la que se puede personalizar los campos de datos segun tus necesidades y ajusta el URL de la API con los identificadores correctos de tu
proyecto, conjunto de datos y tablas.

**¿Cómo usar Cloud Pub/Sub?**
Cloud Pub/Sub es un servicio de mensajería escalable y confiable
que te permite enviar y recibir mensajes entre componentes de tu arquitectura. Puedes aprovecharlo para insertar datos en tiempo real en BigQuery.

Los pasos clave para utilizar Pub/ Sub son los siguientes: 

- Crear un tema y la suscripciones correspondientes en Cloud Pub/Sub.

- Generar los datos en tiempo real y envíalos al tema de Pub/Sub.
Configurar un flujo de datos en BigQuery para consumir los mensajes de Pub/Sub y realizar la inserción en las tablas correspondientes.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/drj12f338b3s36thxrd5.JPG)Enlace imagen completa 2: https://github.com/googleapis/python-bigquery

**¿Cómo utilizarlo con Dataflow?**
Cloud Dataflow es un servicio de procesamiento de datos en
tiempo real de Google Cloud y te permite procesar y transformar
los datos antes de cargarlos en BigQuery, brindando mayor
flexibilidad en el flujo de datos en tiempo real.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k0yiyrhqve2c0e3ez6rh.JPG)Enlace imagen completa 3: https://beam.apache.org/documentation/io/built-in/google-bigquery/

A continuación, se muestra un ejemplo de cómo utilizar DataFlow para cargar datos en streaming a BigQuery, referencia en la imagen 3 en Python utilizando la biblioteca 'apache-beam'. para crear flujo de Dataflow.

**1.- Configuración inicial:**
- Crea un proyecto en Google Cloud y habilita los servicios de BigQuery y Dataflow.
- Prepara tus datos de origen, ya sea desde una fuente externa o un flujo de datos interno.
- Define el esquema de datos, incluyendo los tipos de datos y las columnas que deseas almacenar en BigQuery.

**2.- Escribe y ejecuta el código de dataflow:**
- Utiliza un lenguaje compatible con Dataflow, como Java o Phyton para escribir el código que procesara y cargara los datos en BigQuery.
- Define las transformaciones que deseas aplicar a los datos en tiempo real.
- Asegúrate de que los pasos de trasformación y la carga en BigQuery están correctamente implementados en el flujo de Dataflow.
- Ejecuta el código de Dataflow en Google Cloud para iniciar el
procesamiento y la inserción en el tiempo real.

**¿Cuál de los tres métodos es mejor para insertar datos en streaming?**


Cada método, ofrece características y ventajas únicas, y la elección depende de tus necesidades y el contexto de tu proyecto. Ya sea que necesites una integración directa a través de la API, un sistema de mensajería escalable con Pub/Sub o capacidades avanzadas de procesamiento y transformación con Dataflow, BigQuery tiene opciones flexibles para capturar y analizar en tiempo real.

Giomar Antaurco Trejo
Coordinador Académico Datapath

**Conoce nuestros programas**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vooftutqk79kjilj6bq4.png)

✔Descubre cómo acelerar tu talento en Data, Analytics y Cloud: 
 - Tenemos inicios todo los meses, conoce más [aquí](https://datapath.ai).