Configurer les versions d'environnement pour les pipelines
Aperçu public
Les versions d’environnement pour LakeFlow Pipelines sont en aperçu public.
Une version d'environnement pin la version du langage Python et l'ensemble des bibliothèques Python préinstallées disponibles pour le code Python de votre pipeline. Toutes les dépendances externes que vous ajoutez au pipeline sont superposées à cette base.
Les versions d'environnement dissocient le runtime Python de votre pipeline de la version de Databricks Runtime sur laquelle votre pipeline s'exécute. Lorsqu'une version d'environnement est définie, les mises à niveau de Databricks Runtime ne modifient pas votre version du langage Python ou les versions des bibliothèques préinstallées. Le runtime Python est également cohérent avec les Jobs serverless et les notebooks qui utilisent la même version d'environnement. Pour trouver la version actuelle de Databricks Runtime pour les Lakeflow Pipelines, consultez les notes de publication de Lakeflow Pipelines et le processus de mise à niveau de la version.
Databricks migre automatiquement les pipelines éligibles vers une version d’environnement. Voir Migration automatique.
Les pipelines dotés d'une version d'environnement exécutent le code Python via Spark Connect, ce qui peut modifier le comportement de certains codes de pipeline. Pour obtenir la liste complète des limitations et des changements de comportement, consultez la compatibilité des versions d'environnement.
Exigences
Les versions d'environnement ont les exigences suivantes :
- Le pipeline doit utiliser Unity Catalog. Les pipelines Hive metastore ne sont pas pris en charge.
Versions d'environnement prises en charge
Les LakeFlow Pipelines prennent en charge les versions d'environnement **3** et **4** sur les compute Serverless et classiques. Pour la version du langage Python et la liste complète des bibliothèques Python préinstallées disponibles dans chaque version, consultez la référence de la version de l'environnement.
Migration automatique
Databricks migre automatiquement les pipelines éligibles vers une version d’environnement. La migration a lieu lors de la prochaine mise à jour du pipeline, ne nécessite aucune étape manuelle et inclut les protections suivantes :
- Le comportement est vérifié avant la migration. Databricks analyse votre pipeline à la recherche de modèles de code qui se comporteraient différemment sous Spark Connect et compare le plan de sortie du pipeline avant et après la migration. Voir Compatibilité des versions d’environnement.
- Une migration ayant échoué est automatiquement rétablie. Si une mise à jour migrée échoue pour quelque raison que ce soit, elle est arrêtée avant toute écriture de données , et le pipeline revient automatiquement à son runtime précédent lors de la mise à jour suivante. Aucune action n'est requise.
- Vos paramètres explicites sont toujours respectés. Si vous définissez
environment_versionvous-même, Databricks ne le remplace jamais.
Une fois qu’un pipeline est migré avec succès, il s’exécute sur la version de l’environnement par la suite. Vous pouvez voir la version qui a été sélectionnée dans les paramètres du pipeline, la réponse de l’API GetPipeline et le journal des événements runtime_details.
Ce qui n’est pas migré automatiquement
Un pipeline n’est pas migré automatiquement si l’un des cas suivants s’applique :
- Il présente des avertissements de compatibilité Spark Connect non résolus depuis sa mise à jour la plus récente.
- Il ne s’agit pas d’un pipeline Unity Catalog.
- Il utilise une fonctionnalité que la migration automatique ne couvre pas encore :
foreach_batchrécepteurs, hooks d'événement, AUTO CDC à partir d'une source de fonction d'instantané, ou une image personnalisée.
Les pipelines qui ne sont pas migrés automatiquement continuent de s’exécuter sur leur runtime Python précédent sans changement. Vous pouvez activer vous-même une version d’environnement une fois que le pipeline est éligible.
Activer vous-même une version de l’environnement
La migration automatique couvre la plupart des pipelines. Vous pouvez également configurer explicitement une version d’environnement, par exemple pour migrer plus tôt ou pour pin une version spécifique, via l’interface utilisateur de l’éditeur de pipeline, l’API REST Pipelines ou Declarative Automation Bundles.
Avant d’activer explicitement une version d’environnement, vérifiez que votre pipeline est compatible avec Spark Connect. Si Databricks détecte que l’activation de la version modifierait le comportement de votre pipeline, la mise à jour échoue avant toute écriture de données, avec une erreur identifiant la différence à résoudre.
Activer via l'interface utilisateur
- Dans l'éditeur de pipeline, cliquez sur Paramètres .
- Sous **Environnement
du pipeline**, sélectionnez **Modifier l'environnement**.
- Sélectionnez une version d'environnement dans la liste déroulante.
- Enregistrez les paramètres du pipeline.
Les dépendances externes ajoutées dans la section Environnement du Pipeline sont superposées aux bibliothèques incluses avec la version d'environnement sélectionnée. Voir Gérer les dépendances Python pour les pipelines.
Activer via l'API
L’API REST Pipelines accepte un bloc environment lors de la création et de la mise à jour du pipeline. L'authentification par jeton d'accès personnel doit être activée pour le workspace.
Pour créer un pipeline avec une version d'environnement :
curl --request POST \
--url 'https://<workspace-host>/api/2.0/pipelines' \
--header 'Authorization: Bearer <personal-access-token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "<pipeline-name>",
"catalog": "<catalog>",
"schema": "<schema>",
"channel": "CURRENT",
"environment": {
"environment_version": "4",
"dependencies": [
"simplejson==3.19.*"
]
}
}'
Pour définir la version de l'environnement sur un pipeline existant, envoyez le même bloc environment avec PUT /api/2.0/pipelines/<pipeline-id>.
Activer via les Declarative Automation Bundles
Lorsque vous créez un pipeline à l'aide de Declarative Automation Bundles, vous pouvez définir une version d'environnement dans la définition YAML du pipeline.
- Assurez-vous que votre Databricks CLI est à la version **v0.294.0** ou ultérieure. Si ce n'est pas le cas, mettez à niveau en suivant le guide d'installation.
- Configurez un bundle en suivant le tutoriel du bundle de pipelines.
- Localisez le pipeline YAML dans votre bundle, généralement
<bundle-folder>/resources/<pipeline_name>_pipeline.yml. - Définir les champs
environment_versionetdependenciesdans le fichier YAML du pipeline :
resources:
pipelines:
my_pipeline:
name: my_pipeline
catalog: ${var.catalog}
schema: ${var.schema}
root_path: '../src/my_pipeline'
libraries:
- glob:
include: ../src/my_pipeline/transformations/**
environment:
environment_version: 4
dependencies:
- --editable ${workspace.file_path}
Vérifiez la version de l'environnement sur un pipeline
Pour vérifier quelle version d’environnement un pipeline exécute, que vous l’ayez définie explicitement ou que Databricks l’ait sélectionnée lors de la migration automatique:
- UI : ouvrez les paramètres du pipeline et vérifiez la section Environnement de pipeline , ou inspectez le volet JSON pour le champ
environment.environment_version. - API : appelez
GET /api/2.0/pipelines/<pipeline-id>et recherchezenvironment.environment_versiondans la réponse. Ceci affiche une version que vous avez définie explicitement ; pour voir une version sélectionnée par migration automatique, utilisez le log ci-dessous. - Logs : Inspectez l’événement
runtime_details, qui indique la version de l’environnement utilisée pour la mise à jour. Voir les détails de l’événement runtime_details.
Désactiver ou restaurer une version d’environnement
Vous n’avez pas besoin d’annuler manuellement une migration automatique. Une migration qui échoue est annulée automatiquement lors de la mise à jour suivante. Lorsque la version de l’environnement est supprimée, le pipeline revient à sa configuration de runtime Python précédente. En cas d’événement inattendu, contactez l’assistance Databricks.
Ressources supplémentaires
- Compatibilité de la version d’environnement — limitations, changements de comportement, analyse de compatibilité et migration automatique.
- Gérer les dépendances Python pour les pipelines — en superposant des dépendances Python externes à une version d'environnement.