Partager via


bundle groupe de commande

Remarque

Ces informations s’appliquent à Databricks CLI versions 0.205 et ultérieures. L’interface CLI Databricks est en préversion publique.

L’utilisation de l’interface CLI Databricks est soumise à la licence Databricks et à la notification de confidentialité Databricks, y compris les dispositions relatives aux données d’utilisation.

Le groupe de commandes bundle au sein de Databricks CLI vous permettent de valider, de déployer et d’exécuter par programmation des flux de travail Azure Databricks, tels que les travaux Azure Databricks, les pipelines Delta Live Tables et les piles MLOps. Consultez Que sont les packs de ressources Databricks ?.

Vous exécutez les commandes bundle en les ajoutant à databricks bundle. Pour afficher l’aide sur la commande bundle, exécutez databricks bundle -h.

Créer un lot à partir d’un modèle de pack

Pour créer un bundle de ressources Databricks à l’aide du modèle Databricks Asset Bundle par défaut pour Python, exécutez la bundle init commande comme suit, puis répondez aux invites à l’écran :

databricks bundle init

Pour créer un ensemble de ressources Databricks à l’aide d’un modèle Databricks Asset Bundle personnalisé, exécutez la bundle init commande comme suit :

databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"

Voir aussi :

Afficher le schéma de configuration du pack

Pour afficher le schéma de configuration du pack de ressources Databricks, exécutez la commande bundle schema comme suit :

databricks bundle schema

Pour renvoyer le schéma de la configuration du pack de ressources Databricks en tant que fichier JSON, exécutez la commande bundle schema et redirigez la sortie vers un fichier JSON. Par exemple, vous pouvez générer un fichier nommé bundle_config_schema.json dans le répertoire actif, comme suit :

databricks bundle schema > bundle_config_schema.json

Valider un pack

Pour vérifier que vos fichiers de configuration du pack sont syntaxiquement corrects, exécutez la commande bundle validate à partir de la racine du projet du pack, comme suit :

databricks bundle validate

Par défaut, cette commande retourne un résumé de l’identité de pack :

Name: MyBundle
Target: dev
Workspace:
  Host: https://my-host.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/MyBundle/dev

Validation OK!

Remarque

La commande bundle validate génère des avertissements si les propriétés de ressource sont définies dans les fichiers de configuration du pack qui sont introuvables dans le schéma de l’objet correspondant.

Si vous souhaitez uniquement générer un résumé de l’identité et des ressources de l’offre groupée, utilisez le résumé de l’offre groupée.

Synchroniser l’arborescence d’un pack avec un espace de travail

Utilisez la commande pour effectuer la bundle sync synchronisation unidirectionnelle des modifications de fichier d’un bundle dans un répertoire de système de fichiers local, vers un répertoire au sein d’un espace de travail Azure Databricks distant.

Remarque

bundle sync Les commandes ne peuvent pas synchroniser les modifications de fichier à partir d’un répertoire au sein d’un espace de travail Azure Databricks distant vers un répertoire au sein d’un système de fichiers local.

databricks bundle sync Les commandes fonctionnent de la même façon que databricks sync les commandes et sont fournies pour faciliter la productivité. Pour plus d’informations sur l’utilisation des commandes, consultez Groupe de commandes de synchronisation.

Générer un fichier de configuration de pack

Vous pouvez utiliser la commande pour générer la bundle generate configuration des ressources pour un travail, un pipeline ou un tableau de bord qui existe déjà dans votre espace de travail Databricks. Cette commande génère un *.yml fichier pour le travail, le pipeline ou le tableau de bord dans le resources dossier du projet groupé et télécharge également tous les fichiers, tels que les notebooks, référencés dans la configuration.

Générer une configuration de travail ou de pipeline

Important

La commande bundle generate est fournie de manière pratique pour générer automatiquement la configuration des ressources. Toutefois, lorsque cette configuration de travail ou de pipeline est incluse dans l’offre groupée et déployée, elle crée une ressource et ne met pas à jour la ressource existante, sauf si elle bundle deployment bind a d’abord été utilisée. Voir Lier des ressources groupées.

Pour générer la configuration d’un travail ou d’un pipeline, exécutez la bundle generate commande comme suit :

databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]

Remarque

Actuellement, seules les tâches de notebook sont prises en charge par cette commande.

Par exemple, la commande suivante génère un nouveau fichier hello_job.yml dans le dossier resources du projet de pack contenant le fichier YAML ci-dessous et télécharge le fichier simple_notebook.py dans le dossier du projet src.

databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
  jobs:
    6565621249:
      name: Hello Job
      format: MULTI_TASK
      tasks:
        - task_key: run_notebook
          existing_cluster_id: 0704-xxxxxx-yyyyyyy
          notebook_task:
            notebook_path: ./src/simple_notebook.py
            source: WORKSPACE
          run_if: ALL_SUCCESS
      max_concurrent_runs: 1

Générer la configuration du tableau de bord

Pour générer la configuration d’un tableau de bord existant dans l’espace de travail, exécutez bundle generate, en spécifiant l’ID ou le chemin d’accès de l’espace de travail pour le tableau de bord :

databricks bundle generate dashboard --existing-id [dashboard-id]
databricks bundle generate dashboard --existing-path [dashboard-workspace-path]

Vous pouvez copier le chemin d’accès de l’espace de travail pour un tableau de bord à partir de l’interface utilisateur de l’espace de travail.

Par exemple, la commande suivante génère un nouveau baby_gender_by_county.dashboard.yml fichier dans le resources dossier de projet groupé contenant le fichier YAML ci-dessous et télécharge le baby_gender_by_county.lvdash.json fichier dans le dossier du src projet.

databricks bundle generate dashboard --existing-path "/Workspace/Users/someone@example.com/baby_gender_by_county.lvdash.json"
# This is the contents of the resulting baby_gender_by_county.dashboard.yml file.
resources:
  dashboards:
    baby_gender_by_county:
      display_name: "Baby gender by county"
      warehouse_id: aae11o8e6fe9zz79
      file_path: ../src/baby_gender_by_county.lvdash.json

Conseil

Pour mettre à jour le .lvdash.json fichier après avoir déjà déployé un tableau de bord, utilisez l’option --resource lorsque vous exécutez bundle generate dashboard pour générer ce fichier pour la ressource de tableau de bord existante. Pour interroger et récupérer en continu les mises à jour d’un tableau de bord, utilisez les options et --watch les --force options.

Lier des ressources en pack

La commande bundle deployment bind permet d’associer les tâches et les pipelines définis par les packs aux tâches et pipelines existants dans l’espace de travail Azure Databricks afin qu’ils soient managés par les Packs de ressources Databricks. Si vous liez une ressource, les ressources Azure Databricks existantes dans l’espace de travail sont mises à jour en fonction de la configuration définie dans le pack auquel elle est liée après le prochain bundle deploy.

Conseil

Il est judicieux de confirmer le regroupement dans l’espace de travail de pack avant d’exécuter la liaison.

databricks bundle deployment bind [resource-key] [resource-id]

Par exemple, la commande suivante lie la ressource hello_job à son équivalent distant dans l’espace de travail. La commande génère une diff et vous permet de refuser la liaison de ressources, mais si elle est confirmée, toutes les mises à jour apportées à la définition de tâche dans le pack sont appliquées à la tâche distante correspondante lors du prochain déploiement du pack.

databricks bundle deployment bind hello_job 6565621249

Utilisez bundle deployment unbind si vous souhaitez supprimer le lien entre la tâche ou au pipeline dans un pack et son équivalent distant dans un espace de travail.

databricks bundle deployment unbind [resource-key]

Sortie d’un résumé de bundle

La bundle summary commande génère un résumé de l’identité et des ressources d’un bundle, y compris des liens profonds pour les ressources afin que vous puissiez facilement accéder à la ressource dans l’espace de travail Databricks.

databricks bundle summary

L’exemple de sortie suivant est le résumé d’un bundle nommé my_pipeline_bundle qui définit un travail et un pipeline :

Name: my_pipeline_bundle
Target: dev
Workspace:
  Host: https://myworkspace.cloud.databricks.com
  User: someone@example.com
  Path: /Users/someone@example.com/.bundle/my_pipeline/dev
Resources:
  Jobs:
    my_project_job:
      Name: [dev someone] my_project_job
      URL:  https://myworkspace.cloud.databricks.com/jobs/206000809187888?o=6051000018419999
  Pipelines:
    my_project_pipeline:
      Name: [dev someone] my_project_pipeline
      URL:  https://myworkspace.cloud.databricks.com/pipelines/7f559fd5-zztz-47fa-aa5c-c6bf034b4f58?o=6051000018419999

Déployer un pack

Pour déployer un pack sur l’espace de travail distant, exécutez la commande bundle deploy à partir de la racine du projet en pack. Si aucune option de commande n’est spécifiée, la cible par défaut telle qu’elle est déclarée dans les fichiers de configuration en pack est utilisée.

databricks bundle deploy

Pour déployer le pack sur une cible spécifique, définissez l’option -t (ou --target) ainsi que le nom de la cible comme déclaré dans les fichiers de configuration du pack. Par exemple, pour une cible déclarée avec le nom dev :

databricks bundle deploy -t dev

Un pack peut être déployé sur plusieurs espaces de travail, tels que le développement, la préproduction et les espaces de travail de production. Fondamentalement, la propriété root_path est ce qui détermine l’identité unique d’un pack, qui est par défaut ~/.bundle/${bundle.name}/${bundle.target}. Par conséquent, par défaut, l’identité d’un pack est composée de l’identité du déployeur, du nom du pack et du nom cible du pack. S’ils sont identiques entre différents packs, le déploiement de ces packs interfère les uns avec les autres.

En outre, un déploiement en pack effectue le suivi des ressources qu’il crée dans l’espace de travail cible par leurs ID en tant qu’état stocké dans le système de fichier d’espace de travail. Les noms de ressources ne sont pas utilisés pour mettre en corrélation un déploiement en pack et une instance de ressource. Par conséquent :

  • Si une ressource dans la configuration de pack n’existe pas dans l’espace de travail cible, elle est créée.
  • Si une ressource dans la configuration de pack existe dans l’espace de travail cible, elle est mise à jour dans l’espace de travail.
  • Si une ressource est supprimée de la configuration du pack, elle est supprimée de l’espace de travail cible s’il a été déployé précédemment.
  • L’association d’une ressource à un pack ne peut être oubliée que si vous modifiez le nom du pack, la cible du pack ou l’espace de travail. Vous pouvez exécuter bundle validate pour générer un résumé contenant ces valeurs.

Exécuter un pack

Pour exécuter une tâche ou un pipeline spécifique, utilisez la commande bundle run. Vous devez indiquer la clé de ressource de la tâche ou du pipeline déclaré dans les fichiers de configuration du pack. Par défaut, l’environnement déclaré dans les fichiers de configuration de l’offre groupée est utilisé. Par exemple, pour exécuter une tâche hello_job dans l’environnement par défaut, exécutez la commande suivante :

databricks bundle run hello_job

Pour exécuter un travail avec la clé hello_job dans le contexte d’une cible déclarée avec le nom dev :

databricks bundle run -t dev hello_job

Si vous souhaitez exécuter une validation de pipeline, utilisez l’option --validate-only, comme indiqué dans l’exemple suivant :

databricks bundle run --validate-only my_pipeline

Pour transmettre desparamètres de tâche, utilisez l’option --params, suivie de paires clé-valeur séparées par des virgules, où la clé est le nom du paramètre. Par exemple, la commande suivante définit le paramètre avec le nom message sur HelloWorld pour la tâche hello_job :

databricks bundle run --params message=HelloWorld hello_job

Remarque

Vous pouvez transmettre des paramètres aux tâches à l’aide des options de tâche, mais l’option --params est la méthode recommandée pour transmettre des paramètres de tâche. Une erreur se produit si les paramètres de tâche sont indiqués pour une tâche qui n’a pas de paramètres de tâche définis ou si les paramètres de tâche sont indiqués pour une tâche dont les paramètres de tâche sont définis.

Pour annuler et redémarrer une exécution de tâche ou une mise à jour de pipeline existante, utilisez l’option --restart :

databricks bundle run --restart hello_job

Détruire un pack

Avertissement

La destruction d’un bundle supprime définitivement les travaux, pipelines et artefacts déployés précédemment d’un bundle. Il est impossible d’annuler cette opération.

Pour supprimer des tâches, des pipelines et des artefacts précédemment déployés, exécutez la commande bundle destroy. La commande suivante supprime tous les tâches, pipelines et artefacts précédemment déployés qui sont définis dans les fichiers de configuration du pack :

databricks bundle destroy

Remarque

L’identité d’un pack est composée du nom du pack, de la cible du pack et de l’espace de travail. Si vous avez modifié l’un de ces éléments, puis que vous tentez de détruire un pack avant le déploiement, une erreur se produit.

Par défaut, vous êtes invité à confirmer la suppression définitive des travaux, pipelines et artefacts précédemment déployés. Pour ignorer ces invites et effectuer une suppression permanente automatique, ajoutez l’option --auto-approve à la commande bundle destroy.