Comprendre le traitement des événements
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.
Une fois démarrée, une requête Stream Analytics s’exécute perpétuellement, traitant de nouvelles données à mesure qu’elles arrivent dans l’entrée et stockent les résultats dans la sortie.
Stream Analytics garantit un traitement des événements exactement une fois et une remise d’événements au moins une fois, afin que les événements ne soient jamais perdus. 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 également des points de contrôle intégrés pour maintenir l’état de votre travail et produire des résultats reproductibles. Azure Stream Analytics étant une solution PaaS (Platform-as-a-Service), elle est entièrement gérée et hautement fiable. Son intégration intégrée à différentes sources et destinations offre un modèle de programmabilité flexible. Le moteur Stream Analytics active le calcul en mémoire, de sorte qu’il offre des performances élevées.
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 de processus de flux sont complexes ou gourmandes en ressources, vous pouvez créer un cluster Stream Analysis, qui utilise le même moteur de traitement sous-jacent qu’un travail Stream Analytics, mais dans un locataire dédié (par conséquent, votre traitement n’est pas affecté par d’autres clients) et avec une scalabilité configurable qui vous permet de définir l’équilibre approprié du débit et du coût pour votre scénario spécifique.
Données d'entrée
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 est traitée en tant que nouveaux enregistrements d’événements sont ajoutés. En outre, vous pouvez définir des entrées de référence 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éorologique en temps réel qui inclut un ID unique pour chaque station météorologique et augmenter ces données avec une entrée de référence statique qui correspond à 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 les champs de données FROM 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 météo-événements afin d’inclure uniquement des données d’événements dont la valeur de température est inférieure à 0 et écrit les résultats dans la sortie de temps froid :
SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0
Un champ nommé EventProcessedUtcTime est créé automatiquement 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 spécifier explicitement un autre champ DateTime à l’aide de la clause TIMESTAMP BY , comme illustré dans cet exemple. Selon l’entrée à partir de laquelle les données de diffusion en continu 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 les fenêtres temporelles, qui est abordée ensuite.