Optimiser une requête à l’aide de la simulation de travaux
Une façon d’améliorer les performances d’un travail Azure Stream Analytics (ASA) consiste à appliquer le parallélisme dans la requête. Cet article montre comment utiliser la Simulation de travaux dans Visual Studio Code (VS Code) et évaluer le parallélisme des requêtes pour un travail Stream Analytics. Vous apprenez à visualiser une exécution de requête avec un nombre différent d’unités de diffusion en continu et à améliorer le parallélisme des requêtes en fonction des suggestions de modification.
Qu’est-ce que la requête parallèle ?
Le parallélisme des requêtes divise la charge de travail d’une requête en créant plusieurs processus (ou nœuds de streaming) et en l’exécutant en parallèle. Il réduit considérablement le temps d’exécution global de la requête et, par conséquent, moins d’heures de diffusion en continu sont nécessaires.
Pour qu’un travail soit parallèle, toutes les entrées, sorties et étapes de requête doivent être alignées et utiliser les mêmes clés de partition. Le partitionnement de la logique de requête est déterminé par les clés utilisées pour les agrégations (GROUP BY).
Si vous souhaitez en savoir plus sur la parallélisation des requêtes, consultez Tirer parti de la parallélisation des requêtes dans Azure Stream Analytics.
Utiliser la simulation de travaux dans VS Code
La fonctionnalité de simulation de travaux simule la façon dont le travail exécuterait la topologie dans Azure. Dans ce tutoriel, vous allez apprendre à améliorer les performances des requêtes en fonction des suggestions de modification et à les exécuter en parallèle. Par exemple, nous utilisons un travail non parallèle qui récupère les données d’entrée d’un Event Hub et envoie les résultats à un autre Event Hub.
Prérequis :
- Extension Outils ASA pour VS Code. Si vous ne l’avez pas encore installé, suivez ce guide pour l’installer.
- Configurez l’entrée en direct et la sortie en direct pour votre travail Stream Analytics.
- Vous devez inclure l’entrée et la sortie actives dans la requête.
Notes
La simulation de travaux ne peut pas simuler la topologie en cours d’exécution pour les entrées et sorties locales. Aucune donnée n’est envoyée à la destination de sortie pendant la simulation.
Ouvrez le projet ASA dans VS Code. Accédez au fichier de requête *.asaql et sélectionnez Simuler le travail pour démarrer la simulation de travaux.
Sous l’onglet Diagramme, il indique le nombre de nœuds de diffusion en continu alloués au travail et le nombre de partitions dans chaque nœud de streaming. La capture d’écran suivante est un exemple de travail non parallèle où les données circulent entre des nœuds.
Étant donné que cette requête n’est PAS en parallèle, vous pouvez sélectionner l’onglet Améliorations et afficher des suggestions sur l’amélioration de la requête.
Sélectionnez l’étape de requête dans la liste des améliorations. Vous voyez que les lignes correspondantes sont mises en surbrillance et vous pouvez modifier la requête en fonction des suggestions.
Notes
Il s’agit de suggestions de modification pour améliorer le parallélisme de votre requête. Toutefois, si vous utilisez une fonction d’agrégation parmi toutes les partitions, l’utilisation d’une requête parallèle peut ne pas s’appliquer à vos scénarios.
Pour cet exemple, vous ajoutez l’Id de partition à la ligne 22 et enregistrez votre modification. Vous pouvez ensuite utiliser la Simulation d’actualisation pour obtenir le nouveau diagramme.
Vous pouvez également ajuster les unités de streaming pour stimuler la façon dont les nœuds de streaming sont alloués avec différentes US. Il vous donne une idée du nombre de SU dont vous avez besoin pour gérer votre charge de travail.
Utiliser la simulation de travaux dans le Portail Azure
- Accédez à votre éditeur de requête dans Portail Azure et sélectionnez Simulation de travaux dans le volet inférieur. Cela simule le travail en cours d’exécution de la topologie en fonction de votre requête et des unités de streaming prédéfinies.
- Sélectionnez Améliorations pour afficher les suggestions d’amélioration du parallélisme des requêtes.
- Ajustez les unités de streaming pour voir le nombre d’unités de streaming unique (SU) dont vous avez besoin pour gérer la charge de travail.
Diagramme au niveau du processeur
Une fois que les unités de streaming ajustées pour simuler la topologie de votre travail, vous pouvez développer n’importe quel nœud de streaming pour observer le traitement de vos données au niveau du processeur.
Le diagramme au niveau du processeur vous permet de :
- Observer l’allocation et le traitement des partitions d’entrée sur chaque nœud de streaming.
- Découvrir ce qu’est le décalage temporel pour chaque processeur informatique.
- Fournir des informations indiquant si les processeurs d’entrée et de sortie disposent d’un alignement parallèle.
Pour mapper le processeur à l’étape de requête, effectuez une double sélection dans le diagramme. Cette fonctionnalité vous aide à localiser les étapes de requête qui effectuent l’agrégation.
Suggestions d’amélioration
Voici les explications relatives aux améliorations :
Type | Signification |
---|---|
Partition personnalisée non prise en charge | Remplacer la clé de partition 'xxx' d’entrée par 'xxx'. |
Nombre de partitions non mises en correspondance | L’entrée et la sortie doivent avoir le même nombre de partitions. |
Clés de partition non mises en correspondance | L’entrée, la sortie et chaque étape de requête doivent utiliser la même clé de partition. |
Nombre de partitions d’entrée non mises en correspondance | Toutes les entrées doivent avoir le même nombre de partitions. |
Clés de partition d’entrée non mises en correspondance | Toutes les entrées doivent utiliser la même clé de partition. |
Faible niveau de compatibilité | Mettez à niveau CompatibilityLevel sur le fichier JobConfig.json . |
Clé de partition de sortie introuvable | Vous devez utiliser la clé de partition spécifiée pour la sortie. |
Partition personnalisée non prise en charge | Vous ne pouvez utiliser que des clés de partition prédéfinies. |
Étape de requête qui n’utilise pas de partition | Votre requête n’utilise aucune clause PARTITION BY. |
Étapes suivantes
Si vous souhaitez en savoir plus sur la parallélisation des requêtes et le diagramme de travaux, consultez ces didacticiels :
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : pendant toute l’année 2024, nous allons éliminer progressivement Problèmes GitHub comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, voir :Soumettre et afficher des commentaires pour