Partager via


Migrer des ressources existantes vers un bundle

Lors de la génération de votre bundle, vous pouvez inclure des ressources Databricks qui existent déjà et qui sont entièrement configurées dans l’espace de travail distant. Vous pouvez utiliser la commande Databricks CLI bundle generate pour générer rapidement la configuration de votre offre groupée pour les applications existantes, les tableaux de bord, les travaux et les pipelines. Consultez databricks bundle generate. La configuration que vous pouvez copier et coller manuellement dans les fichiers de configuration des ressources groupées est disponible dans l’interface utilisateur Databricks pour certaines ressources, telles que les travaux et les pipelines.

Une fois que vous avez généré la configuration d’une ressource dans votre bundle et déployé le bundle, utilisez la bundle deployment bind commande pour lier une ressource dans votre bundle à la ressource correspondante dans l’espace de travail. Voir databricks bundle deployment bind.

Cette page fournit des exemples simples qui utilisent l’interface cli ou l’interface utilisateur Databricks pour générer ou récupérer la configuration des ressources groupées.

Pour plus d’informations sur les définitions de ressources dans les bundles, consultez les ressources Databricks Asset Bundles.

Générer une configuration de travail ou de pipeline existante à l’aide de l’interface CLI Databricks

Pour générer par programme une configuration groupée pour un travail ou un pipeline existant :

  1. Récupérez l'ID du travail ou du pipeline existant à partir des Détails du travail ou des Détails du pipeline dans le panneau latéral de l'interface utilisateur pour le travail ou le pipeline. Vous pouvez également utiliser l’interface CLI databricks jobs list ou la commande Databricks databricks pipelines list-pipelines.

  2. Exécutez la commande bundle generate jobbundle generate pipeline Databricks, en définissant l’ID de travail ou de pipeline :

    databricks bundle generate job --existing-job-id 6565621249
    
    databricks bundle generate pipeline --existing-pipeline-id 6565621249
    

    Cette commande crée un fichier de configuration groupé pour la ressource dans le dossier du resources bundle et télécharge tous les artefacts référencés dans le src dossier.

Vous pouvez également générer une configuration pour un tableau de bord existant. Consultez le tableau de bord de génération de bundle databricks.

Récupérer une définition de travail existante à l’aide de l’interface utilisateur

Pour récupérer la représentation YAML d’une définition de travail existante à partir de l’interface utilisateur de l’espace de travail Azure Databricks :

  1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Travaux & Pipelines.

  2. Vous pouvez aussi sélectionner les filtres Travaux et Je suis le propriétaire.

  3. Cliquez sur le lien Nom de votre travail.

  4. À côté du bouton Exécuter maintenant, cliquez sur le menu (kebab), puis sur Modifier sous format YAML.

  5. Copiez le fichier YAML et ajoutez-le au fichier de databricks.yml votre bundle, ou créez un fichier de configuration pour votre travail dans le resources répertoire de votre projet groupé et référencez-le à partir de votre databricks.yml fichier. Consultez les ressources.

  6. Téléchargez et ajoutez tous les fichiers et notebooks Python référencés dans la tâche existante à la source du projet du bundle. En règle générale, les artefacts groupés se trouvent dans le src répertoire d’un bundle.

    Conseil / Astuce

    Vous pouvez exporter un notebook existant à partir d’un espace de travail Azure Databricks dans le .ipynb format en cliquant sur File > Export > IPython Notebook à partir de l’interface utilisateur du notebook Azure Databricks.

    Après avoir ajouté vos notebooks, fichiers Python et autres artefacts au paquet, remplacez les références à ces fichiers dans votre définition de tâche par leur emplacement local. Par exemple, si vous aviez un hello_job.job.yml fichier de configuration dans le resources dossier de votre offre groupée et que vous avez téléchargé un bloc-notes nommé hello.ipynb dans le src dossier de votre bundle, le contenu du hello_job.job.yml fichier 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 travaux en tant que code dans l’interface utilisateur, consultez Afficher les travaux en tant que code.

Récupérer une définition de pipeline existante à l’aide de l’interface utilisateur

Pour récupérer la représentation YAML d’une définition de pipeline existante à partir de l’interface utilisateur de l’espace de travail Azure Databricks :

  1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur Travaux & Pipelines.

  2. Si vous le souhaitez, sélectionnez le filtre Pipelines .

  3. Cliquez sur le Nom de votre pipeline.

  4. En regard du bouton Développement , cliquez sur l’icône de menu Kebab, puis cliquez sur Afficher les paramètres YAML.

  5. Copiez le YAML de la définition de pipeline dans la boîte de dialogue Paramètres de pipeline YAML dans le Presse-papiers local en cliquant sur l’icône de copie.

  6. Ajoutez le fichier YAML que vous avez copié dans le fichier de databricks.yml votre bundle, ou créez un fichier de configuration pour votre pipeline dans le resources dossier de votre projet groupé et référencez-le à partir de votre databricks.yml fichier. Consultez les ressources.

  7. Téléchargez et ajoutez tous les fichiers et notebooks Python référencés à l'ensemble du projet source. En règle générale, les artefacts groupés se trouvent dans le src répertoire d’un bundle.

    Conseil / Astuce

    Vous pouvez exporter un notebook existant à partir d’un espace de travail Azure Databricks dans le .ipynb format en cliquant sur File > Export > IPython Notebook à partir de l’interface utilisateur du notebook Azure Databricks.

    Après avoir ajouté vos notebooks, fichiers Python et autres artefacts au regroupement, assurez-vous que la définition de votre pipeline les référence correctement. Par exemple, pour un notebook nommé hello.ipynb qui se trouve dans l’annuaire src/ du regroupement :

    resources:
      pipelines:
        hello_pipeline:
          name: hello_pipeline
          libraries:
            - notebook:
                path: ../src/hello.ipynb
    

Lier une ressource à son équivalent distant

En règle générale, une fois que vous avez ajouté une ressource à votre offre groupée, vous devez vous assurer que la ressource dans votre bundle et la ressource existante dans l’espace de travail restent synchronisées. La bundle deployment bind commande vous permet de les lier. Si vous liez une ressource, la ressource Azure Databricks liée dans l’espace de travail est mise à jour en fonction de la configuration définie dans le bundle suivant bundle deploy.

Pour plus d’informations sur bundle deployment bind et sur la prise en charge des ressources, consultez le déploiement du bundle databricks.

La commande suivante lie la ressource hello_job à son équivalent distant dans l’espace de travail. Vous demande de confirmer que les mises à jour de la configuration de la tâche dans le paquet doivent s'appliquer à la tâche distante correspondante lors du prochain déploiement du paquet.

databricks bundle deployment bind hello_job 6565621249

Pour supprimer le lien entre une ressource groupée et son équivalent dans l’espace de travail, utilisez bundle deployment unbind. Consultez databricks bundle deployment unbind.

databricks bundle deployment unbind hello_job

Migrer une ressource qui existe dans deux espaces de travail

Dans certaines configurations, la même ressource peut exister dans plusieurs espaces de travail. Par exemple, la même tâche peut se trouver dans un espace de développement et un espace de production. Si la tâche existante est ajoutée à l'ensemble et que l'ensemble est déployé sur l'un de ces environnements de travail, des tâches en double sont créées. Pour éviter cela, utilisez databricks bundle generate et databricks bundle deployment bind ensemble :

  1. Définissez les cibles dev et prod dans votre bundle databricks.yml.

  2. Générez la configuration de bundle pour la ressource (dans cet exemple, un travail) dans la cible de développement :

    databricks bundle generate job --existing-job-id <dev_job_id> –-target dev
    
  3. La configuration de la ressource dans prod sera probablement différente de la configuration de la ressource dans le développement. Ainsi, 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.

    targets:
      dev:
        default: true
        #...
      prod:
        #...
        resources:
          jobs:
            my_job:
              # Job prod settings
    
  4. Liez la ressource dans le bundle au travail existant dans les cibles de développement et de production :

    databricks bundle deployment bind my_job <dev_job_id> --target dev
    
    databricks bundle deployment bind my_job <prod_job_id> --target prod
    

L’offre groupée peut maintenant être déployée dans les deux environnements :

databricks bundle deploy --target dev
databricks bundle deploy --target prod