Migrer les ressources existantes vers un bundle
Lorsque vous créez votre bundle, vous souhaiterez peut-être inclure des ressources Databricks qui existent déjà et sont entièrement configurées dans le workspace distant. Vous pouvez utiliser la commande Databricks CLI bundle generate pour générer rapidement automatiquement la configuration dans votre bundle pour les applications, tableaux de bord, Jobs et pipelines existants. Voir databricks bundle generate. La configuration que vous pouvez copier et coller manuellement dans les fichiers de configuration des ressources du bundle est disponible dans l'interface utilisateur de Databricks pour certaines ressources, telles que les jobs et les pipelines.
Après avoir généré la configuration d'une ressource dans votre bundle et déployé le bundle, utilisez la commande bundle deployment bind pour lier une ressource de votre bundle à la ressource correspondante dans le workspace. Consultez databricks bundle deployment bind.
Cette page fournit des exemples simples qui utilisent la CLI Databricks ou l'interface utilisateur pour générer ou récupérer la configuration des ressources de bundle. Pour plus de détails sur les définitions de ressources dans les bundles, voir Ressources des bundles d'automatisation déclaratifs.
Vous pouvez ajouter des ressources existantes aux bundles dans le Workspace en utilisant l'interface utilisateur de Databricks. Voir Ajouter une ressource existante à un bundle.
Générer la configuration d'un Job ou d'un pipeline existant à l'aide de la CLI Databricks
Pour générer par programmation la configuration de l'ensemble pour un Job ou un pipeline existant :
-
Récupérez l'ID du job ou du pipeline existant depuis le panneau latéral **Détails du job** ou **Détails du pipeline** pour le job ou le pipeline dans l'interface utilisateur. Vous pouvez également utiliser la commande
databricks jobs listoudatabricks pipelines list-pipelinesde la CLI Databricks. -
Exécutez la commande
bundle generate joboubundle generate pipelineCLI Databricks, en définissant l'ID du Job ou du pipeline :Bashdatabricks bundle generate job --existing-job-id 6565621249Bashdatabricks bundle generate pipeline --existing-pipeline-id 6565621249Cette commande crée un fichier de configuration de bundle pour la ressource dans le dossier
resourcesdu bundle et download les artefacts référencés dans le dossiersrc.
Vous pouvez également générer une configuration pour un tableau de bord existant. Consultez Databricks bundle generate dashboard.
Générer la configuration pour un pipeline Spark existant
Pour générer programmatiquement une configuration de bundle pour un projet Spark Declarative Pipelines (SDP) (il a un fichier spark-pipeline.yml) :
-
Copiez ou déplacez l'intégralité du projet de pipeline Spark vers le dossier
srcde votre bundle. -
Exécutez la commande suivante :
Bashdatabricks pipelines generate --existing-pipeline-dir src/my_pipeline
Pour plus d’informations, consultez databricks pipelines generate.
Récupérer une définition de Job existante à l'aide de l'interface utilisateur
Pour récupérer la représentation YAML d'une définition de Job existante à partir de l'interface utilisateur du Workspace Databricks :
-
Dans la barre latérale de votre workspace Databricks, cliquez sur Tâches & Pipelines .
-
Facultativement, sélectionnez les filtres **Jobs** et **Appartenant à moi**.
-
Cliquez sur le **Link** **Nom** de votre Job.
-
À côté du bouton Exécuter maintenant , cliquez sur le bouton kebab, puis sur Modifier au format YAML .
-
Copiez le YAML et ajoutez-le au fichier
databricks.ymlde votre bundle, ou créez un fichier de configuration pour votre job dans le répertoireresourcesde votre projet de bundle et référencez-le à partir de votre fichierdatabricks.yml. See Ressources. -
Download et ajoutez tous les fichiers Python et notebooks qui sont référencés dans le job existant à la source du projet du bundle. Généralement, les artefacts de bundle se trouvent dans le répertoire
srcd’un bundle.
Vous pouvez exporter un notebook existant d'un Workspace Databricks au format .ipynb en cliquant sur Fichier > Exporter > IPython Notebook depuis l'interface utilisateur du notebook Databricks.
Après avoir ajouté vos notebooks, fichiers Python et autres artefacts au bundle, modifiez les références à ces fichiers dans votre définition de job pour qu'elles pointent vers leur emplacement local. Par exemple, si vous aviez un fichier de configuration hello_job.job.yml dans le dossier resources de votre bundle, et que vous téléchargiez un notebook nommé hello.ipynb dans le dossier src de votre bundle, le contenu du fichier hello_job.job.yml serait le suivant :
resources:
jobs:
hello_job:
name: hello_job
tasks:
- task_key: hello_task
notebook_task:
notebook_path: ../src/hello.ipynb
Pour plus d'informations sur l'affichage des jobs sous forme de code dans l'UI, consultez Afficher les jobs sous forme de code.
Récupérez une définition de pipeline existante à l'aide de l'interface utilisateur.
Pour un didacticiel qui montre comment convertir des Lakeflow pipelines existants en un projet Declarative Automation Bundles, consultez Convertir un pipeline en projet de bundle.
Pour récupérer la représentation YAML d'une définition de pipeline existante à partir de l'interface utilisateur du Databricks Workspace :
-
Dans la barre latérale de votre workspace Databricks, cliquez sur Tâches & Pipelines .
-
Vous pouvez également sélectionner le filtre Pipelines .
-
Cliquez sur le Nom de votre pipeline.
-
À côté du bouton **Développement**, cliquez sur
l'icône, puis cliquez sur **Afficher les paramètres YAML**.
-
Copiez le YAML de la définition du pipeline dans la boîte de dialogue YAML des paramètres du pipeline dans votre presse-papiers local en cliquant sur l'icône de copie.
-
Ajoutez le YAML que vous avez copié au fichier
databricks.ymlde votre bundle, ou créez un fichier de configuration pour votre pipeline dans le dossierresourcesde votre projet de bundle et référencez-le à partir de votre fichierdatabricks.yml. See Ressources. -
download et ajoutez tous les fichiers Python et Notebooks qui sont référencés dans la source du projet du bundle. Généralement, les artefacts du bundle sont situés dans le répertoire
srcd'un bundle.
Vous pouvez exporter un notebook existant d'un Workspace Databricks au format .ipynb en cliquant sur Fichier > Exporter > IPython Notebook depuis l'interface utilisateur du notebook Databricks.
Après avoir ajouté vos Notebooks, fichiers Python et autres artefacts au bundle, assurez-vous que votre définition de pipeline y fait correctement référence. Par exemple, pour un Notebook nommé hello.ipynb qui se trouve dans le répertoire src/ du bundle :
resources:
pipelines:
hello_pipeline:
name: hello_pipeline
libraries:
- notebook:
path: ../src/hello.ipynb
Lier une ressource à son homologue distant
Généralement, après avoir ajouté une ressource à votre bundle, vous voudrez vous assurer que la ressource de votre bundle et la ressource existante dans le Workspace restent synchronisées. La commande bundle deployment bind vous permet de les Link. Si vous liez une ressource, la ressource Databricks liée dans le Workspace est mise à jour en fonction de la configuration définie dans le bundle lors du prochain bundle deploy.
Pour plus d'informations sur bundle deployment bind et les détails sur la prise en charge des ressources, consultez liaison de déploiement de bundle databricks.
La commande suivante lie la ressource hello_job à son équivalent distant dans le workspace. Une confirmation s'affiche pour garantir que les mises à jour de la configuration du job dans le bundle doivent être appliquées au job distant correspondant lors du prochain déploiement du bundle.
databricks bundle deployment bind hello_job 6565621249
Pour supprimer le Link entre une ressource de bundle et son homologue dans le workspace, utilisez bundle deployment unbind. Consultez databricks bundle deployment unbind.
databricks bundle deployment unbind hello_job
Migrer une Ressource qui existe dans deux Workspace
Dans certaines configurations, la même ressource peut exister dans plusieurs Workspace. Par exemple, le même job peut se trouver dans un workspace de développement et un workspace de production. Si le job existant est ajouté au bundle et que le bundle est ensuite déployé dans l'un de ces workspaces, des jobs en double sont créés. Pour éviter cela, utilisez databricks bundle generate et databricks bundle deployment bind ensemble :
-
Définissez les cibles de développement et de production dans votre bundle
databricks.yml. -
Générer la configuration du bundle pour la ressource (dans cet exemple, un job) dans la cible de développement :
Bashdatabricks bundle generate job --existing-job-id <dev_job_id> –-target dev -
La configuration de la ressource en prod sera probablement différente de la configuration de la ressource en dev, donc maintenant que vous avez généré la configuration de la ressource, définissez les paramètres spécifiques à la production pour la ressource (dans la cible prod) dans le bundle.
YAMLtargets:
dev:
default: true
#...
prod:
#...
resources:
jobs:
my_job:
# Job prod settings -
Liez la ressource dans le bundle au Job existant dans les cibles de développement et de production :
Bashdatabricks bundle deployment bind my_job <dev_job_id> --target devBashdatabricks bundle deployment bind my_job <prod_job_id> --target prod
Le bundle peut maintenant être déployé vers les deux environnements :
databricks bundle deploy --target dev
databricks bundle deploy --target prod