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 :
- Modèles de projets de packs de ressources Databricks
- Développer un projet sur Azure Databricks à l’aide des regroupements de ressources Databricks
- Développer des pipelines Delta Live Tables avec des bundles de ressources Databricks
- Bundles de ressources Databricks pour les piles MLOps
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
.