Introducción a Timeline Storyteller

Introducción a Timeline Storyteller

Cuando tratamos de transmitir información ya sea en una charla, reunión o ya en ámbitos de la vida personal, el modo en el que transmitimos la información es esencial para que los oyentes muestren interés y entiendan la finalidad de lo que estamos contando.

Nuestro cerebro está diseñado para comprender narrativas, estructuras con una introducción, desarrollo y desenlace.

(más…)

Escenarios real time con Power BI y Flow

Escenarios real time con Power BI y Flow

En mi anterior entrada del blog os conté como afrontar escenarios Near Real-Time. En esta entrada vamos a contaros acerca de los escenarios Real-Time (RT) donde, a diferencia de los primeros, la latencia desde que ocurre un determinado evento hasta que se convierte en información, debe ser lo más cercana a cero segundos.

Problema a resolver:

Tenemos un negocio de ventas on-line por Internet y necesitamos monitorizar en tiempo real el estado de los stocks de los productos que vendemos. Esto es crítico ya que una rotura del stock de un artículo provocará la pérdida de ventas y además, el cliente se lo comprará a nuestra competencia. Adicionalmente necesitamos que cuando un artículo se quede sin stock, se avise automáticamente al departamento responsable de su gestión.

Diseño de la solución:

Vamos a solucionar nuestro problema con ayuda de la funcionalidad Real-time streaming del servicio de Power BI y de Flow para ejecutar workflows:

La parte de generación de datos en tiempo real, la hemos simulado haciendo uso de un script Javascript que genera datos aleatorios. A continuación, vamos a hacer uso de Power BI REST API para conectar estos datos a un Streaming dataset del servicio de Power BI. Finalmente generaremos un data alert cuando un producto se quede sin stock y con Flow se generará y enviará un mail automáticamente alertando de la situación.

Implementación de la solución

En este apartado os vamos a explicar paso a paso cómo implementar la solución que serían estos:

  1. Crear el script que genere datos ficticios de compras: fecha y hora del evento, producto y stock disponible tras la compra.
  2. Crear el Streaming dataset en Power BI y conectarle los datos que se generan en el paso anterior.
  3. Diseñar un dashboard para monitorización en tiempo real.
  4. Data Alert para cuando el stock sea cero.
  5. Creación del workflow con Flow para que envíe el email.

1) Generación de datos

Para simplificar este paso, hemos simulado el streaming de datos con una función javascript que genera datos aleatorios cada 2 segundos y, a posteriori, los envía encapsulados en un objeto JSON por AJAX a la URL que nos asigne Power BI en el siguiente punto. No vamos a entrar en detalle en este punto, simplemente adjuntamos el código comentado para que lo podáis ver y probar.

2) Crear el Streaming dataset

Vamos a crear el streaming dataset con el mismo formato y las variables con el mismo nombre que va a recibir Power BI desde el script que hemos creado en el paso anterior.

Elegimos la API para enviarle los datos en streaming a Power BI:

Y definimos el formato del dataset. En este paso es necesario marcar la opción de “Historic data analysis” ya que lo vamos a necesitar después. Cuando marcamos esta opción Power BI almacena en una base de datos interna los datos que recibe en streaming para poder posteriormente elaborar reports y hacer uso de Data Alerts. La url que nos proporciona Power BI, la pegaremos en nuestro script del paso 1 para poder enviarle los datos que generamos en streaming:

 

3) Generar el Real-Time Dashboard

En este apartado vamos a generar un Dashboard para ver de un modo visual como van variando los stocks de los productos. Creamos uno nuevo, añadimos un tile y seleccionamos como origen REAL-TIME DATA:

Elegimos en el siguiente paso el streaming dataset que hemos creado anteriormente:

Y por último elegimos el tipo de gráfico y las variables que queremos visualizar. No hay demasiados tipos de visualización pero resultan más que suficientes para analizar los datos. En la siguiente imagen tenéis un ejemplo con los diferentes tipos. Al acceder al dashboard podremos ver como los gráficos van cambiando en tiempo real:

4) Data Alert cuando el stock sea 0

El dashboard visualmente es muy atractivo sin embargo le falta lo más importante, que es desencadenar automáticamente una acción cuando el stock de un producto llegue a cero. Para conseguirlo vamos a hacer uso de la funcionalidad data alerts la cual exige que tengamos una licencia Pro. Otra limitación importante a tener en cuenta es que sólo podemos crear data alerts desde un dashboard que contenga KPI, cards o gauges procedentes de un report. Es justo aquí donde si no hemos activado la opción Historic data analysis del punto 2, no podremos crear data alerts.

Vamos a crear el report desde nuestro streaming dataset:

Hemos creado un report donde utilizamos la visualización de KPI para mostrar el último stock que nos ha llegado para cada producto. Sólo funcionan los campos de tipo texto para poder filtrar, es por esto que hemos tenido que convertir la fecha a número entero y después a string. No podemos cambiar nada del dataset ni tampoco añadir métricas personalizadas con DAX, afortunadamente los gráficos de Power BI nos permiten hacer cálculos personalizados haciendo uso de los filtros. En la siguiente imagen se puede observar la configuración del kpi para que nos muestre el último stock de cada producto:

Para poder crear un data alert, tenemos que llevar las visualizaciones de KPI a un dashboard nuevo:

Una vez ya tenemos las tarjetas de tipo KPI en el dashboard nuevo, ya podemos crear las data alerts:

En el momento de creación de este blog existe una limitación y es que sólo podemos ser avisados como máximo una vez cada hora. Hemos creado una alerta para que salte cuando el stock del producto 1 se quede en cero unidades:

 

5) Crear el workflow con Flow

Ahora necesitamos que cuando se dispare la alerta en Power BI se envíe un email automáticamente. Para ello vamos a utilizar Flow ya que desde Power BI te sugiere utilizar esta herramienta:

Flow ya detecta automáticamente la alerta que hemos creado y a continuación añadimos la acción de enviar un mail

 

Y tras llegar a cero el stock del producto 1 hemos recibido, por un lado, un email de Power BI avisando de la alerta y, por otro, el mail desde Flow:

Conclusión:

Hemos podido comprobar la sencillez con la que hemos podido conectar un streaming de datos en tiempo real con Power BI. Resulta realmente llamativa la monitorización del flujo de datos con un Dashboard y destaca la facilidad de crear un workflow sin escribir ni una sola línea de código.

Todo esto visto desde el punto de vista tecnológico resulta fascinante, pero también lo es desde el punto de vista estratégico de las empresas que quieren transformar digitalmente sus empresas. En este blog estamos explicando como transformar digitalmente un proceso de negocio con ayuda de Power BI y Flow consiguiendo que sea más eficiente y eficaz. Aprovecho la conclusión para hacer hincapié en la importancia de hacer uso de la tecnología para optimizar procesos de negocio críticos. Personalmente lo entiendo como una oportunidad de prosperar para las empresas, no significa que tengamos que prescindir de personas sino que las personas pueden y deben hacer cosas que aporten más valor a estas. En nuestro caso de uso de esta entrada, aportaría mucho más valor a nuestro negocio si las personas que tenemos asignadas a gestión de stocks se dedicasen a otras tareas como por ejemplo de optimización de almacén.

Enlaces de interés:

https://docs.microsoft.com/en-us/power-bi/service-real-time-streaming

https://docs.microsoft.com/en-us/power-bi/service-flow-integration

Jugando a ser rico: Machine Learning para predicción de stocks

Jugando a ser rico: Machine Learning para predicción de stocks

Machine Learning es uno de los conceptos más de moda últimamente en el mundo del tratamiento de los datos. Aparece en medios, se escriben artículos, hay cursos online y libros que tratan de explicar los fundamentos y los detalles más complejos de ésta disciplina profundamente arraigada en la estadística y el álgebra lineal. Muchas de éstas publicaciones lo muestran como uno de los recursos más importantes en el análisis avanzado de datos, y desde SolidQ creemos firmemente en ello. (más…)

Metodologías Ágiles. Herramientas y uso de TFS

Metodologías Ágiles. Herramientas y uso de TFS

¿Por qué es importante Scrum, Kanban o cualquiera de las variantes de Metodologías Ágiles? ¿Es importante para proyectos de BI?

Depende. Depende de muchos factores: del tamaño tu empresa, la cantidad de desarrolladores, … Hay lobos solitarios que están acostumbrados a trabajar de forma individual y lo hacen bien, incluso genial. Eso puede funcionar en ciertos clientes y hasta cierto punto. Cuando existen muchos lobos solitarios y deben ponerse de acuerdo para trabajar todos en el mismo sentido, la cosa se complica. (más…)

Filtros de tiempo relativos en Power BI, YTD seleccionado un único mes y año

Filtros de tiempo relativos en Power BI, YTD seleccionado un único mes y año

Dentro del mundo de la consultoría a veces los clientes piden cosas que a priori son conceptos sencillos de entender pero que, con las herramientas de las que disponemos, son complicadas de implementar. Uno de estos casos es el que nos ocupa hoy, se trata de una petición simple:
Quiero un panel de power BI en el que yo selecciono “un único mes” desde un slicer y se me muestren los datos desde principio del año hasta el mes seleccionado en ese slicer.

(más…)

BI E2E en Azure

BI E2E en Azure

El auge y consolidación de las tecnologías cloud es, desde hace tiempo, una realidad. En el mundo del BI y la analítica avanzada hemos visto como las diferentes funcionalidades y tecnologías que existían on-premises han ido migrando y mejorando en Azure. Estamos en el punto en el que ya somos capaces de implementar flujos de trabajo de inicio a fin dentro de Azure, así como de diseñar arquitecturas híbridas, donde accedemos a fuentes on- premises para llevarlas a la nube y procesar el dato lo antes posible en Azure, maximizando el rendimiento gracias al escalado masivo y la flexibilidad que ésta nos aporta. (más…)

Hilando fino en SSAS multidimensional

Hilando fino en SSAS multidimensional

Recientemente nos hemos visto involucrados en un proyecto SSAS Multidimensional en el que existía una dimensión de cuentas padre-hijo bastante compleja y con un operador unario por en medio. Es por esto que nos hemos decidido a describir brevemente la implementación por defecto de SSAS y la que utilizamos finalmente para mejorar el rendimiento. (más…)