Descripción del procesamiento de eventos

Completado

Azure Stream Analytics es un servicio para el procesamiento de eventos complejos y el análisis de datos de flujos. Stream Analytics se usa para:

  • Ingerir datos de una entrada, como Azure Event Hubs, Azure IoT Hub o un contenedor de blobs de Azure Storage.
  • Procesar los datos con una consulta para seleccionar, proyectar y sumar valores de datos.
  • Escribir los resultados en una salida, como Azure Data Lake Gen 2, Azure SQL Database, Azure Synapse Analytics, Azure Functions, Azure Event Hubs, Microsoft Power BI u otros.

Diagrama en el que se muestra un trabajo de Stream Analytics con entradas, una consulta y salidas

Una vez iniciada, se ejecutará una consulta de Stream Analytics de forma perpetua para procesar nuevos datos a medida que llegan a la entrada y almacenar los resultados en la salida.

Stream Analytics garantiza un procesamiento de eventos y al menos una entrega de eventos, de modo que los datos nunca se pierden. Además, presenta funcionalidades de recuperación integradas, en el caso de que se produzca un error al entregar un evento. Stream Analytics también proporciona puntos de comprobación integrados para mantener el estado del trabajo y produce resultados repetibles. Dado que Azure Stream Analytics es una solución de plataforma como servicio (PaaS), está totalmente administrado y es muy fiable. Cuenta con integración incorporada con diversos orígenes y destinos, y proporciona un modelo de programación flexible. Asimismo, puesto que el motor de Stream Analytics permite el procesamiento en memoria, ofrece un alto rendimiento.

Trabajos y clústeres de Azure Stream Analytics

La manera más fácil de usar Azure Stream Analytics es crear un trabajo de Stream Analytics en una suscripción de Azure, configurar sus entradas y salidas, y definir la consulta que usará el trabajo para procesar los datos. La consulta se expresa mediante la sintaxis del lenguaje de consulta estructurado (SQL) y puede incorporar datos de referencia estáticos de varios orígenes de datos para proporcionar valores de búsqueda que se pueden combinar con los datos de flujos ingeridos desde una entrada.

Si los requisitos del proceso de flujos son complejos o consumen muchos recursos, puede crear un clúster de Stream Analysis, que usa el mismo motor de procesamiento subyacente que un trabajo de Stream Analytics, pero en un inquilino dedicado (por lo que el procesamiento no se ve afectado por otros clientes) y con escalabilidad configurable que le permite definir el equilibrio adecuado entre rendimiento y costo para su escenario específico.

Entradas

Azure Stream Analytics puede ingerir datos de los siguientes tipos de entrada:

  • Azure Event Hubs
  • Azure IoT Hub
  • Azure Blob Storage
  • Azure Data Lake Storage Gen2

Por lo general, las entradas se usan para hacer referencia a un origen de datos de streaming que se procesa a medida que se agregan nuevos registros de eventos. Además, puede definir entradas de referencia que se usan para ingerir datos estáticos que aumenten los datos de flujo de eventos en tiempo real. Por ejemplo, podría ingerir un flujo de datos de observación meteorológica en tiempo real que incluya un identificador único para cada estación meteorológica y aumentar esos datos con una entrada de referencia estática que coincida con el identificador de la estación meteorológica con un nombre más significativo.

Salidas

Las salidas son destinos a los que se envían los resultados del procesamiento de flujos. Azure Stream Analytics admite una amplia gama de salidas, que se pueden usar para:

  • Conservar los resultados del procesamiento de flujo para su posterior análisis; por ejemplo, cargándolos en un lago de datos o en un almacenamiento de datos.
  • Mostrar una visualización en tiempo real del flujo de datos; por ejemplo, anexando datos a un conjunto de datos en Microsoft Power BI.
  • Generar eventos filtrados o resumidos para el procesamiento descendente; por ejemplo, escribiendo los resultados del procesamiento de flujos en un centro de eventos.

Consultas

La lógica de procesamiento de flujos se encapsula en una consulta. Las consultas se definen mediante instrucciones SQL que SELECCIONAN campos de datos FROM una o varias entradas, filtran o agregan los datos y escriben los resultados INTO en una salida. Por ejemplo, la consulta siguiente filtra los eventos de la entrada de eventos meteorológicos para incluir solo los datos de los eventos con un valor de temperatura inferior a 0 y escribe los resultados en la salida de temperatura en frío:

SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0

Se crea automáticamente un campo denominado EventProcessedUtcTime para definir la hora en que la consulta de Azure Stream Analytics procesa el evento. Puede usar este campo para determinar la marca de tiempo del evento, o puede especificar otro campo DateTime de forma explícita mediante la cláusula TIMESTAMP BY, tal y como se muestra en este ejemplo. Dependiendo de la entrada desde la que se lean los datos de streaming, se pueden crear automáticamente uno o varios campos de marca de tiempo potenciales; por ejemplo, al usar una entrada de Event Hubs, se genera un campo denominado EventQueuedUtcTime para registrar la hora en que se recibió el evento en la cola del centro de eventos.

El campo que se usa como marca de tiempo es importante al agregar datos a través de ventanas temporales. Este campo se describe a continuación.