Aller au contenu principal

Stack CLI (hérité)

important

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.

remarque

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.

Bash
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.

Bash
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.

Bash
databricks stack download ./config.json

Exemples

Configuration de la pile

Structure de fichier d'une pile d'exemple

Bash
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.

Bash
cat config.json
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>.

Bash
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.

important

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.

Bash
cat ./config.deployed.json
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

STRING

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.

Nom de champ

Type

Description

Nom

STRING

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

STRING

Un ID unique pour la ressource. L'unicité de ResourceConfig est appliquée.

Service

ResourceService

Le service API REST sur lequel la ressource opère. L'un(e) des : jobs, workspace, ou dbfs.

Propriétés

Propriétés de la ressource

Les champs ici sont différents selon le service ResourceConfig.

Nom de champ

Type

Description

ID

STRING

Un ID unique pour la ressource. L'unicité de ResourceConfig est appliquée.

Service

ResourceService

Le service API REST sur lequel la ressource opère. L'un(e) des : jobs, workspace, ou dbfs.

Propriétés

Propriétés de la ressource

Les champs ici sont différents selon le service ResourceConfig.

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 : STRING- Chemins de Workspace distants de Notebooks ou de répertoires. (Ex. /Users/example@example.com/notebook) object_type : API Workspace- type d'objet Notebook. Ne peut être que NOTEBOOK ou DIRECTORY.

source_path: STRING- Chemin source local des notebooks ou répertoires Workspace. Un chemin relatif vers le fichier de modèle de configuration de la stack ou un chemin absolu dans votre système de fichiers.

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 : STRING- Nom du job à déployer. Afin de ne pas créer trop de jobs en double, le CLI Stack impose des noms uniques dans les jobs déployés par Stack.

Aucun.

DBFS

chemin : STRING- Correspondance du chemin DBFS distant. Must start with dbfs:/. (ex. dbfs:/this/is/a/sample/path) is_dir : BOOL– Indique si un chemin DBFS est un répertoire ou un fichier.

source_path : STRING- Chemin source local des fichiers ou répertoires DBFS. Un chemin relatif vers le fichier template de configuration de la pile ou un chemin absolu dans votre système de fichiers.

Service

Champs de l'API REST utilisés dans la CLI Stack

Champs utilisés uniquement dans la CLI Stack.

Espace de travail

chemin : STRING- Chemins de Workspace distants de Notebooks ou de répertoires. (Ex. /Users/example@example.com/notebook) object_type : API Workspace- type d'objet Notebook. Ne peut être que NOTEBOOK ou DIRECTORY.

source_path: STRING- Chemin source local des notebooks ou répertoires Workspace. Un chemin relatif vers le fichier de modèle de configuration de la stack ou un chemin absolu dans votre système de fichiers.

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 : STRING- Nom du job à déployer. Afin de ne pas créer trop de jobs en double, le CLI Stack impose des noms uniques dans les jobs déployés par Stack.

Aucun.

DBFS

chemin : STRING- Correspondance du chemin DBFS distant. Must start with dbfs:/. (ex. dbfs:/this/is/a/sample/path) is_dir : BOOL– Indique si un chemin DBFS est un répertoire ou un fichier.

source_path : STRING- Chemin source local des fichiers ou répertoires DBFS. Un chemin relatif vers le fichier template de configuration de la pile ou un chemin absolu dans votre système de fichiers.

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.

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

STRING

Le nom de la pile. Ce champ est le même que dans StackConfig.

cli_version

STRING

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.

Nom de champ

Type

Description

Nom

STRING

Le nom de la pile. Ce champ est le même que dans StackConfig.

cli_version

STRING

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

STRING

Un ID unique de pile pour la ressource.

Service

ResourceService

Le service API REST sur lequel la ressource opère. L'un(e) des : jobs, workspace, ou dbfs.

databricks_id

DatabricksId

L'ID physique de la ressource déployée. Le schéma réel dépend du type (service) de la ressource.

Nom de champ

Type

Description

ID

STRING

Un ID unique de pile pour la ressource.

Service

ResourceService

Le service API REST sur lequel la ressource opère. L'un(e) des : jobs, workspace, ou dbfs.

databricks_id

DatabricksId

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.

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.