Partager via


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 Qu’est-ce que 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’interface CLI de pile requiert l’interface 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 des travaux, des notebooks et des fichiers DBFS. Vous pouvez stocker des notebooks et des fichiers DBFS localement, et créer un modèle JSON de configuration de pile qui définit les mappages de vos fichiers locaux vers des chemins de 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 l’interface CLI de pile Databricks 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 notebooks de pile

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

databricks stack download ./config.json

Exemples

Configuration d’une pile

Structure de fichier d’un exemple de pile

tree
.
├── notebooks
|   ├── common
|   |   └── notebook.scala
|   └── config
|       ├── environment.scala
|       └── setup.sql
├── lib
|   └── library.jar
└── config.json

Cet exemple de pile contient un notebook principal, 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 pile 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 de modèle de configuration de pile présente le schéma du modèle de configuration de la 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

Pendant le déploiement de la pile, les ressources DBFS et de l’espace de travail sont chargées dans votre espace de travail Azure Databricks et des 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 du modèle de configuration de la pile

StackConfig

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

Nom du champ Type Description
name STRING Nom de la pile.
les ressources Liste des valeurs 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.
properties 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’interface CLI de pile Champs utilisés uniquement dans l’interface CLI de pile
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 répertoires ou notebooks de l’espace de travail. Chemin relatif du fichier de modèle de configuration de la pile ou chemin absolu dans votre système de fichiers.
jobs 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 du travail à déployer. Pour ne pas créer un trop grand nombre de travaux en double, l’interface CLI de pile applique des noms uniques dans les travaux déployés de la pile.
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 du fichier de modèle de configuration de 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 CLI de la pile.

Service Description
espace de travail Notebook ou répertoire de l’espace de travail.
jobs Travail 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
name STRING Nom de la pile. Ce champ est le même champ que dans StackConfig.
cli_version STRING Version de l’interface CLI Databricks utilisée pour déployer la pile.
deployed_resources 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 path STRING Chemin absolu du notebook ou du répertoire dans un espace de travail Azure Databricks. La dénomination est cohérente avec l’API Espace de travail.
jobs job_id STRING ID de travail tel qu’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 path STRING Chemin absolu du notebook ou du répertoire dans un espace de travail Azure Databricks. La dénomination est cohérente avec l’API DBFS.