Comprendre le traitement des événements

Effectué

Azure Stream Analytics est un service pour le traitement complexe des événements et l’analyse des données de diffusion en continu. Stream Analytics permet d’effectuer les opérations suivantes :

  • Ingérer des données à partir d’une entrée, comme Azure Event Hub, Azure IoT Hub, ou conteneur de stockage Blob Azure.
  • Traitez les données en utilisant une requêtepour sélectionner, projeter et agréger les valeurs des données.
  • Écrivez les résultats dans une sortie, comme Azure Data Lake Gen 2, Azure SQL Database, Azure Synapse Analytics, Azure Functions, Azure Event Hub, Microsoft Power BI, etc.

Diagramme montrant un travail Stream Analytics avec des entrées, une requête et des sorties

Une fois démarrée, une requête Stream Analytics s’exécute de manière perpétuelle, en traitant les nouvelles données au fur et à mesure de leur arrivée dans l’entrée et en stockant les résultats dans la sortie.

Stream Analytics garantit un traitement des événements Exactement une fois et une remise des événements Une fois au minimum, ce qui évite la perte d’événements. Il possède des fonctionnalités de récupération intégrées en cas d’échec de la remise d’un événement. Stream Analytics fournit par ailleurs des points de contrôle intégrés pour gérer l’état de votre travail et assure des résultats reproductibles. Comme Azure Stream Analytics est un service PaaS (Platform-as-a-Service), il est complètement managé et hautement fiable. Son intégration prédéfinie à plusieurs sources et destinations en font un modèle flexible de programmabilité. Comme le moteur Stream Analytics permet le calcul en mémoire, il offre de hautes performances.

Tâches et clusters Azure Stream Analytics

Le moyen le plus simple d’utiliser Azure Stream Analytics consiste à créer unetâche Stream Analytics dans un abonnement Azure, à configurer ses entrées et sorties, et à définir la requête que la tâche utilisera pour traiter les données. La requête est exprimée à l’aide de la syntaxe SQL (structured query language) et peut incorporer des données de référence statiques à partir de plusieurs sources de données pour fournir des valeurs de recherche qui peuvent être combinées avec les données de diffusion en continu ingérées à partir d’une entrée.

Si vos exigences en matière de traitement par flux sont complexes ou gourmandes en ressources, vous pouvez créer un cluster d’analyse de flux, qui utilise le même moteur de traitement sous-jacent qu’un travail de Stream Analytics, mais dans un locataire dédié (votre traitement n’est donc pas affecté par d’autres clients) et avec une évolutivité configurable qui vous permet de définir le bon équilibre du débit et des coûts pour votre scénario spécifique.

Entrées

Azure Stream Analytics peut ingérer des données à partir des types d’entrée suivants :

  • Hubs d'événements Azure
  • Azure IoT Hub
  • Stockage Blob Azure
  • Azure Data Lake Storage Gen2

Les entrées sont généralement utilisées pour référencer une source de données de streaming, qui sont traitées à mesure que de nouveaux enregistrements d’événements sont ajoutés. En outre, vous pouvez définir des entrées de référence qui sont utilisées pour ingérer des données statiques afin d’augmenter les données de flux d’événements en temps réel. Par exemple, vous pouvez ingérer un flux de données d’observation météorologiques en temps réel qui comprend un ID unique pour chaque station météorologique, et augmenter ces données avec une entrée de référence statique qui fait correspondre l’ID de la station météorologique à un nom plus explicite.

Sorties

Les sorties sont des destinations vers lesquelles les résultats du traitement de flux sont envoyés. Azure Stream Analytics prend en charge un large éventail de sorties, qui peuvent être utilisées pour :

  • Conserver les résultats du traitement de flux pour une analyse plus approfondie ; par exemple, en les chargeant dans un lac de données ou un entrepôt de données.
  • Afficher une visualisation en temps réel du flux de données ; par exemple, en ajoutant des données à un jeu de données dans Microsoft Power BI.
  • Générer des événements filtrés ou résumés pour le traitement en aval ; par exemple, en écrivant les résultats du traitement de flux dans un hub d’événements.

Requêtes

La logique de traitement de flux est encapsulée dans une requête. Les requêtes sont définies à l’aide d’instructions SQL qui SÉLECTIONNENT des champs de données À PARTIR d’une ou plusieurs entrées, filtrent ou agrègent les données et écrivent les résultats DANS une sortie. Par exemple, la requête suivante filtre les événements de l’entrée weather-events pour inclure uniquement les données des événements dont la valeur de température est inférieure à 0, et écrit les résultats dans la sortie températures froides :

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

Un champ nommé EventProcessedUtcTime est automatiquement créé pour définir l’heure à laquelle l’événement est traité par votre requête Azure Stream Analytics. Vous pouvez utiliser ce champ pour déterminer l’horodatage de l’événement, ou vous pouvez spécifier explicitement un autre champ DateTime à l’aide de la clause HORODATAGE PAR, comme illustré dans cet exemple. Selon l’entrée à partir de laquelle les données de streaming sont lues, un ou plusieurs champs d’horodatage potentiels peuvent être créés automatiquement ; par exemple, lors de l’utilisation d’une entrée Event Hubs, un champ nommé EventQueuedUtcTime est généré pour enregistrer l’heure à laquelle l’événement a été reçu dans la file d’attente du hub d’événements.

Le champ utilisé comme horodatage est important lors de l’agrégation des données sur des fenêtres temporelles, qui est abordé ci-dessous.