[Fabric] Intro a Real-Time Analytics
¿Alguna vez les pidieron que sus tableros muestren información en tiempo real? estoy muy seguro que así fue. En caso de que no les haya pasado, déjenme decirle que son unos afortunados.
El tema de real-time suele ocurrir seguido en el mundo de la analítica, pero... ¿es realmente necesario? la respuesta claramente es "depende". En este artículo damos el primer vistazo a una solución de real time pasando por los ítems de la suite que provee Microsoft Fabric y rompemos mitos contando cuando creemos que la solución amerita y cuando no debería.
Vamos a comenzar como nos gusta hacer en ladataweb, definiendo ¿qué es Fabric Real time analtics?
Una solución de extremo a extremo basado en un conjunto de ítems que dan un servicio que permite a los usuarios de tu organización extraer información y visualizar sus datos en movimiento. Con datos en movimiento, nos referimos a lo que sucede en el ahora. Una solución para escenarios en los que es necesario responder a eventos a medida que se producen, procesar datos que fluyen continuamente o analizar registros. Tanto si se trata de gigabytes como de petabytes, todos los datos de la organización que se mueve convergen en un Hub en Tiempo Real.
Los ítems que provee la suite de Fabric para real-time son:
Event Stream: permite incorporar eventos en tiempo real a Fabric, transformarlos y enrutarlos a varios destinos sin escribir ningún código. (el interlocutor)
Event House: proporcionan una solución para controlar y analizar grandes volúmenes de datos, especialmente en escenarios en los que se necesita análisis y exploración en tiempo real. Están diseñadas para controlar flujos de datos en tiempo real de forma eficaz (nuestro storage)
Activator: un motor de detección de eventos sin código y de baja latencia que desencadena automáticamente acciones cuando se detectan patrones o condiciones específicos en orígenes de datos. (trigger de alertas)
Real-Time Dashboards: Un panel es una colección de iconos, opcionalmente organizados en páginas, donde cada icono tiene una consulta subyacente y una representación visual. Las consultas se ejecutan al visualizar en tiempo real contra el event house.
¿Cuándo usar?
Los usuarios siempre van a estar encantados con la idea de tener información en tiempo real de lo que sea. El usuario elige el ya y ahora. Sin embargo, no siempre tiene sentido, escala y vale la pena la inversión el ejecutar un proyecto de real time. Estos son algunos ejemplos que espero los ayuden a afinar la necesidad.
La solución mágica
No existe una única forma de aplicar real-time. Si buscamos por internet podremos rápidamente darnos cuenta que hay distintos tipos de soluciones. Cito rápidamente 3 que aparecieron cuando busqué para darles de ejemplo
Solución con Azure: utiliza recursos de azure como interlocutor o almacenamiento de la solución, recurso Event Hub o Azure Stream Analytics.
Spart streaming frame: usa un frame propio de spark que esta adaptado para real time. Puede modificarse constantemente en el lakehouse ser leído.
Fabric real time: se nutre de los ítems de la suite para generar una solución que reciba, transforme y manda los datos a un dashboard.
No siempre usaremos todos los componentes en todos los escenarios, sino que dependiendo lo que necesitemos, nuestra solución se ajustaría. Nuestro ejemplo fue utilizado durante eventos de principios del 2026 para que los usuarios interactúen con un juego simple. En dicho desarrollo no usamos todos los elementos de Fabric y nos nutrimos de algunos de Azure. Veamos la arquitectura:
Durante el evento teníamos un juego estilo trivia deployado en un sitio web llamado "Desafío VAR". Cuando los usuarios terminaban de jugar, calculaba los puntajes y ejecutaba un backend (Azure Function) para enviar datos al Event Stream de Fabric para procesarlos. El EventStream podría transformar los datos y enviarlos a una base de datos KQL creada en el Event House. Desde allí podemos crear un Power Bi o conectar uno desde desktop estilo direct query. Este informe se mostraba en una pantalla reflejando los puntajes en tiempo real y las preferencias de respuestas. Vamos paso a paso.
1- Llamada al flujo
No voy a mostrar nuestro desarrollo web completo, simplemente mencionar que el back end de la web utilizar una librería de python de azure para event hubs que funciona con Fabric. Hoy event stream no tiene una API, sino que cuenta con SDKs disponibles para distintos lenguajes de programación.
2- Event Stream
Para crear uno basta con simplemente ponerle el nombre.
Lo primero con este componente será definir un origen, Get Data. Verán distintas opciones que les permite conectar a un origen para traer los eventos (Azure event hub, IoT, Kafka, CDC en bases de datos, etc), en nuestro caso definimos realizarlo más personalizado y seleccionamos la opción "Custom endpoint". Las opciones abren un wizard que los acompaña a configurar. Luego de crearlo podemos ver las formas y credenciales de interacción:
Como pueden apreciar, el custom endpoint nos permite conectarnos como si fuera un Event Hub, AMQP protocol o Kafka. También podemos elegir la forma de autenticación, en mi caso elegí SAS Key Authentication y ahí tengo las credenciales para mi backend que usaría el SDK de Event Hub.
NOTA: Si queres leer más del SDK de python podes verlo aquí: https://learn.microsoft.com/en-us/python/api/overview/azure/eventhub-readme?view=azure-python
NOTA: Si quieren entrar en más detalles de Custom Endpoint pueden seguir su lectura aquí: https://learn.microsoft.com/es-es/fabric/real-time-intelligence/event-streams/add-source-custom-app?pivots=basic-features&wt.mc_id=DP-MVP-5004778
Las cajitas del medio y salida nos van a permitir ver logs y el fluir de los datos en tiempo real. Event Stream también nos permite añadir operaciones.
3- Event House
Para el destino del Event Stream creamos un Event House en el área de trabajo. Al crearlo nos crea por defecto un KQL Database. Podemos usar esa u otra que creemos. También tiene compatibilidades para utilizar un Lakehouse. Fíjense como aparece la base por defecto al abrirlo.
Teniendo creada la Base, volvemos al Event Stream para conectarlo como salida del flujo. No hace falta que creemos una tabla o definamos un esquema. La tabla seguirá la estructura que formemos y enviemos desde el Event Stream.
Desde la base podremos ver un vistazo de los datos de tablas o crear consultas (KQL Queryset) tanto en KQL como en SQL (tiene sus limitaciones)
Como todo en Fabric esta interconectado, los datos almacenados en algún almacenamiento corresponden al onelake y podemos leerlos desde las herramientas de cómputo como Notebooks o PowerBi.
Aquí también podemos hacer shortcuts o crear vistas materializadas para conectarnos a una visión manipulada de lo que tiene una tabla como origen en tiempo real de nuestro informe.
NOTA: Una vista materializada es una consulta de agregación sobre una tabla de origen o sobre otra vista materializada. Representa una única instrucción summarize
4- Dashboard
Nosotros, como somos fanáticos de Power Bi, preferimos hacer un informe ahí y no en los Realtime Dashboards que provee para tener mayor flexibilidad. Sea creándolo desde la web en Fabric o desde Power Bi Desktop (recomiendo).
Desde la Base KQL
Desde Desktop:
La conexión se genera tipo direct query. Esto nos habla de una constancia y cache de actualización, pero no es suficiente para real-time porque nuestro informe quedará congelado a menos que manualmente un usuario presione F5. Para utilizarlo de panel de tiempo real, vamos a configurar el formato de la página del reporte de Power Bi. En la opción Page Refresh o Actualización de página.
Aquí solía estar la opción de generar una actualización cada X segundos. Ahora tenemos una opción más robusta, creamos una regla para no estar actualizando si o si cada vez. Configuramos que cada 4 segundos revise si el COUNT(PartitionId) ha cambiado. Si cambia, refresca las visuales. Esta opción de actualización es para las visualizaciones. De esa forma al cumplirse la regla, nuestras visuales se actualizan y dinámicamente tendremos cambios en los gráficos mostrados en un televisor. ¿Por qué cuatro segundos? simplemente es mi número favorito.
Este es uno de muchísimos ejemplos que podrían surgir sobre Real Time. La idea es que tengan el primer vistazo para conocer la suite y comenzar a tenerla en cuenta en los casos de negocio que le surjan. Siempre es bueno tener un baseline para considerar y luego se profundizará según lo que toque en el escenario.











