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 Storage Gen2, Azure SQL Database, Azure Cosmos DB, Azure Functions, Azure Event Hubs, Microsoft Power BI ou d’autres.

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 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
  • Apache Kafka

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 récepteurs de sortie, qui peuvent être utilisés pour :

  • Conserver les résultats pour une analyse plus approfondie ; par exemple, en écrivant dans Azure Data Lake Storage Gen2, Azure SQL Database ou Azure Cosmos DB.
  • Analyser les données de journal et de télémétrie à grande échelle ; par exemple, en envoyant des résultats à Azure Data Explorer.
  • 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 des résultats dans Azure Event Hubs.

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.

Éditeur sans code

Si vous préférez créer votre travail de traitement de flux sans écrire SQL, Azure Stream Analytics inclut un éditeur sans code. Vous pouvez y accéder à partir du portail Azure Stream Analytics ou du portail Azure Event Hubs. L’éditeur sans code fournit un canevas de glisser-déplacer où vous connectez des sources d’entrée, ajoutez des transformations (y compris des fenêtres et des agrégations) et configurez des sorties sans écrire de code.

Vous pouvez utiliser l’éditeur sans code pour prototyper rapidement, puis afficher ou personnaliser la requête SQL générée pour des scénarios plus avancés.