Configurer le compute pour les Jobs
Configurez le compute serverless ou classique pour les tâches d’un LakeFlow Job, et choisissez le bon type pour chaque tâche.
Les limitations pour le compute serverless pour les jobs incluent les éléments suivants :
- La planification continue est prise en charge uniquement avec des Trigger Structured Streaming limités tels que
Trigger.AvailableNow. Consultez Exécuter des jobs en continu. - Pas de prise en charge des Trigger d'intervalle default ou basés sur le temps dans Structured Streaming.
Pour plus de limites, consultez limites du compute Serverless.
Chaque Job peut avoir une ou plusieurs tâches. Vous définissez les ressources de compute pour chaque tâche. Plusieurs tâches définies pour le même Job peuvent utiliser la même ressource de compute.

Compute recommandé pour chaque tâche
Le tableau suivant indique les types de compute recommandés et pris en charge pour chaque type de tâche.
Le Serverless compute pour les Jobs a des limitations et ne prend pas en charge toutes les charges de travail. Voir les limites du compute serverless.
Tâche | Compute recommandé. | Compute pris en charge |
|---|---|---|
Notebooks | Jobs Serverless | Jobs Serverless, Jobs classiques, polyvalents classiques |
Script Python | Jobs Serverless | Jobs Serverless, Jobs classiques, polyvalents classiques |
Python wheel | Jobs Serverless | Jobs Serverless, Jobs classiques, polyvalents classiques |
SQL | Serverless SQL Warehouse | SQL Warehouse Serverless, SQL Warehouse Pro |
LakeFlow Pipelines | Pipeline serverless | Pipeline Serverless, pipeline classique |
dbt | Serverless SQL Warehouse | SQL Warehouse Serverless, SQL Warehouse Pro |
commandes CLI dbt | Jobs Serverless | Jobs Serverless, Jobs classiques, polyvalents classiques |
JAR | Jobs classiques | Jobs classiques, classiques tout usage |
Spark Submit | Jobs classiques | Jobs classiques |
Les tarifs de Lakeflow Jobs sont liés au compute utilisé pour exécuter les tâches. Pour plus de détails, voir Tarifs Databricks.
Configurer le compute pour les Jobs
Le compute de jobs classiques est configuré directement depuis l'interface utilisateur de Lakeflow Jobs, et ces configurations font partie de la définition du job. Tous les autres types de compute disponibles stockent leurs configurations avec d'autres assets du workspace. Le tableau suivant contient plus de détails :
Type de compute | Détails |
|---|---|
Calcul compute pour les jobs classiques | Vous configurez le compute pour les Jobs classiques à l’aide de la même interface utilisateur et des mêmes paramètres que ceux disponibles pour le compute polyvalent. Consultez la référence de configuration compute. |
Serverless compute pour les jobs | Le compute Serverless pour les jobs est le default pour toutes les tâches qui le prennent en charge. Databricks gère les paramètres de compute pour le compute Serverless. Voir Exécutez vos Lakeflow Jobs avec le compute serverless pour les workflows. |
SQL Warehouse | Les SQL Warehouses Serverless et Pro sont configurés par les administrateurs de Workspace ou les utilisateurs disposant de privilèges illimités de création de clusters. Vous configurez des tâches à exécuter sur des SQL warehouses existants. Consulter Se connecter à un SQL Warehouse. |
LakeFlow Pipelines compute | Vous configurez les paramètres de compute pour les LakeFlow Pipelines pendant la configuration du pipeline. Consultez Configurer le compute classique pour les pipelines. Databricks gère les ressources de compute pour les pipelines Serverless LakeFlow Pipelines. Consultez Configurer un pipeline Serverless. |
Compute polyvalent | Vous pouvez éventuellement configurer des tâches en utilisant le compute classique polyvalent. Databricks ne recommande pas cette configuration pour les Jobs de production. Voir référence de configuration Compute et exceptions limitées. |
Partager le compute entre les tâches
Configurez les tâches pour utiliser les mêmes ressources de compute de Jobs afin d'optimiser l'utilisation des ressources avec les Jobs qui orchestrent plusieurs tâches. Le partage du compute entre les tâches peut réduire la latence associée aux temps de start-up.
Vous pouvez utiliser une seule ressource de compute de job pour exécuter toutes les tâches faisant partie du job ou plusieurs ressources de job optimisées pour des charges de travail spécifiques. Tout compute de job configuré dans le cadre d'un job est disponible pour toutes les autres tâches du job.
Le tableau suivant met en évidence les différences entre le compute de Job configuré pour une tâche unique et le compute de Job partagé entre les tâches :
Tâche unique | Partagé entre les tâches | |
|---|---|---|
Démarrer | Lorsque l'exécution de la tâche commence. | Lorsque la première exécution de tâche configurée pour utiliser la ressource de compute commence. |
Terminer | Après l’exécution de la tâche. | Une fois la tâche finale configurée pour utiliser la ressource de compute exécutée. |
Compute inactif | Non applicable. | Le compute reste activé et inactif pendant que les tâches n'utilisant pas la ressource de compute s'exécutent. |
Un cluster de Job partagé est limité à une seule exécution de Job et ne peut pas être utilisé par d'autres Jobs ou d'autres exécutions du même Job.
Les bibliothèques ne peuvent pas être déclarées dans une configuration de cluster de job partagée. Vous devez ajouter des bibliothèques dépendantes dans les paramètres de tâche.
État du driver partagé entre les tâches.
Lorsque plusieurs tâches partagent une ressource de compute de Jobs, les tâches s'exécutent sur la même JVM Driver. L'état de la classe et les singletons persistent entre les tâches pendant la durée de l'exécution du Job. Pour la plupart des charges de travail, cela est transparent, mais soyez conscient des implications suivantes :
- Les singletons et les objets compagnons Scala sont partagés entre les tâches. L'état mutable dans un objet compagnon Scala persiste entre les tâches qui s'exécutent sur le même cluster partagé. Si des tâches parallèles accèdent en lecture ou en écriture à la même variable d'objet compagnon, la valeur d'une tâche peut écraser celle d'une autre. Pour un exemple pratique, consultez l'article de la Base de connaissances Workflows multi-tâches utilisant des valeurs de paramètre incorrectes.
- Les bibliothèques chargées par une tâche restent disponibles pour les tâches ultérieures pendant toute la durée de l'exécution du job.
Si votre code nécessite une isolation au niveau des tâches, utilisez l'une des approches suivantes :
- Configurez chaque tâche pour utiliser une ressource de compute de job distincte.
- Ajoutez des dépendances de tâche explicites afin que les tâches s'exécutent séquentiellement plutôt qu'en parallèle.
- Refactorisez le code afin d'éviter de vous fier à un état mutable singleton ou partagé. Par exemple, passez les paramètres explicitement à chaque fonction au lieu de les lire à partir d'un objet compagnon.
Examinez, configurez et échangez le compute des jobs
La section Compute du volet Détails du Job répertorie tous les compute configurés pour les tâches du job actuel.
Les tâches configurées pour utiliser une ressource de compute sont mises en évidence dans le graphe des tâches lorsque vous passez la souris sur la spécification du compute.
Utilisez le bouton **Swap** pour modifier le compute de toutes les tâches associées à une Ressource de compute.
Les ressources compute des Jobs classiques disposent d’une option Configurer . D’autres ressources compute vous offrent des options pour afficher et modifier les détails de la configuration du compute.
Ressources supplémentaires
Pour plus de détails sur la configuration des jobs classiques Databricks, consultez Configurer le compute classique pour les Lakeflow Jobs.