Diagnostiquer les performances des Lakeflow Jobs
Lorsqu'un Job ou une tâche prend plus de temps que prévu, utilisez l'interface utilisateur des Jobs pour comprendre où le temps est passé et ce que vous pouvez faire pour le réduire. Cette page couvre la répartition des exécutions, les métriques de tâche de streaming et les métriques de performance des query pour les jobs Serverless. Pour trouver et ouvrir les exécutions de job, consultez Surveiller les Lakeflow Jobs.
Afficher la répartition de l'exécution par phase
La répartition de l'exécution montre où une exécution de job ou de tâche passe du temps. Lorsque vous consultez les détails d'exécution du job, survolez la Durée de l'exécution pour voir la durée totale décomposée en phases suivantes :
- En attente
- En attente de ressources
- Installation de la bibliothèque
- En cours d'exécution

La ventilation de l’exécution est disponible pour les exécutions de Job et les exécutions de tâches. Pour un job comportant plusieurs tâches, la répartition au niveau du job compte En attente de ressources seulement jusqu'à ce que la première tâche start son exécution. Pour une ventilation complète de chaque tâche, consultez la ventilation d'exécution dans le résultat d'exécution de la tâche.
Utilisez la ventilation pour identifier la phase qui prend le plus de temps, puis utilisez les sections suivantes pour comprendre les causes possibles et ce que vous pouvez faire pour réduire ce temps.
Les tâches de pipeline ont des phases différentes de la plupart des tâches. Ils sont : créés, en attente de ressources, en cours d'initialisation, en cours de configuration des tables et en cours d'exécution. Pour obtenir des conseils sur la réduction des temps d'initialisation et de configuration de table élevés, consultez Corriger les temps d'initialisation élevés dans les pipelines.
Phase en file d'attente
Votre Job ou tâche est en attente de start en raison des limites de concurrence.
Causes possibles :
- Le Job a atteint sa limite d'exécutions simultanées maximales car une exécution précédente du même Job est toujours en cours.
- D'autres jobs exécutés simultanément ont atteint la limite d'exécution concurrente au niveau du workspace.
Ce que vous pouvez faire :
- Augmentez le paramètre de nombre maximal d'exécutions simultanées pour le job.
- Passez en revue vos plannings de Jobs pour réduire les chevauchements. Si les Jobs sont constamment en concurrence pour les ressources, envisagez d'échelonner leurs heures de start. Pour plus d'informations, consultez les limites de ressources Databricks.
Phase d'attente de ressources
Votre Job ou votre tâche attend que le compute devienne disponible avant de pouvoir start à s'exécuter. Ce que vous pouvez faire pour réduire le temps d'attente dépend de votre type de compute.
Type de compute | Causes possibles | Ce que vous pouvez faire |
|---|---|---|
Serverless | Le job serverless utilise le mode de performance standard, qui a une latence de Startup de 4 à 6 minutes, selon la disponibilité du compute et si vous utilisez Spark. | Passez en mode optimisé pour les performances pour réduire le temps de startup. |
Classique |
|
|
Phase d'installation de la bibliothèque
Votre Job passe du temps à installer des bibliothèques avant de commencer à s'exécuter.
Type de compute | Causes possibles | Ce que vous pouvez faire |
|---|---|---|
Serverless |
|
|
Classique | Le temps d'installation des bibliothèques est élevé en raison de la taille et de la complexité de l'environnement défini sur le cluster, surtout lorsque vous utilisez des scripts d'initialisation pour installer les bibliothèques au Startup du cluster. | Vérifiez que le job utilise uniquement les packages nécessaires à l'exécution. |
Phase d'exécution
Une exécution peut prendre plus de temps que prévu pour de nombreuses raisons. La liste suivante n'est pas exhaustive, mais elle couvre certaines causes courantes et actions possibles.
Causes possibles :
- Le volume de données a augmenté, une durée d'exécution plus longue pourrait donc être attendue.
- Configuration du Job ou du compute modifiée.
- Les modifications de code ont entraîné des query plus lentes ou des Opérations inefficaces.
Ce que vous pouvez faire :
- Passez en revue les modifications récentes à l'aide des tables système Databricks, telles que les tables système des Jobs et les tables système de compute.
- Pour les Jobs Serverless, utilisez l'historique des queries pour trouver les queries qui ont pris le plus de temps, et ouvrez leur profil de query pour identifier les opportunités d'optimisation. Pour trouver les queries pertinentes, utilisez le Link dans la section **Compute** de chaque tâche, ou ouvrez la vue Chronologie du Job, qui s'intègre aux profils de query.
- Pour les jobs exécutés sur compute classique, utilisez l'Spark UI pour diagnostiquer les étapes et les tâches lentes. start avec la chronologie des événements pour repérer les Job de longue durée, les périodes d'inactivité ou les échecs, puis approfondissez les étapes et les tâches individuelles pour obtenir des détails.
Pour les jobs Serverless, vous pouvez obtenir des métriques de tâche supplémentaires (préversion publique) et des métriques de performance de query (bêta).
Afficher les métriques pour les tâches de streaming
Aperçu
L’observabilité du streaming pour les Lakeflow Jobs est en Aperçu public.
L'interface utilisateur de Lakeflow Jobs fournit des métriques d'observabilité de streaming pour les charges de travail de streaming sur la page Détails d'exécution des Jobs . Ces métriques incluent les secondes de backlog, les octets de backlog, les enregistrements de backlog et les fichiers de backlog pour les sources prises en charge par Spark Structured Streaming, y compris Apache Kafka, Amazon Kinesis, Auto Loader, Google Pub/Sub et les tables Delta. Lorsque vous affichez les détails d'exécution d'une tâche, les métriques apparaissent sous forme de graphiques dans le volet de droite. Chaque graphique affiche les valeurs maximales agrégées par minute, pour les 48 dernières heures.
Chaque source de streaming ne prend en charge que des métriques spécifiques. L'interface utilisateur affiche uniquement les métriques prises en charge par une source de streaming. Le tableau suivant présente les métriques disponibles pour les sources de streaming prises en charge :
Source | octets de backlog | enregistrements du backlog | secondes de backlog | fichiers de backlog |
|---|---|---|---|---|
Kafka | ✓ | ✓ | ||
Kinesis | ✓ | ✓ | ||
Delta | ✓ | ✓ | ||
Auto Loader | ✓ | ✓ | ||
Google Pub/Sub | ✓ | ✓ |
Vous pouvez également spécifier des threshold pour chaque métrique de streaming et configurer des notifications si un Stream dépasse un threshold lors de l'exécution d'une tâche. Consultez Configurer les notifications pour les Jobs lents.
Pour afficher les métriques de streaming pour une exécution de tâche qui diffuse des données depuis l’une des sources Structured Streaming prises en charge :
- Sur la page Détails de l'exécution du Job , cliquez sur la tâche pour laquelle vous souhaitez afficher les métriques.
- Cliquez sur le **tab** Metrics dans le volet **Task run**.
- Pour ouvrir le Graphe d'une métrique, cliquez sur
à côté du nom de la métrique.
- Pour afficher les métriques d'un stream spécifique, entrez l'ID du stream dans la zone de texte Filtrer par stream_id . Vous pouvez trouver l'ID de stream dans la sortie de l'exécution du job.
- Pour modifier la période des graphiques de métriques, utilisez le menu déroulant temporel.
- Pour naviguer entre les Stream si l'exécution contient plus de dix Stream, cliquez sur Suivant ou Précédent .
Limites d'observabilité du streaming
- Databricks met à jour les métriques toutes les minutes, à moins qu'une exécution n'ait plus de quatre Stream. Si une exécution a plus de quatre streams, Databricks met à jour les métriques toutes les cinq minutes.
- Databricks collecte les métriques uniquement pour les cinquante premiers flux de chaque exécution.
- Databricks collecte des métriques à des intervalles d'une seconde. Les métriques peuvent ne pas être visibles si votre paramètre
triggerIntervalest inférieur à une seconde. - La plupart des sources de données collectent les métriques de streaming par default. Cependant, pour d'autres, vous devez activer cette fonctionnalité. Si votre source de données ne collecte pas les métriques de streaming, définissez l'indicateur
spark.sql.streaming.metricsEnabledsurTrue.
Afficher les métriques de performance des requêtes pour les jobs serverless
Bêta
Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.
Lorsque vous exécutez un Job serverless, Databricks affiche des métriques Query Profile sélectionnées et des insights de performance directement dans l'interface utilisateur d'exécution du Job, afin que vous puissiez identifier les problèmes de performance sans ouvrir de profil de query distinct pour chaque query. Utilisez ces métriques pour examiner pourquoi une exécution est lente ou pour comparer les performances entre deux exécutions.
Avant de pouvoir consulter ces métriques :
- L'aperçu **Observabilité des performances Lakeflow améliorée** doit être activé pour votre workspace. Les administrateurs du workspace peuvent l'activer depuis la page Préversions.
- Votre Workspace doit avoir accès aux informations sur les performances des queries. Sans cela, les indicateurs lumineux n'apparaissent pas, bien que les mesures agrégées (lignes lues, lignes écrites et nombre total de query) s'affichent toujours.
Databricks affiche les métriques suivantes, agrégées à partir des requêtes d'une exécution de Job serverless :
- Lignes lues et lignes écrites par exécution de tâche.
- Nombre total de requêtes par exécution de tâche.
- Un **indicateur d'insights de performance** (ampoule) sur une tâche lorsqu'une ou plusieurs query de cette tâche ont des insights de performance.
Ces métriques apparaissent à différents endroits selon la manière dont vous visualisez le run :
Où il apparaît | Ce que vous voyez |
|---|---|
Barre latérale d'exécution de tâche | Lignes lues et écrites, nombre total de query et un indicateur d’insights pour l’exécution de la tâche. |
Vue DAG | Un icône d'ampoule sur un nœud de tâche lorsque l'une des queries de la tâche a des insights de performances. |
Vue chronologique | Une ampoule à côté du nom de la tâche avec un nombre d'insight sur l'ensemble des queries de la tâche, plus une ampoule sur chaque query de la tâche qui contient des insights. |
Vue Liste | Une ampoule dans la colonne **Insights** lorsque les queries d'une tâche ont des informations sur les performances. Si vous ne voyez pas cette colonne, ajoutez-la à partir du sélecteur de colonne. |
La vue chronologique est désormais disponible pour les jobs à tâche unique dans le cadre de cette version bêta. Auparavant, seuls les jobs multi-tâches disposaient d'une vue chronologique.
Comportement de clic et de survol :
- Dans la vue Chronologie , passez la souris sur une tâche pour afficher ses métriques agrégées et les insights sur les performances des queries de la tâche.
- Dans la vue DAG ou la vue Liste , cliquez sur l'ampoule d'une tâche pour ouvrir la vue Chronologie avec les queries de cette tâche développées.
- Dans la vue Chronologie , cliquez sur le texte de la query d'une query qui a une ampoule pour ouvrir un volet avec un aperçu des insights de performance pour cette query.
Pour savoir pourquoi un Job Serverless s'exécute plus lentement que prévu :
-
Ouvrez l’exécution du job.
-
Passez à l' affichage Chronologie .
-
Identifiez les tâches dont la durée est supérieure à celle attendue, en fonction de la distribution des durées.
-
Survolez une tâche de longue durée pour voir :
- Lignes lues et lignes écrites : vérifiez si la tâche a traité plus de données que d'habitude.
- Nombre total de requêtes : repérer les changements dans le profil de la charge de travail.
- L' indicateur d'insights de performance : repérer les régressions ou les modifications de code inefficaces.
-
Si un volume de données plus élevé explique l'augmentation de la durée, le ralentissement pourrait être attendu. Sinon, développez la tâche dans la chronologie pour voir ses queries individuelles. Les queries avec des insights détectés affichent une ampoule à côté d'elles.
-
Cliquez sur le **texte de la query** d'une query avec une ampoule pour ouvrir un volet avec les analyses de performance pour cette query.
-
Appliquez les modifications recommandées et réexécutez le job pour confirmer que le problème est résolu.
Pour la liste complète des insights et leur signification, consultez Insights sur les performances des query. Pour des détails plus approfondis sur l'exécution de la query, consultez le profil de la query.
Comparaison de deux exécutions
Ces mêmes métriques facilitent la détection des différences entre une exécution lente et une exécution rapide précédente. Ouvrez les deux exécutions côte à côte et comparez :
- Lignes lues et lignes écrites pour identifier les changements dans le volume de données.
- **Nombre total de requêtes** pour identifier les changements de forme de la charge de travail.
- Des insights de performance pour identifier les inefficacités introduites depuis l'exécution précédente.
Limites des métriques de performance de query
- Ces métriques et insights s'appliquent uniquement aux Lakeflow Jobs Serverless . Les exécutions de Job sur compute classique n'affichent pas cette information.
- Databricks agrège les métriques des 100 premières requêtes d’une exécution de Job. Si une exécution comporte plus de requêtes, les totaux ne reflètent que les 100 premières.