TUTORIAL Sofia2-dataflow

En este tutorial se va a explicar cómo crear un flujo de datos en Sofia2-dataflow en el que se representarán los valores resultantes en una gráfica. Para la realización del ejemplo, se va a crear un flujo tenga como ingesta de datos la información suministrada mediante peticiones http y como destino un fichero.

Antes de comenzar, vamos a recordar cómo se accede a la página Sofia2-dataflow, mediante la cual se va a definir el flujo de datos de este tutorial.

menuDataflow1.   Creación Stream de ejemplo

Para poder crear un Stream hay que acceder al apartado Streams en el interior de dataflow y seleccionar  Crear Stream:

menuStreamDataflow

Una vez seleccionado este apartado, aparecerán a la izquierda un conjunto de módulo, divididos en apartados, con los que se pueden utilizar para crear el flujo de datos. Estos apartados que engloban a los módulos son:

  • Source: origen de la ingesta masiva de datos
  • Processor : unidad de procesamiento de datos desde un source
  •  Sink: destino de la información procedente de un Source o de un Processor.
  • Other: Es una sección diferente a las otras. En ella hay definidos unos módulos con los que se puede interceptar la información de otro flujo de datos previamente definido.
  • JobDefinition: Esta sección solo será visible en el caso en que se hayan creado Jobs previamente. Ofrece el enlace entre un Job previamente definido con el resto de módulos disponibles de los Streams. Un ejemplo de utilidad de esta sección es que se quiera ejecutar un Job con una determinada funcionalidad y la información a la salida se quiera guardar tanto en la opción propiamente definida del Job como en otro destino (fichero, Hadoop,…).

A continuación se van a explicar los diferentes métodos de creación de Streams que ofrece la misma pantalla, totalmente equivalentes.

1.1.      Modelo de cajas

Ofrece la posibilidad de configurar, crear y unir los diferentes módulos mediante la manipulación del esquema de cajas en el que cada caja representa un componente distinto.

Al pasar el ratón por cualquier componente, se ofrece una breve definición y los parámetros configurables por el usuario.

Siguiendo con el ejemplo que se ha marcado al principio, hay que crear un Stream cuyo origen de la información sea los datos suministrados por petición http y el destino de la información sea un fichero. Para ello, en primer lugar se busca  dentro de Source un componente que se adecue a estos requerimientos. Si se despliega la pestaña de Source, se puede ver que el componente  que se adapta al ejemplo es el llamado http

Una vez encontrado el módulo deseado, pinchamos sobre él y arrastramos al apartado de la derecha, quedando así:

creacionStreamDataflow

Por tanto, hemos incorporado el componente Time a nuestro esquema de cajas. Ahora hay que buscar el módulo que permite volcar la información suministrada directamente por el Source en un fichero.

Con este objetivo, nos vamos a la sección Sink y buscamos dicho componente. Una vez encontrado, procedemos de la misma forma que al añadir el componente anterior, para incorporarlo a nuestro esquema de cajas.

Ahora necesitamos unir ambos componentes. Para ello, seleccionamos uno y lo arrastramos hacia el otro de manera que haya solapamiento entre las cajas. En este momento se podrá ver que ambas cajas se bordean de azul. Si soltamos en este momento, la cajas quedarán unidas.

creacionStreamDataflow3

creacionStreamDataflow4

Como se puede ver, el flujo de datos es generado por el http y llega hasta el file, que guardará la información en un fichero. Una vez unido el flujo de datos, ahora queda realizar la configuración de cada componente. Para ello, seleccionamos http y se nos desplegará la ventana de configuración:

creacionStreamDataflow5

En este caso, vamos a poner en el campo port  el puerto 9090 y el resto de parámetros los dejamos por defecto.  Análogamente, para el caso del file se han configurado los siguientes parámetros:

creacionStreamDataflow6

Notar que en la ventana que está justo encima del esquema de cajas  están actualizados todos los cambios que realicemos. Por tanto, después de unir los dos componentes y configurar cada uno de ellos nos queda así:

creacionStreamDataflow7

1.1.      Modelo de consola        

Como se acaba de mencionar, la ventana justo encima del modelo de cajas se actualiza con cada cambio que hagamos y además también acepta cambios manuales en la información que contiene, actualizando al instante el modelo de cajas resultantes. Si, por ejemplo, quitamos el carácter “|” ocurriría lo siguiente.

creacionStreamDataflow8

Es decir, nos avisa de que no se ha configurado correctamente el flujo de datos.

1.2.     Dar de alta el Stream

Sea cual sea el método elegido para crear el esquema, una vez corregido el borrado de ejemplo que se ha hecho anteriormente,  seleccionamos Crear Stream, le damos un nombre y decidimos si lo vamos a activar o no.

En nuestro caso, le damos el nombre de TestStream y lo dejamos desactivado de momento. Ahora seleccionamos el apartado de definición y podemos ver nuestro Stream creado:

creacionStreamDataflow10

Tenemos el Stream desactivado y el esquema en color gris. Si ahora le damos a Activar, podremos ver que el esquema se irá poniendo en azul a medida que se va activando en caso de que no haya ningún error. Si hay algún error de configuración, la caja correspondiente se pondrá de color rojo.  En nuestro caso obtenemos la siguiente imagen:

creacionStreamDataflow11

Los iconos verdes debajo de cada componente indican que están operativos, pero no que se esté enviando información a través de ellos. Una prueba sencilla para ver si nuestro Stream está funcionando correctamente es crear una gráfica que represente el flujo de datos, en caso de que lo información que se está enviando sea representable.

2.   Creación gráfica

Para crear una gráfica que represente el flujo de datos del Stream anterior, creamos un Stream cuyo primer componente sea Tap (se puede encontrar en el apartado other) y como sink ponemos, por ejemplo, counter. Es decir, en la línea de comandos encima del esquema de bloques tenemos:

tap:stream:STREAM>gauge

Para referenciar el Stream creado anteriormente llamado TestStream sólo tenemos que cambiar en la línea anterior la palabra STREAM por este nombre. Una vez dado a crear, el nuevo Stream estará disponible.

3.    Comprobación funcionamiento Stream

Tras realizar todos los pasos anteriores, si seleccionamos la pestaña Análisis y dentro de esta, nuestro Stream gráfico (la he llamado simplegauge) se pueden los datos correspondientes al flujo del Stream TestStream, es decir, deberíamos de ver los datos que se están enviando por petición http POST. Por cuestiones de comodidad, se ha escogido el Advanced Rest Client de Google para realizar estas peticiones.

Ahora la gráfica resultante de enviar un 2, un 5 y un 7 por ejemplo es:

creacionStreamDataflow12

Por lo tanto, ha quedado comprobado que el flujo de datos del TestStream funciona correctamente.

Ver tutorial Sofia2Dataflow en youtube

TUTORIAL Sofia2-dataflow

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s