El Dominio 4 del temario oficial de DP-900 incluye el elemento "Identificar servicios en la nube de Microsoft para el análisis en tiempo real". El módulo de Microsoft Learn que lo prepara ahora gira en torno a Microsoft Fabric Real-Time Intelligence y Apache Spark Structured Streaming. Si llegas al examen conociendo solo Event Hubs y Stream Analytics, las preguntas que mencionan Eventstream, Eventhouse o KQL pueden hacerte tropezar con facilidad.
Este artículo continúa la entrega de Análisis de datos en tiempo real de nuestra serie de estudio de DP-900. Aquella entrega trató el procesamiento por lotes frente al streaming, Event Hubs, IoT Hub, Stream Analytics y las funciones de ventana. Aquí empezamos por los elementos comunes de una arquitectura de procesamiento de flujos y seguimos con los componentes de Fabric Real-Time Intelligence, Spark Structured Streaming con Delta Lake y cómo elegir un servicio en cada situación.
---
Elementos comunes de una arquitectura de procesamiento de flujos
Imagina la cinta de equipajes de un aeropuerto. Las maletas suben desde el mostrador de facturación, un escáner las revisa sin parar mientras avanzan y salen repartidas por destino. Procesar cada elemento en cuanto llega, en lugar de esperar a que se acumulen todos, es lo que significa procesar flujos.
Sea cual sea la tecnología, la mayoría de las soluciones de streaming siguen los mismos cuatro pasos.
Un evento genera datos. Una señal de un sensor, una publicación en redes sociales o una nueva línea en un archivo de registro es algo que ocurre y produce datos digitales. Los datos se capturan en un origen de streaming. En casos sencillos puede ser una carpeta en un almacenamiento en la nube o una tabla de base de datos; en soluciones más avanzadas es una cola que mantiene el orden de los eventos y garantiza que cada uno se procese una sola vez. Los datos se procesan. Una consulta que se ejecuta de forma continua (consulta perpetua) selecciona ciertos eventos, proyecta valores o los agrega en ventanas de tiempo, por ejemplo de un minuto. Los resultados se escriben en una salida o receptor (sink). Puede ser un archivo, una tabla de base de datos, un panel en tiempo real u otra cola para seguir procesando.
| Función | Servicios de Azure habituales | |------|------| | Origen (ingesta) | Azure Event Hubs, Azure IoT Hub, Azure Data Lake Storage Gen2, Apache Kafka | | Procesamiento | Fabric Real-Time Intelligence, Spark Structured Streaming, Azure Stream Analytics | | Receptor (archivos) | Azure Data Lake Storage Gen2, Microsoft OneLake, Azure Blob Storage | | Receptor (tablas) | Azure SQL Database, Azure Databricks, Microsoft Fabric | | Receptor (visualización o procesamiento posterior) | Microsoft Power BI, Azure Event Hubs |
Event Hubs es un servicio de ingesta para grandes volúmenes de eventos. Los eventos de una misma partición se entregan en orden y la entrega es de al menos una vez (at-least-once). IoT Hub es un servicio de ingesta similar, optimizado para administrar dispositivos IoT.
Consejo para el examen: "Una consulta que se ejecuta de forma continua y agrega los eventos entrantes en ventanas de tiempo" → la consulta perpetua del procesamiento de flujos. "El lugar que recibe los resultados (un archivo, una tabla o un panel)" → el receptor (sink).
---
Arquitecturas que combinan lotes y streaming
Las soluciones de análisis reales a menudo no eligen un solo enfoque. Con el tráfico de una carretera, por ejemplo, el número de coches que pasan ahora mismo va a un panel en tiempo real, mientras que los mismos datos se guardan para analizar por lotes la tendencia del tráfico del último año.
El patrón clásico para combinar ambos es la arquitectura lambda. Los datos de streaming se procesan de inmediato en una capa en tiempo real y se envían a los paneles, mientras que los datos de otros orígenes llegan a un lago de datos, se procesan periódicamente en una capa por lotes y se guardan en un almacenamiento de datos. Los resultados en tiempo real también se guardan en ese almacenamiento para el análisis histórico.
| Patrón | Estructura | Características | |------|------|------| | Arquitectura lambda | Capas separadas en tiempo real y por lotes | Ofrece resultados en tiempo real y análisis histórico preciso; dos capas la hacen más difícil de gestionar | | Arquitectura kappa | Sin capa por lotes; todos los datos se procesan como flujo | Estructura más simple; el reprocesamiento histórico vuelve a reproducir el flujo |
Microsoft Learn también menciona la arquitectura delta, pero DP-900 no evalúa sus detalles. Incluso cuando no se necesita análisis ni visualización en tiempo real, es habitual capturar los datos con tecnología de streaming, guardarlos y procesarlos más tarde por lotes.
Consejo para el examen: "Un diseño con una ruta en tiempo real y otra por lotes para admitir paneles en vivo y análisis histórico" → arquitectura lambda.
---
Microsoft Fabric Real-Time Intelligence
Fabric Real-Time Intelligence es un conjunto de herramientas integrado en Microsoft Fabric para ingerir, procesar y analizar datos de streaming. Conectar orígenes de eventos, almacenar y consultar datos, crear paneles en vivo y lanzar acciones automáticas cuando se cumplen condiciones ocurre dentro del mismo área de trabajo de Fabric. Piensa en ello como una sola experiencia SaaS para un trabajo que antes obligaba a unir varios servicios de Azure.
Pese al nombre, tus datos no tienen que llegar rápido ni en grandes volúmenes. La clave es que construyes soluciones que reaccionan a los eventos cuando ocurren, en lugar de trabajos que se ejecutan según una programación.
Real-Time hub: un catálogo de datos de streaming
El Real-Time hub es un catálogo que reúne en un solo lugar los datos de streaming de una organización. Puedes descubrir flujos de datos en ejecución, orígenes de Microsoft que se pueden conectar y eventos de Fabric, y compartirlos con otros equipos.
Eventstream: ingerir, transformar y enrutar
Un eventstream lleva eventos en tiempo real a Fabric sin código, los transforma opcionalmente con operaciones como filtrar o agregar y los envía a uno o varios destinos. Entre los orígenes están Azure Event Hubs, Azure IoT Hub, la captura de datos modificados (CDC) de Azure SQL Database o Azure Cosmos DB, Apache Kafka, Amazon Kinesis y Google Pub/Sub. Entre los destinos están un Eventhouse, un Lakehouse (guardado en formato Delta Lake), Activator y un punto de conexión personalizado para aplicaciones externas.
Eventhouse y KQL: una base de datos para eventos
Un Eventhouse es una base de datos diseñada para almacenar y analizar datos de eventos basados en el tiempo, capaz de consultar miles de millones de eventos en segundos. Un Eventhouse puede contener varias bases de datos KQL y maneja datos semiestructurados como JSON y texto libre además de datos estructurados. Encaja con telemetría, registros, series temporales y datos de IoT.
El lenguaje de consulta es KQL (Kusto Query Language), creado para analizar con rapidez registros y telemetría, y Copilot puede convertir preguntas en lenguaje natural en KQL. El servicio PaaS independiente de Azure para el mismo tipo de trabajo es Azure Data Explorer, que también usa KQL.
Paneles en tiempo real y Activator
Los paneles en tiempo real (Real-Time Dashboards) visualizan los datos entrantes en vivo. Activator te permite definir condiciones sin código; cuando los datos cumplen una condición, envía un correo o una notificación de Teams, o ejecuta una acción como un flujo de Power Automate o una canalización o un notebook de Fabric. Convierte la información en acción, como en "avisar al técnico de guardia cuando la temperatura de un sensor supere el umbral".
!Flujo de datos en Fabric Real-Time Intelligence
| Componente | Función | Palabras clave para el examen | |------|------|------| | Real-Time hub | Catálogo de los datos de streaming de la organización | Descubrir y compartir flujos | | Eventstream | Ingesta, transformación y enrutamiento sin código | Llevar eventos a Fabric | | Eventhouse | Base de datos para eventos basados en el tiempo | Base de datos KQL, registros y telemetría | | KQL | Lenguaje de consulta del Eventhouse | Kusto Query Language | | Panel en tiempo real | Visualización en vivo | El estado de las cosas ahora mismo | | Activator | Acciones automáticas cuando se detectan condiciones | Alertas, Power Automate, sin código |
Consejo para el examen: "Ingerir eventos de streaming en Fabric sin código, transformarlos y enviarlos a varios destinos" → Eventstream. "Un almacén de Fabric que consulta registros y telemetría con rapidez usando KQL" → Eventhouse. "Enviar una alerta o ejecutar una acción automáticamente cuando los datos cumplen una condición" → Activator.
---
Spark Structured Streaming y Delta Lake
Apache Spark es un motor que reparte el procesamiento de grandes volúmenes de datos entre muchas máquinas (un clúster) para que el trabajo se ejecute en paralelo. En Azure puedes usarlo en Microsoft Fabric y Azure Databricks, escribir código en Python, Scala, Java, R o SQL, y ejecutar tanto procesamiento por lotes como de flujos.
Cómo funciona Structured Streaming
Spark Structured Streaming es la biblioteca de procesamiento de flujos integrada en Spark. La forma más fácil de entenderla es tratar un flujo en vivo como una tabla de una hoja de cálculo, salvo que no paran de aparecer filas nuevas a medida que llegan los eventos.
Te conectas a un origen de streaming, como una cola de mensajes del tipo Azure Event Hubs, una carpeta de archivos o una fuente de red. Lees los datos entrantes en un dataframe, una tabla de filas y columnas que se sigue llenando a medida que llegan eventos. Escribes una consulta sobre el dataframe, por ejemplo para contar eventos por minuto o calcular una media móvil. Escribes los resultados de la consulta en un receptor, como un archivo, una base de datos o un panel.
Es una buena elección cuando ya procesas datos c