Interface CLI Stack (héritée)

Important

Cette documentation a été mise hors service et peut ne pas être mise à jour.

Ces informations s’appliquent aux anciennes versions Databricks CLI 0,18 et inférieures. Databricks vous recommande d’utiliser à la place la nouvelle version 0.205 ou supérieure de l’interface CLI Databricks. Consultez l’interface CLI Databricks. Pour trouver votre version de l’interface 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 Migration Databricks CLI.

Databricks CLI version 0.205 et ultérieure ne prend pas en charge l’interface CLI Stack. Databricks vous recommande d’utiliser le fournisseur Databricks Terraform à la place.

Remarque

L’utilisation du CLI de pile requiert le CLI Databricks 0.8.3 ou une version ultérieure.

L’interface CLI de pile permet de gérer une pile de ressources Azure Databricks, telles que les travaux, les notebooks et les fichiers DBFS. Vous pouvez stocker des notebooks et des fichiers DBFS localement et créer un modèle JSON de configuration du stack qui définit des correspondances de vos fichiers locaux vers des chemins d’accès dans votre espace de travail Azure Databricks, ainsi que des configurations de travaux qui exécutent les notebooks.

Utilisez l’interface CLI de pile avec le modèle JSON de configuration de pile pour déployer et gérer votre pile.

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 dans un espace de travail

Cette sous-commande déploie une pile. Consultez Configuration d’une pile pour apprendre à configurer une pile.

databricks stack deploy ./config.json

La section Modèle JSON de configuration de pile donne un exemple de config.json.

Télécharger les modifications des blocs-notes d'empilement

Cette sous-commande télécharge les notebooks d’une pile.

databricks stack download ./config.json

Exemples

Configuration du stack

Structure de fichiers d’un exemple de stack

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 modèle JSON de configuration de la pile. C’est ce qui est passé dans l’interface CLI de pile pour le déploiement de la pile.

Modèle JSON de configuration de la pile

Le modèle de configuration de 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": "Standard_DS3_v2",
          "num_workers": 3
        },
        "timeout_seconds": 7200,
        "max_retries": 1,
        "notebook_task": {
          "notebook_path": "/Users/example@example.com/dev/notebook"
        },
        "libraries": [
          {
            "jar": "dbfs:/tmp/lib/library.jar"
          }
        ]
      }
    }
  ]
}

Chaque travail, notebook de l’espace de travail, répertoire de l’espace de travail, fichier DBFS ou répertoire DBFS est défini en tant que ResourceConfig. Chaque ResourceConfig qui représente un espace de travail ou une ressource DBFS contient un mappage du fichier ou du répertoire dans lequel il se trouve localement (source_path) à l’emplacement où il se trouverait dans l’espace de travail ou DBFS (path).

Le schéma du modèle de configuration stack décrit le schéma pour le modèle de configuration du stack.

Déployer une pile

Vous déployez une pile à l’aide de la commande databricks stack deploy <configuration-file>.

databricks stack deploy ./config.json

Pendant le déploiement de la pile, les ressources de DBFS et de l’espace de travail sont chargées dans votre espace de travail Azure Databricks, et vos travaux 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 modèle 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 l’interface CLI de pile pour effectuer le suivi des dernières ressources déployées sur votre espace de travail.

Le schéma d’état de la pile présente le schéma de configuration d’une pile.

Important

N’essayez pas de modifier ou de déplacer le fichier d’état de la pile. Si vous recevez des erreurs concernant le fichier d’état de la pile, supprimez-le, puis réessayez le déploiement.

./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 de modèle de configuration du stack

StackConfig

Il s'agit des champs externes d'un modèle de configuration de la stack. Tous les champs sont obligatoires.

Nom du champ Type Description
nom STRING Nom de la pile.
les ressources Liste de ResourceConfig Ressource dans Azure Databricks. Les ressources sont liées à trois services (espaces de noms d’API REST) : espace de travail, travaux et DBFS.

ResourceConfig

Champs de chaque ResourceConfig. Tous les champs sont obligatoires.

Nom du champ Type Description
id STRING ID unique de la ressource. L’unicité de ResourceConfig est appliquée.
service ResourceService Service d’API REST sur lequel la ressource fonctionne. L’un des éléments suivants : jobs,
workspace, ou dbfs.
propriétés ResourceProperties Les champs de ce type sont différents selon le service ResourceConfig.

ResourceProperties

Propriétés d’une ressource par ResourceService. Les champs sont classés comme ceux utilisés ou non utilisés dans une API REST Azure Databricks. Tous les champs listés sont requis.

service Champs de l’API REST utilisés dans l’CLI Stack Champs utilisés uniquement dans le CLI Stack
espace de travail path : STRING - Chemins d’espaces de travail distants de notebooks ou de répertoires. (Ex. /Users/example@example.com/notebook)
object_type : API d’espace de travail - Type d’objet notebook. Peut être uniquement NOTEBOOK ou DIRECTORY.
source_path: STRING - Chemin source local des carnets ou répertoires de l’espace de travail. Chemin relatif vers le fichier de modèle de configuration de pile ou chemin absolu dans le système de fichiers.
emplois N’importe quel champ des paramètres ou de la structure new_settings. Le seul champ non obligatoire dans les paramètres ou la structure new_settings, mais obligatoire pour l’interface CLI de pile est le suivant :
name : STRING - Nom de la tâche à déployer. Pour ne pas créer un trop grand nombre de tâches en double, l'interface CLI de Stack applique des noms uniques dans les tâches déployées.
Aucun.
dbfs path : STRING - Chemin DBFS distant correspondant. Doit commencer par 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 de fichiers ou répertoires DBFS. Chemin relatif vers un fichier modèle de configuration pour la pile ou chemin absolu dans votre système de fichiers.

ResourceService

Chaque ressource appartient à un service spécifique qui s’aligne sur l’API REST Databricks. Il s’agit des services pris en charge par l’Interface en Ligne de Commande du Stack.

Service Description
espace de travail Notebook ou répertoire de l’espace de travail.
emplois Une tâche Azure Databricks.
dbfs Fichier ou répertoire DBFS.

Schéma d’état de la pile

StackStatus

Un fichier d’état de la pile est créé après le déploiement d’une pile à l’aide de l’interface CLI. Les champs de niveau supérieur sont les suivants :

Nom du champ Type Description
nom STRING Nom de la pile. Ce champ est le même champ que dans StackConfig.
cli_version STRING Version du CLI Databricks utilisée pour déployer la pile.
ressources_déployées Liste des valeurs ResourceStatus État de chaque ressource déployée. Pour chaque ressource définie dans StackConfig, un ResourceStatus correspondant est généré ici.

ResourceStatus

Nom du champ Type Description
id STRING ID propre à la pile pour la ressource.
service ResourceService Service d’API REST sur lequel la ressource fonctionne. L’un des éléments suivants : jobs,
workspace, ou dbfs.
databricks_id DatabricksId ID physique de la ressource déployée. Le schéma réel dépend du type (service) de la ressource.

DatabricksId

Objet JSON dont le champ dépend du service.

Service Champ dans JSON Type Description
espace de travail chemin STRING Chemin absolu du bloc-notes ou du répertoire dans un espace de travail Azure Databricks. La dénomination est cohérente avec l’API Espace de travail.
emplois job_id STRING ID de travail comme indiqué dans un espace de travail Azure Databricks. Cet élément peut être utilisé pour mettre à jour des travaux déjà déployés.
dbfs chemin STRING Chemin absolu du bloc-notes ou du répertoire dans un espace de travail Azure Databricks. La dénomination est cohérente avec l’API DBFS.