¿Cúando usar el módulo Dataflow?

Introducción

Este artículo describe cómo el modulo Dataflow de Onesait Platform puede ayudar a resolver varios escenarios típicos de muchos proyectos.

El módulo Dataflow permite definir de forma gráfica y sencilla flujos de datos, transformaciones de datos, etc. En este enlace se puede consultar en detalle las capacidades técnicas del módulo Dataflow, DataFlow .

Este artículo no pretente mostrar ejemplos concretos de los flujos de datos, sino mostrar a más alto nivel las posibilidades que ofrece este módulo.

Procesamiento de datos en streaming

Una de las capacidades más usadas del módulo Dataflow es el procesamiento de datos en streaming. Con Dataflow se pueden definir flujos de datos desde la conexión con el origen de dichos datos hasta los posibles destinos de los mismos. Además, permite implementar las transformaciones de datos necesarias.

Veamos un ejemplo para describir en mayor detalle las distintas etapas y posibilidades. La imagen al final de esta sección muestra un ejemplo en el que hay dos fuentes de datos en streaming distintas. Estas fuentes de datos pueden ser incluso de diferentes tecnologías, por ejemplo, brokers de comunicación tales como Apache Kafka y Google Pub/Sub. También se pueden usar como fuentes de datos orígenes más tradicionales como bases de datos relacionales, bases de datos NoSQL, servidores FTP, etc. La lista de tecnologías soportadas es muy amplia y continúa extendiendose. Se puede consultar en este link: Conectores.

Mediante pipelines definidos en el Dataflow se conecta con las fuentes de datos externas. Una vez de obtienen los datos, los pipelines pueden realizar validaciones, enriquecer los datos con otras fuentes y en general hacer las transformaciones necesarias. Finalmente, los datos se almacenan en uno o varios destinos.

En este caso los conectores del dataflow se encargarán de suscribirse a las fuentes de datos y en cuanto un dato nuevo esté disponible, lo procesarán.

Procesamiento Batch

Otro escenario muy típico en los proyectos son tareas que tienen que realizarse periódicamente sin que ningún usuario tenga que supervisar o activar dichas tareas.

La imagen al final de esta sección muestra un escenario similar al anterior. La diferencia radica en, que en este caso, los conectores no estarán suscritos a las fuentes de datos sino que será un planificador el que lance las tareas de forma programada. Onesait Platform permite esta planificación usando el componente Flowengine (https://onesaitplatform.atlassian.net/wiki/spaces/PT/pages/308445197 ).

En este escenario, el pipeline comenzará cuando el planificador se lo indique. En caso de ser necesario el propio planificador puede pasar parámetros a los pipelines. Una vez se han procesado los datos los pipelines se pararán hasta que el planificador decida lanzar una nueva ejecución.

Replicación de datos entre entornos

Muchos proyectos tienen la necesidad de contar con copias de los datos de producción en entornos de pruebas o preprodución. Con el Dataflow se puede cumplir con esta necesidad. Hay varias formas de hacer esta replicación de datos con el Dataflow.

La imagen de esta sección muestra un escenario en el que el Dataflow de uno de los entornos exporta a otro entorno directamente. Otras posibilidades serían que el Dataflow del destino leyese los datos desde el origen, o incluso se podría contar con un broker o repositorio intermedio. Dependiendo de la conectividad que exista entre los entornos se deberán usar unas variantes u otras. Normalmente las limitaciones de conectividad vienen determinadas por los requisitos de seguridad.

Integración de sistemas

En muchos proyectos la integración entre distintos sistemas se hace a nivel de datos. En estos casos se puede usar el Dataflow para obtener los datos de sistemas externos y tenerlos disponibles en los nuevos desarrollos que se hagan sobre la plataforma. Lo mismo sucede al contrario, hay clientes que cuentan con herramientas u otros sistemas que necesitarán almacenar datos localmente y hay que suministrárselos.

La imagen al final de esta sección muestra un ejemplo en el que se cuenta con dos instancias del módulo Dataflow, una de ellas dedicada a la adquisición de datos desde fuentes externas y otra dedicada a proporcionar datos a sistemas externos. Tener instancias dedicadas de Dataflow facilita la gestión de los pipelines cuando su número empieza a crecer.

Centralización de datos

En muchos casos Onesait Platform se usa para centralizar datos de diversos sistemas. Un claro ejemplo son los proyectos de tipo data lake. En este caso se definirá un pipeline por cada fuente de datos. Gracias a la flexibilidad del Dataflow se podrán contar con multitud de tecnologías como orígen de datos, además de poder añadir nuevos orígenes sin tener que desplegar nuevo software, ya que los pipelines del dataflow se definen de forma dinámica.

Conclusiones

Hemos visto algunos de los casos típicos que pueden implementarse con el Dataflow. Hay muchos más casos que se pueden resolver con el Dataflow, ya que si por algo destaca este módulo, es por su flexibilidad.