Cloud Dataflow con Características para Streaming

Cloud Dataflow con características para Streaming

En streaming se debe asegurar la escalabilidad, ya que existirá momentos en los cuales llegue mayor cantidad de datos que otros y se deben escribir con velocidad en BIG QUERY (es decir llegue y se escriba). Data Flow presenta gran eficiencia para escribir en Big Query.

Tipos de Colecciones de Datos

Bound — es fijo
Unbound — que puede crecer o reducirse

Características de Dataflow para Streaming

Colección de datos unbound

Pipeline de una sola ida en la cual se arman las branches o ramas las cuales se pueden escribir en Big

Table y otras en Big Query

Se da mientras va llegando la información

Retos para procesar datos en Streaming

Escalabilidad

Tener la habilidad de manejar la escala de datos tal y como llegan con su frecuencia.

Tolerancia en Fallos

Para evitar fallas y que no se caiga el sistema

Modelado

Poder usarlo tanto en streaming como en batch

Timing

Latencia en datos, relacionado con el delay y envió de datos

Nota: Dataflow cumple con estos 4 retos

¿Cómo hacer agregaciones sobre datos en streaming?

Dataflow permite el manejo de datos que llegan a destiempo para esto se debe dividir el escenario
de streaming en ventanas de tiempo. Haciendo un cálculo por partes. Dataflow permite realizar esto
de forma automática. En dataflow al enviar mensaje de pub/sub se tiene la etiqueta de timestamp que se puede usar en las ventanas de tiempo para hacer agregaciones.
El Ptransform se encarga de dar el dts del dato al dts del elemento que toma dataflow

Ventanas de Tiempo que ofrece Dataflow

Ventana Fija

Se define la ventana para cada intervalo de tiempo (minutos, horas, etc)

Ventana de Slides

Sobrepasa las ventanas de tiempo fija, de igual manera tiene un tiempo fijo, pero va a ser generado como una escalera solapándose.

Ventana de Sesiones

Son definidas por un gap mínimo de duración, y el timing es ejecutado por otro elemento en este caso la sesión.

Ejemplo de Ventanas de Tiempo sin Latencia (ideal)

Ventanas de Tiempo con Latencia (Real)

Solución de Dataflow para el problema de latencia

Usando marcas de agua, se encarga de trackear el lagtime para saber cuánto tiempo tardo en llegar el mensaje colocarlo en la ventana de tiempo que le corresponde. El manejo de datos que llegan fuera de tiempo es eficiente en dataflow.
Que pasa si la data llega posterior al cierre de la ventana de tiempo.

Se debe elegir si se descarta el dato y si se va a usar. Para el segundo caso se debe reprogramar la ventana de tiempo.

Apache Beam tiene una ventana de tiempo y trata de determinar cuando ya tiene toda la data que ha llegado, basado en la fuente de conexión de los datos. Pero esta ventana de tiempo default no permite manejar datos que llegan tarde.

Autores: Gabriel Guerra, Paulette Parra, Diego Paz, Pablo Zuñiga

Conoce más:

Registrate en el programa de Data Engineering en GCP.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store