Partager via


Qu’est-ce que le réglage automatique pour les configurations Apache Spark dans Fabric ?

Autotune ajuste automatiquement les configurations Apache Spark pour réduire le temps d’exécution de la charge de travail et améliorer les performances. Cela vous permet d’éviter le réglage manuel, qui implique généralement des essais et erreurs répétés. Autotune utilise des données d’exécution historiques de vos charges de travail pour découvrir et appliquer des paramètres efficaces pour chaque charge de travail.

Remarque

Le réglage automatique des requêtes dans Microsoft Fabric est actuellement en préversion. Il est disponible dans toutes les régions de production, mais il est désactivé par défaut. Activez-le dans une configuration Spark d’environnement ou pour une session unique dans le code notebook ou Spark Job Definition.

Configuration par défaut et configuration requise

  • Comportement par défaut : la mise en forme automatique est désactivée par défaut.
  • Aucune configuration requise quand elle est désactivée : si vous n’activez pas la mise en forme automatique, Spark utilise son comportement de configuration standard.
  • Configuration requise pour utiliser la mise en forme automatique : définissez spark.ms.autotune.enabled=true l’une des options suivantes :

Paramétrage des requêtes

Autotune ajuste ces trois paramètres Apache Spark pour chaque requête :

  • spark.sql.shuffle.partitions: définit le nombre de partitions pour le shuffling de données pendant les jointures ou les agrégations. La valeur par défaut est 200.
  • spark.sql.autoBroadcastJoinThreshold: Définit la taille maximale de la table, en octets, à diffuser sur les nœuds de travail lors d'une opération de jointure. La valeur par défaut est 10 MB.
  • spark.sql.files.maxPartitionBytes: définit le nombre maximal d’octets à packer dans une partition lors de la lecture de fichiers. Les fichiers sources Parquet, JSON et ORC sont concernés. La valeur par défaut est 128 MB.

Le réglage automatique des requêtes examine chaque requête et génère un modèle Machine Learning distinct pour cette requête. Il convient le mieux pour :

  • Les requêtes répétitives
  • Requêtes longues (plus de 15 secondes)
  • Requêtes d’API SQL Apache Spark (pas API RDD)

Vous pouvez utiliser autotune avec des notebooks, des définitions de travaux Spark et des pipelines. L’avantage varie en fonction de la complexité des requêtes et de la forme des données. Lors des tests, les gains les plus importants apparaissent dans les modèles d’analyse exploratoire des données, tels que les lectures, les jointures, les agrégations et les tris.

Capture d’écran de l’heure d’exécution avec la mise en forme automatique activée.

Fonctionnement de l’autotune

L’autotune utilise une boucle d’optimisation itérative :

  1. Démarrez à partir des valeurs de configuration Spark par défaut.
  2. Générer des configurations candidates autour d’une ligne de base (centroïde).
  3. Prédire le meilleur candidat à l’aide d’un modèle formé lors des exécutions précédentes.
  4. Appliquez le candidat et exécutez la requête.
  5. Relayer les résultats de l'exécution de tâches dans le modèle.

Au fil du temps, la ligne de base passe vers de meilleurs paramètres tout en réduisant le risque de régression. L’utilisation de tous les points de données collectés permet également de réduire l’effet des anomalies.

Activer l'Auto-Tune

La mise en forme automatique est disponible dans toutes les régions de production, mais elle est désactivée par défaut. Pour l’activer au niveau de l’environnement, définissez la propriété spark.ms.autotune.enabled=true Spark dans un environnement nouveau ou existant. Tous les notebooks et travaux qui utilisent cet environnement héritent des paramètres.

Capture d'écran de l'activation de l'autotune.

L'Autotune comprend une détection de régression intégrée. Par exemple, si une requête traite une quantité inhabituellement importante de données, la mise en forme automatique peut ignorer automatiquement le réglage de cette exécution. Dans de nombreux scénarios, la mise en forme automatique a besoin d’environ 20 à 25 itérations pour converger sur des paramètres forts.

Remarque

L’autotune est compatible avec Runtime 1.2. Vous ne pouvez pas l’activer sur les versions du runtime ultérieures à la version 1.2. Elle ne s’exécute pas lorsque le mode d’accès concurrentiel élevé ou le point de terminaison privé est activé. L'autotune fonctionne avec la mise à l’échelle automatique dans n’importe quelle configuration d'autoscaling.

Vous pouvez également activer l’autotune pour une session unique en définissant la propriété Spark dans votre bloc-notes ou la définition de travail Spark.

Activer l’autotune pour une seule session

%%sql
SET spark.ms.autotune.enabled=TRUE

Désactiver l’autotune pour une seule session

Pour désactiver l’autotune dans un bloc-notes ou une définition de travail Spark, exécutez l’une des commandes suivantes en tant que première cellule ou première ligne de code.

%%sql 
SET spark.ms.autotune.enabled=FALSE 

Étude de cas

Lorsque vous exécutez une requête Apache Spark, la mise en forme automatique génère un modèle pour cette forme de requête et apprend les meilleurs paramètres au fil du temps. Par exemple, commencez par cette requête de filtre :

%%pyspark
df.filter(df.country == "country-A")

Autotune apprend à partir de cet essai. Si vous modifiez ultérieurement uniquement la valeur de filtre, la forme de requête reste similaire :

%%pyspark
df.filter(df.country == "country-B")

L’autotune peut réutiliser les apprentissages précédents pour ce modèle de requête similaire, ce qui permet de maintenir les performances sans retuning manuel.

Journaux

Pour chaque requête, la mise en forme automatique calcule les valeurs recommandées pour les trois configurations Spark prises en charge. Pour inspecter les recommandations, vérifiez les journaux des pilotes pour les entrées qui commencent par [Autotune].

Capture d’écran des journaux de réglage automatique à l’intérieur du hub de monitoring.

Les états courants des journaux sont les suivants :

Statut Descriptif
AUTOTUNE_DISABLED Ignoré. L'autotuning est désactivé, donc la collecte et l'optimisation de la télémétrie ne sont pas appliquées.
QUERY_TUNING_DISABLED Ignoré. Le réglage des requêtes est désactivé.
QUERY_PATTERN_NOT_MATCH Ignoré. Le modèle de requête ne correspond pas aux types de requêtes en lecture seule pris en charge.
QUERY_DURATION_TOO_SHORT Ignoré. La requête s’est exécutée pendant moins de 15 secondes, ce qui est trop court pour un réglage efficace.
QUERY_TUNING_SUCCEED Opération réussie. Le réglage des requêtes a été effectué et les paramètres Spark optimisés ont été appliqués.

Note de transparence

En alignement avec la norme IA responsable, cette section explique comment l’autotune est utilisé et validé.

Objectif de l’autotune

Autotune est conçu pour améliorer l’efficacité des charges de travail Apache Spark pour les professionnels de la donnée. Elle effectue les actions suivantes :

  • Ajuste automatiquement les configurations Apache Spark pour réduire le temps d’exécution.
  • Réduit l’effort de réglage manuel.
  • Utilise les données de charge de travail historiques pour affiner de manière itérative les choix de configuration.

Validation de l’Autotune

L’autotune subit une validation étendue pour garantir l’efficacité et la sécurité :

  • Utilise des tests rigoureux sur différentes charges de travail Spark pour vérifier l’efficacité de l’algorithme de réglage.
  • Comparaisons par rapport aux méthodes d'optimisation standard de Spark pour démontrer les avantages en matière de performances.
  • Inclut des études de cas réelles pour montrer une valeur pratique.
  • Suit des normes strictes en matière de sécurité et de confidentialité pour protéger les données utilisateur.

Les données des utilisateurs sont exclusivement utilisées pour améliorer les performances de votre charge de travail, avec des protections solides pour éviter l’utilisation abusive ou l’exposition d’informations sensibles.