Seguridad a nivel datos. RLS

Seguridad a nivel datos. RLS

Con el creciente despliegue de modelos tabulares y servicios de tiempo real conectados a ellos, nos surge siempre una misma pregunta: ¿Cómo controlo quien puede acceder a determinados datos en esos modelos y arquitecturas modernas? Abordaremos distintos escenarios de conexión de Power BI y modelos tabulares, su implementación, mantenimiento y buenas prácticas. (más…)

Introducción al análisis RFM de clientes con SQL Server y Power BI

Introducción al análisis RFM de clientes con SQL Server y Power BI

El sistema RFM es un método de Marketing empresarial que consiste en la segmentación de clientes y se basa en el valor que aportan a la empresa, dependiendo de la volumetría de la cartera de clientes de una empresa y del presupuesto que pueda disponer el departamento de marketing normalmente nos interesa saber que grupo de clientes suelen tener una mejor respuesta a determinadas campañas de email, teléfono o de redes sociales.

(más…)

Report Server: Nuevos mutantes

Report Server: Nuevos mutantes

En el último año el ecosistema de herramientas de visualización de Microsoft ha crecido, desarrollado y combinado entre sí. ¿Qué camino está tomando? ¿qué puedo hacer con Reporting Services que no pueda hacer con Power BI, Report Server o viceversa? Haremos un análisis de la característica que diferencian cada una, de forma muy rápida.

(más…)

StoryTelling con Power BI

Los datos e información derivada son muy relevantes: relaciones, patrones, tendencias, redes. etc.…Pero las historias nos fascinan aún más, es la forma en la que entendemos la vida, en la que propagamos la cultura. Data Storytelling nos ayuda a transmitir mejor las ideas y conclusiones que obtenemos de los datos. En esta sesión exprimiremos todas las capacidades de Power BI orientadas a Data Storytelling.

(más…)

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

Árboles: de ni idea a experto en 1 hora

Árboles: de ni idea a experto en 1 hora

El machine learning o aprendizaje automático está presente cada vez más los negocios, así como en nuestro día a día. No solo la “gente de a pie” no tiene claro lo que significa machine learning, sino que muchos de los que nos dedicamos al mundo de la informática seguimos sin comprenderlo bien. Durante la sesión se desvelan algunos de los misterios que esconde el llamado “machine learning” y se intenta convencer al oyente de que el machine learning no es magia, solo ciencia.

(más…)