Partager via


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.

  1. 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.

    Capture d’écran du simulateur de diagramme de travail d’ouverture VS Code dans le fichier de requête.

  2. 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.

    Capture d’écran de VS Code utilisant le simulateur de diagramme de travail et montrant la topologie du travail.

  3. É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.

    Capture d'écran de VS Code utilisant le simulateur de diagramme de travail et montrant les suggestions de modification de la requête.

  4. 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.

    Capture d'écran de VS Code utilisant le simulateur de diagramme de travail et mettant en évidence l'étape de la requête.

    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.

  5. 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.

    Capture d’écran montrant le diagramme d’actualisation après la mise à jour de la requête.

  6. 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.

    Capture d’écran de VS Code utilisant l’ajustement de SU.

Utiliser la simulation de travaux dans le Portail Azure

  1. 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. Une capture d’écran montre l’ouverture d’une simulation de travaux dans le portail.
  2. Sélectionnez Améliorations pour afficher les suggestions d’amélioration du parallélisme des requêtes. Une capture d’écran montre l’ouverture des améliorations de la simulation de travaux dans le portail.
  3. 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. Capture d’écran montrant comment ajuster les SU dans le portail.

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.

Capture d’écran au format GIF montrant le diagramme du simulateur 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.

Une capture d’écran montre la fonction de mappage de simulation de travaux dans VS Code.

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 :