Modèles de solution Azure Stream AnalyticsAzure Stream Analytics solution patterns

Comme de nombreux autres services présents dans Azure, Stream Analytics trouve sa grande utilité lorsqu’il est associé à d’autres services pour créer une solution de bout en bout plus étendue.Like many other services in Azure, Stream Analytics is best used with other services to create a larger end-to-end solution. Cet article aborde les solutions Azure Stream Analytics simples ainsi que différents modèles d’architecture.This article discusses simple Azure Stream Analytics solutions and various architectural patterns. Vous pouvez vous appuyer sur ces modèles pour développer des solutions plus complexes.You can build on these patterns to develop more complex solutions. Les modèles décrits dans cet article sont exploitables dans un large éventail de scénarios.The patterns described in this article can be used in a wide variety of scenarios. Des exemples de modèles propres aux scénarios sont disponibles dans les Architectures de solution Azure.Examples of scenario-specific patterns are available on Azure solution architectures.

Créer un travail Stream Analytics pour alimenter l’expérience des tableaux de bord en temps réelCreate a Stream Analytics job to power real-time dashboarding experience

Avec Azure Stream Analytics, vous pouvez rapidement mettre en place des alertes et des tableaux de bord en temps réel.With Azure Stream Analytics, you can quickly stand up real-time dashboards and alerts. Une solution simple ingère des événements à partir d’Event Hubs ou d’IoT Hub, puis alimente le tableau de bord Power BI avec un jeu de données en streaming.A simple solution ingests events from Event Hubs or IoT Hub, and feeds the Power BI dashboard with a streaming data set. Pour plus d’informations, consultez le tutoriel détaillé Analyser les données d’appel frauduleux avec Stream Analytics et visualiser les résultats dans un tableau de bord Power BI.For more information, see the detailed tutorial Analyze fraudulent call data with Stream Analytics and visualize results in Power BI dashboard.

Tableau de bord Power BI ASA

Cette solution peut être générée en quelques minutes seulement à partir du portail Azure.This solution can be built in just a few minutes from Azure portal. Aucun codage complexe n’est impliqué, et la logique métier s’exprime avec le langage SQL.There is no extensive coding involved, and SQL language is used to express the business logic.

Ce modèle de solution offre la plus faible latence, de la source d’événements au tableau de bord Power BI dans un navigateur.This solution pattern offers the lowest latency from the event source to the Power BI dashboard in a browser. Azure Stream Analytics est le seul service Azure comportant cette fonctionnalité intégrée.Azure Stream Analytics is the only Azure service with this built-in capability.

Utiliser SQL pour le tableau de bordUse SQL for dashboard

Le tableau de bord Power BI offre une faible latence, mais il est inutilisable dans la production de rapports Power BI complets.The Power BI dashboard offers low latency, but it cannot be used to produce full fledged Power BI reports. Un modèle de création de rapports courant se veut tout d’abord sortir vos données dans une base de données SQL.A common reporting pattern is to output your data to SQL Database first. Ainsi, utilisez le connecteur SQL de Power BI pour interroger SQL sur les données les plus récentes.Then use Power BI's SQL connector to query SQL for the latest data.

Tableau de bord SQL ASA

L’utilisation d’une base de données SQL vous offre plus de flexibilité, mais elle se fait au détriment d’une latence légèrement plus élevée.Using SQL Database gives you more flexibility but at the expense of a slightly higher latency. Cette solution est optimale pour les travaux dont les exigences en termes de latence sont supérieures à une seconde.This solution is optimal for jobs with latency requirements greater than one second. Avec cette méthode, vous pouvez optimiser les fonctionnalités de Power BI pour segmenter et traiter les données destinées aux rapports, et de nombreuses autres options de visualisation.With this method, you can maximize Power BI capabilities to further slice and dice the data for reports, and much more visualization options. Vous gagnez également en flexibilité avec l’utilisation d’autres solutions de tableau de bord, telles que Tableau.You also gain the flexibility of using other dashboard solutions, such as Tableau.

SQL n’est pas un magasin de données à débit élevé.SQL is not a high throughput data store. Le débit maximal, vers une base de données SQL depuis Azure Stream Analytics, se situe actuellement autour de 24 Mo/s.The maximum throughput to SQL Database from Azure Stream Analytics is currently around 24 MB/s. Si les sources d’événements de votre solution produisent des données à un taux plus élevé, vous devez utiliser une logique de traitement dans Stream Analytics pour réduire le taux de sortie vers SQL.If the event sources in your solution produce data at a higher rate, you need to use processing logic in Stream Analytics to reduce the output rate to SQL. Des techniques, telles que le filtrage, les agrégats fenêtrés, les critères spéciaux avec des jointures temporelles, et des fonctions analytiques, peuvent être utilisées.Techniques such as filtering, windowed aggregates, pattern matching with temporal joins, and analytic functions can be used. Il est possible d’optimiser davantage le taux de sortie vers SQL en recourant aux techniques décrites dans l’article Sortie d’Azure Stream Analytics dans Azure SQL Database.The output rate to SQL can be further optimized using techniques described in Azure Stream Analytics output to Azure SQL Database.

Incorporer des insights en temps réel dans votre application avec la messagerie d’événementsIncorporate real-time insights into your application with event messaging

La deuxième utilisation la plus appréciée de Stream Analytics est la création d’alertes en temps réel.The second most popular use of Stream Analytics is to generate real-time alerts. Dans ce modèle de solution, vous pouvez utiliser une logique métier dans Stream Analytics afin de détecter les modèles temporels et spatiaux ou les anomalies, et produire ensuite des signaux d’alerte.In this solution pattern, business logic in Stream Analytics can be used to detect temporal and spatial patterns or anomalies, then produce alerting signals. Toutefois, contrairement à la solution de tableau de bord dans laquelle Stream Analytics se sert de Power BI comme point de terminaison par défaut, certains récepteurs de données intermédiaires peuvent être utilisés.However, unlike the dashboard solution where Stream Analytics uses Power BI as a preferred endpoint, a number of intermediate data sinks can be used. Ces récepteurs comprennent Event Hubs, Service Bus et Azure Functions.These sinks include Event Hubs, Service Bus, and Azure Functions. Vous, en tant que créateur d’applications, devez décider quel récepteur de données convient le mieux à votre scénario.You, as the application builder, need to decide which data sink works best for your scenario.

La logique de consommateur d’événements en aval doit être implémentée pour générer des alertes dans votre workflow d’entreprise existant.Downstream event consumer logic must be implemented to generate alerts in your existing business workflow. À partir du moment où vous pouvez implémenter une logique personnalisée dans Azure Functions, Azure Functions représente le moyen le plus rapide pour vous d’effectuer cette intégration.Because you can implement custom logic in Azure Functions, Azure Functions is the fastest way you can perform this integration. Un tutoriel sur l’utilisation d’Azure Functions en tant que sortie d’une tâche Stream Analytics est disponible dans Exécuter Azure Functions à partir des travaux Azure Stream Analytics.A tutorial for using Azure Function as the output for a Stream Analytics job can be found in Run Azure Functions from Azure Stream Analytics jobs. Azure Functions prend également en charge différents types de notifications, y compris le texte et les e-mails.Azure Functions also supports various types of notifications including text and email. Vous pouvez aussi utiliser Logic Apps pour ce genre d’intégration, en plaçant Event Hubs entre Stream Analytics et Logic Apps.Logic App may also be used for such integration, with Event Hubs between Stream Analytics and Logic App.

Application de messagerie d’événements ASA

Event Hubs, par ailleurs, offre le point d’intégration le plus souple.Event Hubs, on the other hand, offers the most flexible integration point. De nombreux autres services, tels qu’Azure Data Explorer et Time Series Insights, peuvent consommer des événements à partir d’Event Hubs.Many other services, like Azure Data Explorer and Time Series Insights can consume events from Event Hubs. Des services peuvent être connectés directement au récepteur Event Hubs à partir d’Azure Stream Analytics pour terminer la solution.Services can be connected directly to the Event Hubs sink from Azure Stream Analytics to complete the solution. Event Hubs est également le répartiteur de messagerie au débit le plus élevé, disponible sur Azure pour de tels scénarios d’intégration.Event Hubs is also the highest throughput messaging broker available on Azure for such integration scenarios.

Sites web et applications dynamiquesDynamic applications and websites

Vous pouvez créer des visualisations en temps réel personnalisées, telles que la visualisation de tableaux de bord ou de cartes, avec Azure Stream Analytics et Azure SignalR Service.You can create custom real-time visualizations, such as dashboard or map visualization, using Azure Stream Analytics and Azure SignalR Service. L’utilisation de SignalR permet la mise à jour des clients web et l’affichage du contenu dynamique en temps réel.Using SignalR, web clients can be updated and show dynamic content in real-time.

Application dynamique ASA

Incorporer à votre application des insights en temps réel par le biais de magasins de donnéesIncorporate real-time insights into your application through data stores

La plupart des services et applications web utilisent aujourd’hui un modèle de requête/réponse pour gérer la couche de présentation.Most web services and web applications today use a request/response pattern to serve the presentation layer. Le modèle de requête/réponse est simple à créer et peut être facilement mis à l’échelle dans un temps de réponse faible, avec un front-end sans état et des magasins scalables, comme Cosmos DB.The request/response pattern is simple to build and can be easily scaled with low response time using a stateless frontend and scalable stores, like Cosmos DB.

Les volumes importants de données génèrent souvent des goulots d’étranglement dans un système CRUD.High data volume often creates performance bottlenecks in a CRUD-based system. Le modèle de solution de provisionnement en événements s’utilise pour résoudre les goulots d’étranglement au niveau des performances.The event sourcing solution pattern is used to address the performance bottlenecks. Les insights et modèles temporels sont également ardus et inefficaces pour l’extraction à partir d’un magasin de données classique.Temporal patterns and insights are also difficult and inefficient to extract from a traditional data store. Les applications modernes basées sur les données volumineuses adoptent souvent une architecture basée sur les dataflows.Modern high-volume data driven applications often adopt a dataflow-based architecture. Azure Stream Analytics, en tant que moteur de calcul pour les données en mouvement, est un élément central dans cette architecture.Azure Stream Analytics as the compute engine for data in motion is a linchpin in that architecture.

Application de provisionnement en événements ASA

Dans ce modèle de solution, les événements sont traités et agrégés dans des magasins de données par Azure Stream Analytics.In this solution pattern, events are processed and aggregated into data stores by Azure Stream Analytics. La couche d’application interagit avec les magasins de données par l’intermédiaire du modèle de requête/réponse classique.The application layer interacts with data stores using the traditional request/response pattern. Du fait de la capacité de Stream Analytics à traiter un grand nombre d’événements en temps réel, l’application s’en trouve extrêmement évolutive, sans nécessiter la fourniture en bloc de la couche magasin de données.Because of Stream Analytics' ability to process a large number of events in real-time, the application is highly scalable without the need to bulk up the data store layer. La couche magasin de données est avant tout une vue matérialisée dans le système.The data store layer is essentially a materialized view in the system. La sortie d’Azure Stream Analytics vers Azure Cosmos DB décrit l’utilisation de Cosmos DB en tant que sortie Stream Analytics.Azure Stream Analytics output to Azure Cosmos DB describes how Cosmos DB is used as a Stream Analytics output.

Dans les applications réelles, où la logique de traitement est complexe et où il est nécessaire de mettre à niveau certaines parties de la logique séparément, plusieurs travaux Stream Analytics peuvent être combinés ensemble avec Event Hubs, en tant que répartiteur d’événements intermédiaire.In real applications where processing logic is complex and there is the need to upgrade certain parts of the logic independently, multiple Stream Analytics jobs can be composed together with Event Hubs as the intermediary event broker.

Application de provisionnement d’événements complexe ASA

Ce modèle améliore la résilience et facilite la gestion du système.This pattern improves the resiliency and manageability of the system. Même si Stream Analytics garantit le traitement en une seule et unique fois, il existe malgré tout une faible probabilité pour que les événements en double puissent se retrouver dans l’instance Event Hubs placée en intermédiaire.However, even though Stream Analytics guarantees exactly once processing, there is a small chance that duplicate events may land in the intermediary Event Hubs. Il est important pour le travail Stream Analytics en aval de dédupliquer les événements à l’aide de clés logiques dans une fenêtre de recherche arrière.It's important for the downstream Stream Analytics job to dedupe events using logic keys in a lookback window. Pour plus d’informations sur la remise d’événements, consultez la référence Garanties de remise d’événements.For more information on event delivery, see Event Delivery Guarantees reference.

Utiliser les données de référence pour la personnalisation des applicationsUse reference data for application customization

La fonctionnalité des données de référence Azure Stream Analytics est prévue plus particulièrement pour la personnalisation de l’utilisateur final, telles que le seuil d’alerte, les règles de traitement et les limites géographiques.The Azure Stream Analytics reference data feature is designed specifically for end-user customization like alerting threshold, processing rules, and geofences. La couche d’application peut accepter les modifications apportées aux paramètres et les stocker dans une base de données SQL.The application layer can accept parameter changes and store them in SQL Database. Le travail Stream Analytics interroge régulièrement sur les modifications à partir de la base de données, et rend les paramètres de personnalisation accessibles par le biais d’une jointure de données de référence.The Stream Analytics job periodically queries for changes from the database and makes the customization parameters accessible through a reference data join. Pour plus d’informations sur l’utilisation des données de référence pour la personnalisation d’application, consultez Données de référence SQL et Jointure de données de référence.For more information on how to use reference data for application customization, see SQL reference data and reference data join.

Ce modèle peut être également utilisé pour implémenter un moteur de règles, où les seuils des règles sont définis à partir de données de référence.This pattern can also be used to implement a rules engine where the thresholds of the rules are defined from reference data. Pour plus d’informations sur les règles, consultez Traiter des règles configurables basées sur un seuil dans Azure Stream Analytics.For more information on rules, see Process configurable threshold-based rules in Azure Stream Analytics.

Application de données de référence ASA

Ajouter Machine Learning à vos insights en temps réelAdd Machine Learning to your real-time insights

Le modèle de détection d’anomalie intégrée d’Azure Stream Analytics est un moyen pratique pour introduire Machine Learning dans votre application en temps réel.Azure Stream Analytics' built-in Anomaly Detection model is a convenient way to introduce Machine Learning to your real-time application. Pour un plus large éventail des besoins Machine Learning, consultez Azure Stream Analytics s’intègre au service de scoring d’Azure Machine Learning.For a wider range of Machine Learning needs, see Azure Stream Analytics integrates with Azure Machine Learning's scoring service.

Pour les utilisateurs expérimentés qui souhaitent intégrer le scoring et la formation en ligne dans le même pipeline Stream Analytics, consultez cet exemple pour savoir comment procéder en utilisant la régression linéaire.For advanced users who want to incorporate online training and scoring into the same Stream Analytics pipeline, see this example of how do that with linear regression.

Application Machine Learning ASA

Entreposage de données en temps réelReal-time data warehousing

L’entreposage de données en quasi temps réel, également appelé entrepôt de données de streaming est un autre modèle courant.Another common pattern is real-time data warehousing, also called streaming data warehouse. En plus des événements arrivant dans Event Hubs et IoT Hub depuis votre application, vous pouvez utiliser Azure Stream Analytics running on IoT Edge pour répondre aux besoins de nettoyage, de réduction ainsi que de stockage et transfert de données.In addition to events arriving at Event Hubs and IoT Hub from your application, Azure Stream Analytics running on IoT Edge can be used to fulfill data cleansing, data reduction, and data store and forward needs. Stream Analytics running on IoT Edge peut gérer convenablement les problèmes de connectivité et de limitation de la bande passante dans le système.Stream Analytics running on IoT Edge can gracefully handle bandwidth limitation and connectivity issues in the system. Stream Analytics peut prendre en charge des taux de débit allant jusqu’à 200 Mo/s lors de l’écriture dans Azure Synapse Analytics.Stream Analytics can support throughput rates of upto 200MB/sec while writing to Azure Synapse Analytics.

Entreposage de données ASA

Archivage des données en temps réel pour l’analytiqueArchiving real-time data for analytics

La plupart des activités d’analytique et de science des données s’effectuent encore hors connexion.Most data science and analytics activities still happen offline. Les données peuvent être archivées par Azure Stream Analytics via les formats de sortie Azure Data Lake Store Gen2 et Parquet.Data can be archived by Azure Stream Analytics through Azure Data Lake Store Gen2 output and Parquet output formats. Cette fonctionnalité supprime la difficulté d’alimenter directement en données Azure Data Lake Analytics, Azure Databricks et Azure HDInsight.This capability removes the friction to feed data directly into Azure Data Lake Analytics, Azure Databricks, and Azure HDInsight. Azure Stream Analytics sert de moteur ETL en quasi temps réel dans cette solution.Azure Stream Analytics is used as a near real-time ETL engine in this solution. Vous pouvez explorer des données archivées dans Data Lake avec différents moteurs de calcul.You can explore archived data in Data Lake using various compute engines.

ASA offline analyticsASA offline analytics

Utiliser les données de référence pour l’enrichissementUse reference data for enrichment

L’enrichissement des données constitue souvent une condition exigée pour les moteurs ETL.Data enrichment is often a requirement for ETL engines. Azure Stream Analytics prend en charge l’enrichissement des données avec les données de référence provenant de la base de données SQL et du stockage Blob Azure.Azure Stream Analytics supports data enrichment with reference data from both SQL Database and Azure Blob storage. L’enrichissement des données peut être effectué pour l’arrivage de données dans Azure Data Lake et dans Azure Synapse Analytics.Data enrichment can be done for data landing in both Azure Data Lake and Azure Synapse Analytics.

Analytique ASA en mode hors connexion avec enrichissement des données

Rendre des insights opérationnels à partir de données archivéesOperationalize insights from archived data

Si vous combinez le modèle d’analytique hors connexion avec le modèle d’application en quasi temps réel, vous pouvez créer une boucle de rétroaction.If you combine the offline analytics pattern with the near real-time application pattern, you can create a feedback loop. La boucle de rétroaction permet à l’application de s’ajuster automatiquement aux modifications des modèles dans les données.The feedback loop lets the application automatically adjust for changing patterns in the data. Cette boucle de rétroaction peut se révéler aussi simple qu’une modification de la valeur du seuil d’alerte, ou aussi complexe que le réentraînement des modèles Machine Learning.This feedback loop can be as simple as changing the threshold value for alerting, or as complex as retraining Machine Learning models. La même architecture de solution peut être appliquée autant aux travaux ASA s’exécutant dans le cloud que sur IoT Edge.The same solution architecture can be applied to both ASA jobs running in the cloud and on IoT Edge.

Opérationnalisation d’insights ASA

Guide pratique pour superviser les travaux ASAHow to monitor ASA jobs

Un travail Azure Stream Analytics peut s’exécuter 24/24 7/7 pour traiter des événements entrants sans interruption en temps réel.An Azure Stream Analytics job can be run 24/7 to process incoming events continuously in real time. Sa garantie de durée de fonctionnement est cruciale pour l’intégrité de l’application dans son ensemble.Its uptime guarantee is crucial to the health of the overall application. Même si Stream Analytics est le seul service d’analytique en streaming du secteur qui offre une garantie de disponibilité de 99,9 %, vous risquez tout de même de connaître un certain niveau de temps d’arrêt.While Stream Analytics is the only streaming analytics service in the industry that offers a 99.9% availability guarantee, you may still incur some level of down time. Au fil des années, Stream Analytics a introduit les métriques, les journaux et les états des tâches pour refléter l’intégrité des travaux.Over the years, Stream Analytics has introduced metrics, logs, and job states to reflect the health of the jobs. Tous sont exposés via le service Azure Monitor, et peuvent même être exportés vers OMS.All of them are surfaced through Azure Monitor service and can be further exported to OMS. Pour plus d’informations, consultez Présentation de la supervision des travaux Stream Analytics et des requêtes.For more information, see Understand Stream Analytics job monitoring and how to monitor queries.

Supervision ASA

Il y a deux éléments clés à surveiller :There are two key things to monitor:

  • État d’échec du travailJob failed state

    Avant toute chose, vous devez vous assurer que le travail est en cours d’exécution.First and foremost, you need to make sure the job is running. Sans travail associé à un état en cours d’exécution, aucune nouvelle métrique et aucun journal n’est généré.Without the job in the running state, no new metrics or logs are generated. Les travaux peuvent afficher un état d’échec pour diverses raisons, entre autres avoir un niveau élevé d’utilisation de SU (autrement dit, manquer de ressources).Jobs can change to a failed state for various reasons, including having a high SU utilization level (i.e., running out of resources).

  • Métrique du délai en filigraneWatermark delay metrics

    Cette métrique reflète le retard pris par votre pipeline de traitement en temps Horloge (secondes).This metric reflects how far behind your processing pipeline is in wall clock time (seconds). Un certain délai est attribué à la logique de traitement inhérente.Some of the delay is attributed to the inherent processing logic. En conséquence, la supervision de la tendance croissante est beaucoup plus importante que la surveillance de la valeur absolue.As a result, monitoring the increasing trend is much more important than monitoring the absolute value. Le délai de l’état stable devrait être corrigé par la conception de votre application, pas par la supervision ou les alertes.The steady state delay should be addressed by your application design, not by monitoring or alerts.

En cas d’échec, les journaux d’activité et les journaux de diagnostic sont les meilleurs endroits où commencer à rechercher des erreurs.Upon failure, activity logs and diagnostics logs are the best places to begin looking for errors.

Créer des applications stratégiques et résilientesBuild resilient and mission critical applications

Quels que soient la garantie du contrat SLA d’Azure Stream Analytics utilisé et le soin que vous apportez à exécuter votre application de bout en bout, des pannes se produisent.Regardless of Azure Stream Analytics' SLA guarantee and how careful you run your end-to-end application, outages happen. Si votre application est stratégique, vous devez être prêt à réagir face aux interruptions, afin de procéder à une récupération correctement.If your application is mission critical, you need to be prepared for outages in order to recover gracefully.

Pour les applications de génération d’alertes, le plus important est de détecter l’alerte suivante.For alerting applications, the most important thing is to detect the next alert. Vous pouvez choisir de redémarrer le travail à l’heure en cours au moment de la récupération, et donc d’ignorer les alertes passées.You may choose to restart the job from the current time when recovering, ignoring past alerts. La sémantique de l’heure de début du travail s’établit en fonction de la première heure de sortie, pas de la première heure d’entrée.The job start time semantics are by the first output time, not the first input time. L’entrée est rembobinée vers l’arrière, jusqu’à une quantité appropriée de temps permettant de garantir que la première sortie à l’heure spécifiée est complète et correcte.The input is rewound backwards an appropriate amount of time to guarantee the first output at the specified time is complete and correct. En procédant ainsi, vous n’obtenez aucun agrégat partiel et ne déclenchez aucune alerte de façon inattendue.You won't get partial aggregates and trigger alerts unexpectedly as a result.

Vous pouvez également choisir de démarrer la sortie à partir d’une certaine quantité de temps dans le passé.You may also choose to start output from some amount of time in the past. Les stratégies de conservation Event Hubs et IoT Hub contiennent une quantité raisonnable de données permettant d’autoriser le traitement dans le passé.Both Event Hubs and IoT Hub's retention policies hold a reasonable amount of data to allow processing from the past. Le compromis tient dans la rapidité avec laquelle vous pouvez rattraper le retard par rapport à l’heure actuelle, et commencer à générer de nouvelles alertes dans les délais.The tradeoff is how fast you can catch up to the current time and start to generate timely new alerts. Les données perdent rapidement leur valeur au fil du temps, il est donc important de rattraper au plus vite l’heure actuelle.Data loses its value rapidly over time, so it's important to catch up to the current time quickly. Il existe deux façons de rattraper rapidement un retard :There are two ways to catch up quickly:

  • Provisionner davantage de ressources (SU) lors du rattrapage du retard.Provision more resources (SU) when catching up.
  • Redémarrer à partir de l’heure actuelle.Restart from current time.

Le redémarrage à l’heure actuelle est simple à réaliser, en acceptant le compromis de devoir laisser un intervalle vide lors du traitement.Restarting from current the time is simple to do, with the tradeoff of leaving a gap during processing. Le redémarrage par ce moyen peut accessoirement fonctionner pour les scénarios d’alerte, mais s’avérer problématique avec les scénarios de tableau de bord, et être voué à l’échec pour l’archivage et les scénarios d’entreposage de données.Restarting this way might be OK for alerting scenarios, but can be problematic for dashboard scenarios and is a non-starter for archiving and data warehousing scenarios.

Le provisionnement de ressources supplémentaires peut accélérer le processus, mais l’effet d’une augmentation brutale de la vitesse de traitement est complexe.Provisioning more resources can speed up the process, but the effect of having a processing rate surge is complex.

  • Vérifiez que votre travail peut être mis à l’échelle sur un plus grand nombre de SU.Test that your job is scalable to a larger number of SUs. Les requêtes ne sont pas toutes adaptables.Not all queries are scalable. Vous devez vous assurer que votre requête est parallélisée.You need to make sure your query is parallelized.

  • Veillez à ce qu’il existe suffisamment de partitions en amont dans les services Event Hubs ou IoT Hub pour que vous puissiez ajouter plus d’unités de débit (TU) et ainsi mettre à l’échelle le débit d’entrée.Make sure there are enough partitions in the upstream Event Hubs or IoT Hub that you can add more Throughput Units (TUs) to scale the input throughput. N’oubliez pas, chaque TU Event Hubs atteint la limite maximale à une vitesse de sortie de 2 Mo/s.Remember, each Event Hubs TU maxes out at an output rate of 2 MB/s.

  • Assurez-vous d’avoir provisionné assez de ressources dans les récepteurs de sortie (c’est-à-dire SQL Database, Cosmos DB), afin qu’ils ne répriment pas l’afflux important en sortie, qui peut parfois entraîner le blocage du système.Make sure you have provisioned enough resources in the output sinks (i.e., SQL Database, Cosmos DB), so they don't throttle the surge in output, which can sometimes cause the system to lock up.

L’essentiel est plus de tout d’anticiper la modification de la vitesse de traitement, de tester ces scénarios avant la mise en production, et d’être prêt à la mise à l’échelle correcte du traitement pendant la durée de récupération après une défaillance.The most important thing is to anticipate the processing rate change, test these scenarios before going into production, and be ready to scale the processing correctly during failure recovery time.

Dans le scénario extrême où les événements entrants sont tous retardés, il est possible que tous les événements différés soient supprimés si vous avez appliqué une plage d’arrivée tardive à votre travail.In the extreme scenario that incoming events are all delayed, it's possible all the delayed events are dropped if you have applied a late arriving window to your job. La suppression des événements peut sembler un comportement étrange au début, mais si l’on considère que Stream Analytics est un moteur de traitement en temps réel, celui-ci s’attend donc à ce que les événements entrants soient proches du temps Horloge.The dropping of the events may appear to be a mysterious behavior at the beginning; however, considering Stream Analytics is a real-time processing engine, it expects incoming events to be close to the wall clock time. Il doit donc supprimer les événements qui violent ces contraintes.It has to drop events that violate these constraints.

Architectures lambda ou processus de renvoiLambda Architectures or Backfill process

Heureusement, le modèle d’archivage de données précédent peut être utilisé pour traiter normalement ces événements tardifs.Fortunately, the previous data archiving pattern can be used to process these late events gracefully. L’idée est que le travail d’archivage traite les événements entrants à l’heure d’arrivée, et archive les événements dans le compartiment du moment opportun, dans un objet blob Azure ou dans Azure Data Lake Store, avec leur heure d’événement.The idea is that the archiving job processes incoming events in arrival time and archives events into the right time bucket in Azure Blob or Azure Data Lake Store with their event time. Peu importe l’heure tardive à laquelle un événement arrive, il n’est jamais supprimé.It doesn't matter how late an event arrives, it will never be dropped. Il est toujours placé dans le compartiment du moment opportun.It will always land in the right time bucket. Lors de la récupération, il est possible de retraiter les événements archivés et de renvoyer les résultats dans le magasin voulu.During recovery, it's possible to reprocess the archived events and backfill the results to the store of choice. Cela est similaire à la façon dont les modèles lambda sont implémentés.This is similar to how lambda patterns are implemented.

Renvoi ASA

Le processus de renvoi doit être effectué avec un système de traitement par lots hors connexion ; celui-ci a probablement un autre modèle de programmation qu’Azure Stream Analytics.The backfill process has to be done with an offline batch processing system, which most likely has a different programming model than Azure Stream Analytics. Cela signifie que vous devez implémenter de nouveau et en entier la logique de traitement.This means you have to re-implement the entire processing logic.

Pour un renvoi, il demeure important de provisionner au moins temporairement plus de ressources sur les récepteurs de sortie, afin de gérer un débit plus élevé que les besoins du traitement de l’état stable.For backfilling, it's still important to at least temporarily provision more resource to the output sinks to handle higher throughput than the steady state processing needs.

ScénariosScenarios Redémarrer à partir de maintenant uniquementRestart from now only Redémarrer à partir de l’heure du dernier arrêtRestart from last stopped time Redémarrer à partir de maintenant + renvoyer avec des événements archivésRestart from now + backfill with archived events
Tableaux de bordDashboarding Crée l’intervalle videCreates gap OK pour une brève interruptionOK for short outage Utiliser pour une longue interruptionUse for long outage
AlertesAlerting AcceptableAcceptable OK pour une brève interruptionOK for short outage Pas nécessaireNot necessary
Application de provisionnement en événementsEvent sourcing app AcceptableAcceptable OK pour une brève interruptionOK for short outage Utiliser pour une longue interruptionUse for long outage
Entrepôt de donnéesData warehousing Perte de donnéesData loss AcceptableAcceptable Pas nécessaireNot necessary
Analytique hors connexionOffline analytics Perte de donnéesData loss AcceptableAcceptable Pas nécessaireNot necessary

Exemple completPutting it all together

Il est facile d’imaginer que tous les modèles de solution mentionnés ci-dessus sont combinables entre eux, dans un système de bout en bout complexe.It's not hard to imagine that all the solution patterns mentioned above can be combined together in a complex end-to-end system. Le système composé peut inclure des fonctionnalités de tableaux de bord, d’alertes, d’application de provisionnement en événements, d’entreposage de données et d’analytique hors connexion.The combined system can include dashboards, alerting, event sourcing application, data warehousing, and offline analytics capabilities.

L’essentiel est de concevoir votre système dans des modèles composables, de telle sorte que chaque sous-système peut être généré, testé, mis à niveau et récupéré séparément.The key is to design your system in composable patterns, so each subsystem can be built, tested, upgraded, and recover independently.

Étapes suivantesNext steps

Vous venez de découvrir différents modèles de solution avec Azure Stream Analytics.You now have seen a variety of solution patterns using Azure Stream Analytics. Pour approfondir ces connaissances et créer votre premier travail Stream Analytics, consultez les articles suivants :Next, you can dive deep and create your first Stream Analytics job: