Stack CLI (hérité)
Cette documentation a été retirée et pourrait ne pas être mise à jour.
Ces informations s'appliquent aux anciennes versions de la CLI Databricks 0.18 et antérieures. Databricks vous recommande d'utiliser plutôt la version 0.205 ou ultérieure de Databricks CLI. Voir CLI Databricks. Pour trouver votre version de la CLI Databricks, exécutez databricks -v.
Pour migrer de Databricks CLI version 0.18 ou inférieure vers Databricks CLI version 0.205 ou supérieure, consultez la migration de Databricks CLI.
Les versions 0.205 et supérieures de la CLI Databricks ne prennent pas en charge la CLI de pile. Databricks vous recommande d'utiliser plutôt le fournisseur Databricks Terraform.
La CLI de pile nécessite Databricks CLI 0.8.3 ou supérieur.
La CLI de pile offre un moyen de gérer une pile de Ressources Databricks, tels que les Jobs, les Notebooks et les fichiers DBFS. Vous pouvez stocker des Notebooks et des fichiers DBFS localement et créer un Template JSON de configuration de pile qui définit les mappages de vos fichiers locaux vers des chemins d'accès dans votre Workspace Databricks, ainsi que les configurations des Jobs qui exécutent les Notebooks.
Utilisez la CLI stack avec le Template JSON de configuration stack pour déployer et gérer votre stack.
Vous exécutez les sous-commandes de la CLI Databricks stack en les ajoutant à databricks stack.
databricks stack --help
Usage: databricks stack [OPTIONS] COMMAND [ARGS]...
[Beta] Utility to deploy and download Databricks resource stacks.
Options:
-v, --version [VERSION]
--debug Debug Mode. Shows full stack trace on error.
--profile TEXT CLI connection profile to use. The default profile is
"DEFAULT".
-h, --help Show this message and exit.
Commands:
deploy Deploy a stack of resources given a JSON configuration of the stack
Usage: databricks stack deploy [OPTIONS] CONFIG_PATH
Options:
-o, --overwrite Include to overwrite existing workspace notebooks and DBFS
files [default: False]
download Download workspace notebooks of a stack to the local filesystem
given a JSON stack configuration template.
Usage: databricks stack download [OPTIONS] CONFIG_PATH
Options:
-o, --overwrite Include to overwrite existing workspace notebooks in the
local filesystem [default: False]
Déployer une pile sur un workspace
Cette sous-commande déploie une stack. Consultez la configuration de la pile pour savoir comment configurer une pile.
databricks stack deploy ./config.json
Le Template JSON de configuration de pile donne un exemple de config.json.
download stack Notebook changes
Cette sous-commande download les notebooks d'une pile.
databricks stack download ./config.json
Exemples
Configuration de la pile
Structure de fichier d'une pile d'exemple
tree
.
├── notebooks
| ├── common
| | └── notebook.scala
| └── config
| ├── environment.scala
| └── setup.sql
├── lib
| └── library.jar
└── config.json
Cet exemple de pile contient un Notebook principal dans notebooks/common/notebook.scala ainsi que des Notebooks de configuration dans le dossier notebooks/config. Il existe une dépendance de bibliothèque JAR de la pile
dans lib/library.jar. config.json est le Template JSON de configuration de la pile. C'est ce qui est passé à la CLI de la pile pour le déploiement de la pile.
Template JSON de configuration de la pile
Le Template de configuration de la pile décrit la configuration de la pile.
cat config.json
{
"name": "example-stack",
"resources": [
{
"id": "example-workspace-notebook",
"service": "workspace",
"properties": {
"source_path": "notebooks/common/notebook.scala",
"path": "/Users/example@example.com/dev/notebook",
"object_type": "NOTEBOOK"
}
},
{
"id": "example-workspace-config-dir",
"service": "workspace",
"properties": {
"source_path": "notebooks/config",
"path": "/Users/example@example.com/dev/config",
"object_type": "DIRECTORY"
}
},
{
"id": "example-dbfs-library",
"service": "dbfs",
"properties": {
"source_path": "lib/library.jar",
"path": "dbfs:/tmp/lib/library.jar",
"is_dir": false
}
},
{
"id": "example-job",
"service": "jobs",
"properties": {
"name": "Example Stack CLI Job",
"new_cluster": {
"spark_version": "7.3.x-scala2.12",
"node_type_id": "i3.xlarge",
"aws_attributes": {
"availability": "SPOT"
},
"num_workers": 3
},
"timeout_seconds": 7200,
"max_retries": 1,
"notebook_task": {
"notebook_path": "/Users/example@example.com/dev/notebook"
}
}
}
]
}
Chaque Job, notebook de Workspace, répertoire de Workspace, fichier DBFS ou répertoire DBFS
est défini comme une ResourceConfig. Chaque ResourceConfig qui représente un asset de Workspace ou DBFS contient un mappage du fichier ou du répertoire où il existe localement (source_path) vers l'emplacement où il existerait dans le Workspace ou DBFS (path).
Le schéma de template de configuration de pile décrit le schéma du template de configuration de pile.
Déployer une pile
Vous déployez une pile à l’aide de la commande databricks stack deploy <configuration-file>.
databricks stack deploy ./config.json
Lors du déploiement de la pile, les assets DBFS et du workspace sont upload vers votre workspace Databricks et des Jobs sont créés.
Au moment du déploiement de la pile, un fichier JSON StackStatus pour le déploiement est enregistré dans le même répertoire que le template de configuration de la pile avec le nom, en ajoutant deployed immédiatement avant l'extension .json : (par exemple, ./config.deployed.json). Ce
fichier est utilisé par la CLI Stack pour assurer le suivi des ressources déployées passées sur votre Workspace.
Le schéma de l'état de la pile décrit le schéma d'une configuration de pile.
Ne tentez pas de modifier ou de déplacer le fichier d’état de la pile. Si vous rencontrez des erreurs concernant le fichier d'état de la pile, supprimez le fichier et réessayez le déploiement.
cat ./config.deployed.json
{
"cli_version": "0.8.3",
"deployed_output": [
{
"id": "example-workspace-notebook",
"databricks_id": {
"path": "/Users/example@example.com/dev/notebook"
},
"service": "workspace"
},
{
"id": "example-workspace-config-dir",
"databricks_id": {
"path": "/Users/example@example.com/dev/config"
},
"service": "workspace"
},
{
"id": "example-dbfs-library",
"databricks_id": {
"path": "dbfs:/tmp/lib/library.jar"
},
"service": "dbfs"
},
{
"id": "example-job",
"databricks_id": {
"job_id": 123456
},
"service": "jobs"
}
],
"name": "example-stack"
}
Structures de données
Dans cette section :
Schéma du Template de configuration de la pile
StackConfig
Ce sont les champs extérieurs d’un Template de configuration de pile. Tous les champs sont obligatoires.
Nom de champ | Type | Description |
|---|---|---|
Nom |
| Le nom de la pile. |
Ressources | Liste de ResourceConfig | Un asset dans Databricks. Les Ressources sont liées à trois services (espaces de noms REST API) : Workspace, jobs et dbfs. |
ResourceConfig
Les champs pour chaque ResourceConfig. Tous les champs sont obligatoires.
Nom de champ | Type | Description |
|---|---|---|
ID |
| Un ID unique pour la ressource. L'unicité de ResourceConfig est appliquée. |
Service | Le service API REST sur lequel la ressource opère. L'un(e) des : | |
Propriétés | Les champs ici sont différents selon le service |
Propriétés des ressources
Les propriétés d'une ressource par ResourceService. Les champs sont classés comme étant utilisés ou non dans une API REST Databricks. Tous les champs indiqués sont obligatoires.
Service | Champs de l'API REST utilisés dans la CLI Stack | Champs utilisés uniquement dans la CLI Stack. |
|---|---|---|
Espace de travail | chemin : | source_path: |
Jobs | Tout champ de la structure settings ou new_settings. Le seul champ non requis dans la structure settings ou new_settings mais requis pour la CLI de pile est : Nom : | Aucun. |
DBFS | chemin : | source_path : |
ResourceService
Chaque ressource appartient à un service spécifique qui s'aligne sur l'API REST Databricks. Voici les services pris en charge par la CLI Stack.
Service | Description |
|---|---|
Espace de travail | Un Notebook ou un répertoire Workspace. |
Jobs | Un Job Databricks. |
DBFS | Un fichier ou répertoire DBFS. |
Schéma d'état de la pile
StackStatus
Un fichier d'état de pile est créé après le déploiement d'une pile à l'aide de la CLI. Les champs de niveau supérieur sont :
Nom de champ | Type | Description |
|---|---|---|
Nom |
| Le nom de la pile. Ce champ est le même que dans StackConfig. |
cli_version |
| La version du CLI Databricks utilisée pour déployer la pile. |
ressources_déployées | Liste des ResourceStatus | Le statut de chaque ressource déployée. Pour chaque ressource définie dans StackConfig, une ResourceStatus correspondante est générée ici. |
Statut des ressources
Nom de champ | Type | Description |
|---|---|---|
ID |
| Un ID unique de pile pour la ressource. |
Service | Le service API REST sur lequel la ressource opère. L'un(e) des : | |
databricks_id | L'ID physique de la ressource déployée. Le schéma réel dépend du type (service) de la ressource. |
ID Databricks
Un objet JSON dont le champ dépend du service.
Service | Champ dans JSON | Type | Description |
|---|---|---|---|
Espace de travail | Chemin d'accès | CHAÎNE | Le chemin absolu du Notebook ou du répertoire dans un workspace Databricks. La dénomination est cohérente avec l'API du Workspace. |
Jobs | job_id | CHAÎNE | L'ID du Job, tel qu'affiché dans un Workspace Databricks. Ceci peut être utilisé pour mettre à jour les Jobs déjà déployés. |
DBFS | Chemin d'accès | CHAÎNE | Le chemin absolu du Notebook ou du répertoire dans un workspace Databricks. La dénomination est conforme à l'API DBFS. |