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