Analizando datos en tiempo real

Power BI posee la capacidad de disponer de una capa de visualización que permite mostrar datos en tiempo real. Para poder llegar a este objetivo disponemos de diferentes aproximaciones con soluciones distintas cada una destinada a un escenario distinto.

La primera duda es cómo almacenar los datos en Power BI. A diferencia del resto de conjuntos de datos, los datos en tiempo real necesitan de un contenedor especial. Este conjunto de datos puede realizarse mediante la API de Power BI, bien mediante un servicio externo denominado PubNub o bien con el resultado de los datos obtenidos por Azure Stream Analytics.

En los casos de PubNub y de Azure Stream Analytics se entiende que el flujo de datos irá desde nuestra aplicación o fuente de datos hacia PubNub o Stream Analytics y Power BI simplemente recogerá estos datos para graficarlos. Mediante la API de Power BI sin embargo podemos crear la tabla de destino y luego cargar los datos por diferentes mecanismos.

La creación de la tabla de destino se puede realizar desde Power BI Service o bien mediante un archivo JSON y enviarla mediante programación a la API.

Creación del conjunto de datos de Streaming

Desde Power BI Service podemos ver un enlace en la parte superior con el nombre «+ Crear» y en el desplegable tras pulsarlo aparecen diferentes opciones, una de ellas denominada «Conjunto de datos de Streamming».

Al seleccionar «Conjunto de datos en Streamming» disponemos de las tres opciones comentadas. En esta ocasión nos centraremos con el método que ofrece la propia API de Power BI.

En este ejemplo configuraremos una tabla denominada «Venta inmediata» con 5 campos: Fecha, Producto, Provincia, Unidades, Venta.

En la imagen de la izquierda puede observarse la creación de la tabla, también aparece de forma automática el JSON de ejemplo que será necesario enviar para subir los datos.

Un aspecto importante a tener en cuenta es que por defecto los datos de Streamming en Power BI se guardan de forma temporal, de manera que en el Dashboard podemos visualizar lo que está ocurriendo en este momento o lo que ha ocurrido en un espacio de tiempo, luego los datos históricos se perderán.

Pero podemos activar la casilla «Análisis del historial de datos» con el fin de guardar el histórico de datos insertados y poder hacer informes con ellos.

Una vez completados los campos necesarios, pulsamos sobre el botón «Crear» y nos aparece una confirmación como la de la imagen siguiente:

 

La imagen nos muestra el lugar donde deberemos realizar las inserciones (URL de inserción) y una muestra de tres formas de formatear los datos a insertar, dependiendo del método utilizado para hacerlo: Raw, cUTL, PowerShell.

Inserción de datos

La inserción de los datos dependerá del origen y su localización. Podemos insertar los datos en una base de datos de nuestro servidor y utilizar diferentes herramientas para enviar los datos a Power BI a posteriori o en paralelo. Estas herramientas serán más o menos convenientes dependiendo del volumen de datos a enviar o de si precisa de un proceso intermedio.

Por ejemplo, podemos querer enviar los datos cada minuto de centenares o miles de sensores repartidos por una ciudad que midan diferentes aspectos (tráfico, nivel de luz, lluvia, contaminación, etc.) sin mayor proceso, también podemos imaginar que una banco o una compañía de tarjetas de crédito quiera disponer de las transacciones que se realizan en cada instante y además procesarlas mediante algoritmos para detectar posibles fraudes y ver si hay patrones en los casos de fraude previsto. También, como en el ejemplo que nos ocupara, es posible que simplemente queramos enviar datos simples de nuestras ventas en cuanto se produzcan o bien controlar varias líneas de producción y conocer el número de piezas que se están fabricando conociendo las descartadas por el control de calidad y detectando si el ritmo es el adecuado o si alguno de los sensores que contiene el proceso de fabricación emite alguna señal negativa.

Sea con software instalado en nuestros servidores o bien mediante servicios contratados en algún proveedor externo tales como los que proveen Amazon (AWS), Google o Microsoft (Azure) necesitaremos algún mecanismo que envíe los datos a Power BI.

Microsoft ofrece el servicio Microsoft Flow, que permite conducir los datos por diferentes servicios estableciendo flujos y condiciones entre ellos sin necesidad de escribir código hasta enviarlos a Power BI.

En el ejemplo que nos ocupa, con el fin de demostrar una funcionalidad básica hemos utilizado un programa muy simple que genera pedidos de venta al azar y los envía a Power BI mediante su API. El programa utiliza la URL -URL de inserción- que hemos obtenido al crear el conjunto datos en la que realizamos llamadas HTTP mediante POST con un JSON que contiene los datos a insertar como el siguiente

En este enlace disponéis de la parte de la documentación donde se muestra la funcionalidad de subir datos y donde además hay un ejemplo.

Visualización de datos

En esta ocasión tendremos los datos en tiempo real pero también el histórico de datos que hayamos insertado. Los mecanismos para insertar en un dashboard un visual con información en tiempo real o el histórico son distintos. Primero crearemos un informe con unos visuales que recojan la información histórica y luego crearemos un dashboard donde los incluiremos. Por último, dentro del dashboard, crearemos un par de visuales para ver los datos concretos que están entrando en cada momento.

Con el fin de poder crear el informe con mayor certeza, primero insertamos unos cuantos datos, creamos el informe, colocamos los visuales en un nuevo dashboard y luego creamos un par de visuales en tiempo real dentro del dashboard. Aunque sin audio, así se muestra en el siguiente vídeo.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *