Aller au contenu principal

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.

important

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.

Image illustrant un Job avec plusieurs exécutions et les ressources de calcul cloud associées

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.

remarque

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

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.

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.

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.