Webinar “Big Data y Analítica en tiempo real en IoT”

webinar

 

El pasado 21 de Junio, nuestra compañera Raquel LópezIoT Expert Manager de Sofia2 IoT Platform, realizó un Webinar titulado “Big Data and real time analytics in the IoT” en el marco del congreso IoT Analytics organizado por  BrightTALK.

 

En el Webinar, al que puedes acceder aquí, Raquel explica porqué el IoT es una excelente oportunidad de negocio y aborda diversos casos de IoT Analytics existentes en los diferentes verticales: Industria, Retail, Sanidad, Energía…

 

También se adentra en las capacidades, el flujo de trabajo y los módulos que componen una plataforma IoT y Big Data como es Sofia2 y profundiza en dos casos de éxito como son Smart Energy y la Trazabilidad en Distribución.

 

energy

 

Puedes encontrar las slides del Webinar aquí

 

 

 

 

 

Webinar “Big Data y Analítica en tiempo real en IoT”

Orquestación de notebooks desde motor de flujos: Procesamiento de imágenes con Sofia2

image1

En la nueva versión de Sofia2 se ha añadido un nuevo nodo al motor de flujos capaz de gestionar ejecuciones sobre notebooks de la plataforma.

Con esta nueva característica, se pueden orquestar procesos basados en notebook e incluso paralelizar los mismos distribuyendo la carga de trabajo. Es posible pasar parámetros dinámicos a estos notebooks, pudiendo incluir información fija o generada por un flujo sobre cualquier lenguaje usado en los notebooks y más adelante iniciar una ejecución con los mismos.

Al igual que los parámetros de entrada, se posibilita la salida de los datos generados por uno o varios párrafos de un notebook, incluyendo información generada por un proceso analítico dentro del flujo y tomar decisiones en base al mismo.

Vamos a ver un tutorial de uso del mismo. Tendremos varios elementos de Sofia2 que nos ayudarán a construir y procesar una imagen que el usuario incluirá a través de una web, los cuales son:

  • Proyecto Web: Donde alojaremos la web donde el usuario subirá su imagen y verá los resultados.
  • Binary Repository: Para almacenar y recuperar las diferentes imágenes generadas
  • SSAP: Que nos servirá para comunicarnos entre los diferentes elementos
  • Motor de Flujos (Nodered + nodo Notebook Launcher)
  • Notebooks Sofia2: Usaremos dentro de los mismos Python junto con la librería PIL para procesar imágenes.
  • Gadgets Sofia2: Tendremos un gadget donde se mostrará el histograma de la imagen subida

Lo primero que haremos, será crear un proyecto en Sofia2 que tendrá un domino del motor de flujos y que también tendrá asociada la web.

image2

En la web asociada al proyecto tendremos una interfaz simple que permitirá subir un imagen al binary repository, realizará un POST sobre una URL que iniciará el flujo de procesamiento (al que le pasará los datos de la imagen ya subida) y que mediante el protocolo SSAP se subscribirá a la ontología donde recibirá los resultados de las imágenes ya procesadas.

image3

La url donde se pueden ver los resultados y el código fuente es la siguiente https://sofia2.com/web/imageprocess/imageFlow.html

A continuación, veremos los notebooks necesarios para el procesamiento, así como la configuración necesaria en el motor de flujos. Los notebooks se han construido de manera que cada uno haga una funcionalidad concreta y aislada.

Conversor de RGB a escala de grises: recibe como parámetro una sessionKey válida y el identificador del binary repository (la referencia de la imagen de entrada). Utilizando lenguaje Python y la librería PIL se obtendrá esa imagen del binary repository se convertirá a escala de grises y se volverá a subir al binary repository.

En este notebook podemos comprobar cómo se pueden recibir parámetros en el mismo. Simplemente usando z.input(“nombreParámetro”) crearemos un párrafo que podrá recibir datos dinámicos de forma externa por un formulario, esto no solo es válido para Python, se puede incluir igualmente en otros lenguajes soportados en los notebook como por ejemplo con el interpreter de Spark(scala).

image4

image5

Teniendo ese notebook creado, dentro del motor de flujos podremos añadirlo con el nodo Notebook Launcher:

image6

Al añadir ese nodo, podremos seleccionar cualquiera de los notebooks del usuario en la configuración:

image7

Posteriormente añadiremos el párrafo de entrada (se nos mostrará la lista de los mismos junto con el título y el texto de los mismos):

image8

Al añadir un párrafo con parámetros de entrada, se nos desplegará el formulario correspondiente para configurar cada entrada dinámicamente.

image9

En cuanto a la salida del párrafo (la cual, en este caso, será el nuevo identificador del binary repository de la imagen procesada) la haremos como salida del último párrafo el cuál imprimirá ese identificador. De manera análoga a los parámetros de entrada seleccionaremos un párrafo de salida. Además, se le podrá añadir un tópico para poder distinguir esta salida de otras en nodos posteriores.

image10

Si tuviéramos varios párrafos de salida, podríamos incluir diferentes salidas distinguidas por tópico.

image11

Al enviarlas, podrá ser por array en el mismo puerto (Split Output desactivado) o por diferentes puertos de salida (Split Output activado):

image12

Filtro Blur sobre imagen RGB: similar al notebook anterior salvo que se hará un filtro blur sobre un imagen.

image13image14

Obtención histograma: en este caso se leerá la imagen y se devolverá en el último párrafo el array del histograma

image15

Agrupación de datos: notebook que unificará los datos de los diferentes notebook de procesamiento para conformar una salida única que se enviará posteriormente a la ontología de salida por SSAP a Sofia2.

image16

En este caso, en la configuración del nodo, al tener varios notebooks de entrada tendremos que tener activado el Workflow Mode. Con esta opción, este nodo, se esperará a todos los notebooks de entrada antes de ejecutarse (cada notebook le enviará un parámetro). A parte, al tener varias entradas y no saber el orden de las mismas, tendremos que diferenciar las entradas del nodo por tópico para direccionarlas correctamente. Este direccionamiento se puede hacer de 3 formas:

  • payload: única entrada y se recoge el parámetro el contenido de “payload”
  • payload[n]: múltiples entradas, se recoge la que llega en posición n
  • payload{“topic”:”t1″}: múltiples entradas, se busca la que “topic” sea igual a “t1”

Para este nodo en concreto tendremos:

image17

Ahora, vamos a ver el flujo de procesamiento completo dentro del motor de flujos:

image1

La primera parte del mismo crea un endpoint REST de tipo POST (este será el disparador de todo el flujo). Dentro de este POST se incluirán por JSON los datos de:

  • SessionKey: sessionKey del usuario contra Sofia2. Se usará en todos los acceso al binary repository o al enviar mensajes SSAP
  • BinaryID: id en el binary repository de la imagen inicial

image18

A parte también se incluirá la sessionKey (común para todos los procesos) en el contexto del flow mediante el nodo function.

image19

Más adelante esta información llega a 3 nodos de tipo Notebook Launcher:

image20

Cada uno de estos notebooks recibirá como parámetro el ID del Binario junto con la sessionKey (desde el contexto del flow).

image21

La salida en el caso concreto del conversor a escala de grises va tanto al notebook de agrupación de datos, como a otro notebook idéntico al de filtrado blur.

image22

Aquí, se puede el porqué de la distinción por funcionalidad completa y aislada de los notebooks pudiendo verlos como “cajas negras” reutilizables que procesa con una entrada y una salida. A parte, el nodo notebook launcher crea una instancia de ejecución nueva para cada notebook, por lo que se puede usar varios nodos iguales en paralelo.

Finalmente, se crea un mensaje SSAP que se envía por POST a la ontología destino.

image23

image24

El resultado de todo este proceso, al subir una imagen de este tipo:

image25

Obtendremos al terminar el procesamiento las diferentes imágenes:

  • Imagen con filtro blur
  • Imagen en escala de grises
  • Imagen en escala de grises más filtro blur
  • Histograma en un gadget

image26

El código de los notebook así como la exportación del flujo de nodered puede descargar en el siguiente enlace del github de Sofia2: https://github.com/Sofia2/Sofia2-ImageProcessing

 

Orquestación de notebooks desde motor de flujos: Procesamiento de imágenes con Sofia2

IoT & BigData Sofia2 Lab Meetup Group Creation

meetup1ingles

 

IoT & BigData Sofia2 Lab is the new group that has been created on Meetup.com platform to announce the capabilities of Minsait IoT and Big Data platform, Sofia2.

 

Meetups are virtual groups of people interested in common themes that meet to discuss and expose about these themes (in our case technological and innovation).

 

 

The group has been created with the intention of holding meetings and events at least once a month

El grupo se ha creado con la intención de realizar reuniones y eventos al menos una vez al mes. It is intended these meetings are not only informative, but also involve attendees in the realization of workshops and practical examples around Sofia2 and IoT and Big Data technologies.

 

With a little more than a month of existence, IoT & BigData Sofia2 Lab, already has almost 300 members (you can access and register to it here), and two Meetups made.

 

7

 

 

In the first one, on March 8th, the platform was presented, IoT opportunities were identified, Sofia2’s proposal in the IoT world and a workshop was developed with Beacon devices and a mobile app Sofia2

 

IMG_0738

 

The second Meetup, called “IoT Workshop. Visual development in Sofia2 with Raspberry, Node-RED and dashboards “, brought together more than 50 people, and it was deepened in a typical flow IoT: A small practical workshop was held, where with a Raspberrys Pi was used Node-RED to capture information from sensors and send it to the platform, where also through the support with Node-RED, a visual flow was defined for its treatment.

 

Next May 4 will be held the third Meetup, “Sofia2 Analytics Workshop: Do you know how many hours you spend in the office?” In which the components will be presented and the analytical capabilities of the platform will be tested according to the following schedule:

 

1. Presentation of the components and analytical capabilities of the platform, brief description of Apache Zeppelin Notebook and its integration with Python, Spark …

2. Data visualization with matplotlib and seaborn. What graphics are supported and when to use them.

3. Demo Analytics “Employee of the Month”. Those wishing to use Python platform and libraries and seaborn libraries, can see the number of hours a day they were in the office last month.

 

If you want to attend this Meetup, click here for free.

 

IoT & BigData Sofia2 Lab Meetup Group Creation

Creación grupo Meetup IoT & BigData Sofia2 Lab

portadaMeetup1

 

IoT & BigData Sofia2 Lab es el nuevo grupo que se ha creado en la plataforma Meetup.com para dar a conocer las capacidades de la plataforma  IoT y Big Data de Minsait, Sofia2.

 

Los Meetups son grupos virtuales de personas interesadas en temáticas comunes que se reúnen para debatir y exponer sobre ellos (en nuestro caso tecnológicas y de innovación).

 

El grupo se ha creado con la intención de realizar reuniones y eventos al menos una vez al mes. Se pretende que estas reuniones no solo tengan carácter divulgativo, sino además involucrar a los asistentes en la realización de talleres y ejemplos prácticos en torno a Sofia2 y las tecnologías IoT y Big Data.

 

Con poco más de un mes de existencia, IoT & BigData Sofia2 Lab, cuenta ya con casi 300 miembros (puedes acceder e inscribirte a él aquí), y dos Meetups realizados.

 

7

 

En el primero de ellos, realizado el 8 de marzo, se presentó la plataforma, se identificaron las oportunidades IoT, la propuesta de Sofia2 en el mundo IoT y se desarrolló un taller con dispositivos Beacon y app móvil Sofia2

 

IMG_0738

 

El segundo Meetup, denominado “Taller IoT. Desarrollo visual en Sofia2 con Raspberry, Node-RED y dashboards”, reunió a más de 50 personas, y en él, se profundizó en un flujo típico IoT: Se realizó un pequeño taller práctico, donde con unas Raspberrys Pi se utilizó Node-RED para capturar información de sensores y enviarla a la plataforma, donde también a través del soporte con  Node-RED se definió un flujo visual para su tratamiento.

 

El próximo 4 de Mayo se celebrará el tercer Meetup, ” Taller Sofia2 Analytics: ¿Sabes cuántas horas te pasas en la oficina?” en el que se presentarán los componentes y se pondrán a prueba las capacidades analíticas de la plataforma siguiendo la siguiente agenda:

 

1. Presentación de los componentes y capacidades analíticas de la plataforma, breve descripción del Notebook Apache Zeppelin y su integración con Python, con Spark…

2. Visualización de datos con matplotlib y seaborn. Que gráficos se soportan y cuando hay que utilizarlos.

3. Demo Analytics empleado del mes. Los asistentes que quieran, utilizando la plataforma y las librerías pandas y seaborn de Python, podrán ver el número de horas al día que estuvieron en la oficina el mes pasado.

 

Si quieres asistir a este Meetup, incríbete gratuitamente aquí

 

Creación grupo Meetup IoT & BigData Sofia2 Lab

Nuevos tutoriales añadidos: Taller IoT y Taller Analytics

Coincidiendo con la Release 3.4 de la plataforma Sofia2 y con el objetivo de simplificar la comprensión de las capacidades de la plataforma, se han añadido nuevos tutoriales  como el Taller IoT y el Taller Analytics, disponibles en formato PDF, formato HTML y formato POST.

 

Seguir leyendo “Nuevos tutoriales añadidos: Taller IoT y Taller Analytics”

Nuevos tutoriales añadidos: Taller IoT y Taller Analytics

Cloudera anuncia la completa disponibilidad de Apache Kudu en su última Release Cloudera Enterprise 5.10

Ya está disponible desde el pasado 31 de Enero de 2017 la última versión de Cloudera Enterprise, Cloudera Enterprise 5.10.

 

Uno de los aspectos más destacados en esta última Release consiste en la inclusión del motor de almacenamiento open source Apache KuduKudu simplifica el camino hacia la analítica en tiempo real, permitiendo a los usuarios actuar con rapidez con los datos y mejorar la toma de decisiones empresariales.

 

apachekudu_logo_0716_345px

 

Tal y como os contamos en el post Soporte Kudu, desde la FEEP IoT & Big Data Platform Sofia2 3.4 se ha incorporado y se puede hacer uso del soporte de Apache Kudu como Base de Datos de Tiempo Real (BDTR). Con el uso de Kudu se diluye la diferencia entre BDTR y BDH, permitiendo el almacenamiento sobre una única capa de almacenamiento y simplificando la arquitectura de aplicaciones mixtas.

 

 

 

Cloudera anuncia la completa disponibilidad de Apache Kudu en su última Release Cloudera Enterprise 5.10

Analytics Workshop Sofia2. Visualization. (Part 4/4)

The goal of this workshop is to create a recommendation system based on user ratings. The workshop is based on one of the exercises proposed at the Spark Summit.

 

We’ll use one of the Movielens datasets that already reside on the platform. We’ll do it in four steps:

 

  • Creating a simple display.

 

In the final step we’re going to create a dashboard on the created ontology.

 

Seguir leyendo “Analytics Workshop Sofia2. Visualization. (Part 4/4)”

Analytics Workshop Sofia2. Visualization. (Part 4/4)