Partager via


Optimiser l’utilisation du cluster des pipelines déclaratifs Lakeflow Spark avec mise à l’échelle automatique

Cet article explique comment utiliser la mise à l’échelle automatique améliorée pour optimiser vos pipelines sur Azure Databricks.

La mise à l’échelle automatique améliorée est activée par défaut pour tous les nouveaux pipelines. Les pipelines serverless utilisent également la mise à l’échelle automatique verticale. Voir Qu’est-ce que la mise à l’échelle automatique verticale ?.

Pour les pipelines serverless, la mise à l’échelle automatique améliorée est toujours activée et ne peut pas être désactivée. Consultez Configurer un pipeline serverless.

Qu’est-ce que la mise à l’échelle automatique améliorée ?

La mise à l’échelle automatique améliorée de Databricks optimise l’utilisation du cluster en allouant automatiquement des ressources de cluster en fonction du volume de charge de travail, avec un impact minimal sur la latence de traitement des données de vos pipelines.

La mise à l’échelle automatique améliorée améliore la fonctionnalité de mise à l’échelle automatique du cluster Azure Databricks avec les fonctionnalités suivantes :

  • La mise à l’échelle automatique améliorée implémente l’optimisation des charges de travail de streaming et ajoute des améliorations pour améliorer les performances des charges de travail par lots. La mise à l’échelle automatique améliorée optimise les coûts en ajoutant ou en supprimant des machines à mesure que la charge de travail change.
  • La mise à l’échelle automatique améliorée arrête de manière proactive les nœuds sous-utilisés tout en garantissant qu’aucune tâche n’a échoué pendant l’arrêt. La fonctionnalité de mise à l’échelle automatique du cluster existant effectue un scale-down des nœuds uniquement si le nœud est inactif.

La mise à l’échelle automatique améliorée est le mode de mise à l’échelle automatique par défaut lorsque vous créez un pipeline dans l’interface utilisateur des pipelines. Vous pouvez activer la mise à l’échelle automatique améliorée pour les pipelines existants en modifiant les paramètres du pipeline dans l’interface utilisateur. Vous pouvez également activer la mise à l’échelle automatique améliorée lorsque vous créez ou modifiez des pipelines avec l’API REST des pipelines.

Quelles métriques utilisent la mise à l’échelle automatique améliorée pour prendre une décision de scale-up ou de scale-down ?

La mise à l’échelle automatique améliorée utilise deux métriques pour décider d’une augmentation ou d’une réduction :

  • Utilisation des emplacements de tâche : il s’agit du ratio moyen entre le nombre d’emplacements de tâches occupés et le nombre total d’emplacements de tâches disponibles dans le cluster.
  • Taille de la file d’attente des tâches : il s’agit du nombre de tâches en attente d’exécution dans les emplacements de tâches.

Activer la mise à l’échelle automatique améliorée pour un pipeline

La mise à l’échelle automatique améliorée est le mode de mise à l’échelle automatique par défaut lorsque vous créez un pipeline dans l’interface utilisateur des pipelines. Vous pouvez activer la mise à l’échelle automatique améliorée pour les pipelines existants en modifiant les paramètres du pipeline dans l’interface utilisateur. Vous pouvez également activer la mise à l’échelle automatique améliorée lorsque vous modifiez un pipeline avec l’éditeur de pipelines Lakeflow.

Pour utiliser la mise à l’échelle automatique améliorée, effectuez l’une des opérations suivantes :

  • Définissez le mode cluster sur La mise à l’échelle automatique améliorée lors de la modification des paramètres de pipeline dans l’éditeur de pipelines Lakeflow.
  • Ajoutez le paramètre autoscale à la configuration du cluster de pipeline et définissez le champ mode sur ENHANCED. Consultez Configurer le calcul classique pour les pipelines.

Utilisez les instructions suivantes lors de la configuration de la mise à l’échelle automatique améliorée pour les pipelines de production :

  • Conservez le Min workers paramètre par défaut.
  • Définissez le Max workers paramètre sur une valeur en fonction du budget et de la priorité du pipeline.

L’exemple suivant configure un cluster de mise à l’échelle automatique amélioré avec un minimum de 5 workers et un maximum de 10 workers. max_workers doit être supérieur ou égal à min_workers.

Note

  • La mise à l’échelle automatique améliorée est disponible uniquement pour updates les clusters. Pour les clusters maintenance, la mise à l'échelle automatique héritée est utilisée.
  • La autoscale configuration a deux modes :
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

Si le pipeline est configuré pour l’exécution continue, il est automatiquement redémarré après la modification de la configuration de la mise à l’échelle automatique. Après le redémarrage, attendez-vous à une courte période de latence accrue. Après cette brève période d’augmentation de la latence, la taille du cluster doit être mise à jour en fonction de votre autoscale configuration et la latence du pipeline doit revenir à ses caractéristiques de latence précédentes.

Limiter les coûts des réseaux de traitement qui utilisent l'autoscaling avancé

Note

Vous ne pouvez pas configurer des agents pour les pipelines sans serveur.

La définition du paramètre Max Workers dans le volet Calcul des pipelines définit une limite supérieure pour la mise à l’échelle automatique. La réduction du nombre de travailleurs disponibles peut augmenter la latence pour certaines charges de travail, mais empêche les coûts des ressources de calcul d'exploser pendant les opérations nécessitant beaucoup de ressources de calcul.

Databricks recommande de paramétrer les paramètres Max Workers pour équilibrer le compromis de latence des coûts pour vos besoins particuliers.

Volet Calcul de l’interface utilisateur des pipelines, où vous pouvez définir le nombre maximal de travailleurs pour la mise à l’échelle automatique

Surveiller des pipelines classiques avec mise à l’échelle automatique améliorée

Vous pouvez utiliser le journal des événements dans l’interface utilisateur du pipeline pour surveiller les métriques de mise à l’échelle automatique améliorées pour les pipelines classiques. Les événements de mise à l’échelle automatique améliorés ont le type d’événement autoscale . Voici des exemples d’événements :

Événement Message
Demande de redimensionnement de cluster démarrée Scaling [up or down] to <y> executors from current cluster size of <x>
Demande de redimensionnement de cluster réussie Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
Demande de redimensionnement de cluster partiellement réussie Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
Échec de la demande de redimensionnement du cluster Achieved cluster size <x> for cluster <cluster-id> with status FAILED

Vous pouvez également afficher des événements de mise à l’échelle automatique améliorée en interrogeant directement le journal des événements :

Qu’est-ce que la mise à l’échelle automatique verticale ?

Les pipelines serverless ajoutent à la mise à l’échelle automatique horizontale fournie par Databricks la mise à l’échelle automatique améliorée en allouant automatiquement les types d’instances les plus rentables qui peuvent exécuter votre pipeline sans échouer en raison d’erreurs de mémoire insuffisante. La mise à l’échelle automatique verticale effectue un scale-up lorsque des types d’instances plus volumineux sont nécessaires pour exécuter la mise à jour d’un pipeline, et un scale-down lorsqu’elle détermine que la mise à jour peut être exécutée avec des types d’instances plus petits. La mise à l’échelle automatique verticale détermine si les nœuds de pilote, les nœuds Worker ou les nœuds de pilote et Worker doivent subir un scale-up ou un scale-down.

La mise à l’échelle automatique verticale est utilisée pour tous les pipelines serverless, y compris ceux utilisés par les vues matérialisées Databricks SQL et les tables de streaming.

La mise à l’échelle automatique verticale fonctionne en détectant les mises à jour de pipeline qui ont échoué en raison d’erreurs de mémoire insuffisante. La mise à l’échelle automatique verticale alloue des types d’instances plus volumineux lorsque ces échecs sont détectés en fonction des données hors mémoire collectées à partir de la mise à jour ayant échoué. En mode de production, une nouvelle mise à jour qui utilise les nouvelles ressources de calcul est lancée automatiquement. En mode développement, les nouvelles ressources de calcul sont utilisées lorsque vous lancez manuellement une nouvelle mise à jour.

Si la mise à l’échelle automatique verticale détecte que la mémoire des instances allouées est constamment sous-utilisée, elle effectue un scale-down des types d’instances à utiliser dans la prochaine mise à jour du pipeline.