Un pipeline representa un proceso estructurado en una secuencia de rutas y pasos, donde cada paso transforma, procesa o transfiere datos de forma sistemática. Este flujo inicia desde un input inicial y concluye con un output final, garantizando un procesamiento integral de los datos end-to-end.
En la plataforma Vor-Tex, los pipelines se diseñan y configuran dentro del Workspace, para orquestar distintos orígenes de datos, donde cada paso se conecta a una vista de datos para realizar operaciones de lectura o escritura.
Para implementar un pipeline en Vor-Tex, es fundamental comprender y aplicar los siguientes conceptos técnicos:
En este documento se abordarán todos los aspectos relacionados a la creación y configuración de un pipeline en Vor-Tex, dando cuenta de sus funcionalidades, versatilidad y posibilidades de uso.
Si se ingresa a la opción Nuevo pipeline, podrá comenzarse a modelar el pipeline agregando distintas configuraciones. A continuación se presenta la pantalla con sus principales botones.
De esta pantalla se debe tener en cuenta lo siguiente:
Un pipeline solo puede tener un inicio, del cual luego se pueden desprender diferentes rutas que pueden contener uno o más pasos.
Cuando existe una bifurcación que se da desde el inicio del pipeline, una de las rutas será la ruta principal y las otras serán rutas que se utilizarán ante condiciones definidas en el pipeline.
Además del inicio, estas bifurcaciones pueden ocurrir en cualquiera de los pasos del pipeline y el flujo de los datos dependerá de la configuración de variables condicionales en el inicio o en los pasos precedentes a la bifurcación.
Estas configuraciones tendrán impacto en el pipeline a nivel global, esto es en la inicialización del pipeline, sus rutas y pasos.
Para poder llevar adelante estas configuraciones, en ícono de “Inicio” se debe hacer clic en la opción Expandir la cual se reconoce por un cuadrado marcado únicamente en sus esquinas:
Las variables globales del pipeline estarán disponibles para ser utilizadas en cualquier paso del pipeline. Pueden hacer referencia a los valores de los parámetros o a valores fijos, pudiendo aplicar transformaciones y condiciones mediante scripting jinja.
Esta configuración requiere ingresar:
Es posible agregar parámetros del pipeline que se utilizarán en su inicialización.
Los parámetros estarán disponibles al ejecutar el método relacionado al pipeline y podrán relacionarse con variables de contexto. También los parámetros estarán disponibles para ser utilizados en la selección de rutas y en los pasos del pipeline, y enviar así sus valores a los parámetros de las vistas de datos de cada paso, con o sin transformaciones de sus valores.
Tener en cuenta:
En caso de existir más de una ruta, es posible seleccionar la ruta de inicio por defecto o establecer una condición en base a un template jinja.
Esto permite seleccionar la ruta de ejecución según los parámetros de entrada del pipeline. En la selección de las rutas están disponibles los parámetros y variables definidas en el inicio.
El resultado del template jinja debe ser el nombre de la ruta.
Los pasos del pipeline ejecutan vistas de datos y procesan sus respuestas. Al agregar un paso debe seleccionarse una vista de datos desde el listado.
Los pasos tienen tres etapas:
Luego de agregar paso y unirlo al inicio, o al paso que lo antecede, se debe hacer clic en “Configurar” dentro del paso:
Tras ingresar a las configuraciones del Paso, lo primero que se debe hacer es seleccionar la vista a la cual estará conectado.
Seleccionada la vista, podrá verse su nombre al interior del Paso en la graficación del pipeline. Para seguir configurando el Paso, se debe hacer clic en el ícono de expandir:
Tras hacer clic en el botón de expandir se pueden realizar configuraciones sobre la vista de datos relacionada al paso, y definir sus etapas:
La ejecución consiste en definir el modo de ejecución, los valores de los parámetros y la descripción del paso.
La etapa de finalizar consiste en el procesamiento del resultado de la ejecución de la vista de datos, esto es, cómo se utilizará la respuesta entregada por la vista de datos.
De modo general, el procesamiento incluye:
Es posible definir el tratamiento del resultado exitoso de la vista de datos.
El resultado entregado puede tratarse de diferentes formas, que permiten abrir o no ramas de ejecución bajo diferentes criterios. Las ramas o branches permiten abrir hilos de ejecución para procesar el resultado de la vista de datos, y eventualmente, continuar hacia el paso siguiente con esos hilos o ramas abiertas (ver Reducir más adelante).
A modo de resumen, al procesar el resultado de la vista de datos pueden generarse ramas de ejecución que permitirán generar variables para cada una de ellas y poder definir si se continúa al siguiente paso con esas ramas abiertas.
Cuando se definen las opciones de apertura de ramas (2 y 3 en el listado anterior) es posible definir un tiempo de espera (delay) en la apertura de cada rama. El valor se define en segundos, pudiendo utilizar punto como separador decimal para indicar milisegundos. Por ejemplo 0.5 son 500 milisegundos.
Esta opción permite reintentar, es decir, volver a ejecutar el paso, ante ciertas condiciones establecidas. Por ejemplo, si el paso responde de forma exitosa, pero su contenido indica que debe reintentarse la solicitud puede utilizarse esta opción.
Un caso de uso frecuente es cuando en pasos anteriores se ejecutaron solicitudes a orígenes de datos asincrónicos y en este paso se consulta el estado de la tarea ejecutada previamente. En un caso así, el origen de datos puede responder con un mensaje exitoso pero su contenido indica que la tarea no fue finalizada. De esta forma, es posible reintentar para obtener el estado de la tarea cuando haya finalizado.
Al habilitar la opción es posible:
En caso que se hayan abierto ramas de ejecución, es posible definir un agrupamiento o reducción a una sola rama en un paso posterior (join in the future). Esto es útil si se desean ejecutar varios pasos con apertura de ramas, pero es necesario generar una reducción a una rama más adelante.
En el procesamiento del resultado de la vista de datos es posible:
Lo más común en este caso es seleccionar la primera opción.
Los ciclos de ejecución permiten generar nuevos grupos (ciclos) dentro de grupos (ramas).
Los ciclos pueden abrirse en base a:
Es posible además ejecutar un script jinja para determinar cuántos ciclos abrir.
Por ejemplo, imaginemos un caso donde tenemos un listado de usuarios donde se indica a qué cuenta pertenece cada usuario. Sobre ese listado, en un paso posterior debemos realizar una ejecución por cada usuario y en otro paso una ejecución por cada cuenta, la cual puede incluir uno o más usuarios.
Si seleccionamos la opción Abrir ramas de ejecución según criterios de agrupación y utilizamos como criterio la columna que contiene el identificador de cuenta, luego podremos abrir ciclos de ejecución en base a cada fila dentro del grupo. En este caso, el grupo está formado por los usuarios (cada fila) de cada cuenta (conjunto de filas).
Si el origen de datos tiene paginado puede utilizarse esta opción para recorrer todas las páginas.
Por ejemplo, si el origen de datos a ejecutar tiene 100 items, pero solo entrega 20 items por página, es necesario consultar el origen de datos 5 veces para obtener todos los items.
Mediante esta opción se pueden recorrer todas las páginas para obtener todos los resultados.
Puede definirse:
Las variables a inicializar en cada rama son una de las secciones más relevantes al momento de definir las configuraciones del paso.
Esto permite obtener valores de la vista de datos para generar variables que estén disponibles en pasos posteriores.
Es posible generar de forma automática las variables con un solo clic en el botón Generar variables. Esto agregará variables por cada una de las columnas de la vista de datos.
Es posible también agregar variables de forma manual, mediante scripting jinja u obteniendo otros valores.
La generación de variables permite utilizar todas las capacidades de jinja templates.
En la etapa de reducción del paso se define cómo se debe continuar hacia el paso siguiente o si deben hacerse un cambio de ruta.
La gestión de errores permite definir qué acciones tomar ante un error en la vista de datos o en el origen de datos.
Es posible:
Si se define gestionar los errores, es posible seleccionar:
En caso de reintentos, es posible definir:
En caso que se hayan definido apertura de ramas en la finalización del paso, es posible mediante esta opción definir cómo continuar al siguiente paso.
Las opciones disponibles permiten:
En la etapa de reducción del paso es posible definir nuevas variables de salida.
En la reducción del paso es posible definir si continuar con la misma ruta hacia el siguiente paso, o cambiar de ruta.
El cambio de ruta puede establecerse mediante scripting jinja, donde el resultado del script debe ser el nombre de ruta que debe tomarse ante las condiciones definidas.
En la creación o edición de un pipeline, es posible entrar en modo debug o depuración para probar su ejecución.
Primero, deberá hacer clic en Guardar Borrador para activar el botón Depurar.
Una vez guardado en borrador el pipeline, se habilita el botón Depurar. Haga clic sobre ese botón para depurar el pipeline y espere a que se entreguen los resultados.
Se mostrará una pantalla como la siguiente, donde podrá:
Puede utilizar el recuadro del panel inferior para mostrar el contenido en pantalla completa.