CLI de pila (heredada)

Importante

Esta documentación se ha retirado y es posible que no se actualice.

Esta información se aplica a las versiones heredadas de la CLI de Databricks 0.18 y versiones posteriores. En su lugar, Databricks recomienda usar la versión más reciente 0.205 o posterior de la CLI de Databricks. Consulte la CLI de Databricks. Para encontrar su versión de la CLI de Databricks, ejecute databricks -v.

Para migrar de la versión 0.18 o inferior a la versión 0.205 o superior de la CLI de Databricks, consulte Migración de la CLI de Databricks.

Las versiones 0.205 y posteriores de la CLI de Databricks no admiten la stack CLI. Databricks recomienda usar en su lugar el Proveedor de Databricks Terraform.

Nota:

La CLI de pila requiere la CLI de Databricks 0.8.3 o posterior.

La CLI de pila proporciona una manera de administrar una pila de recursos de Azure Databricks, como trabajos, cuadernos y archivos DBFS. Puede almacenar cuadernos y archivos de DBFS localmente y crear una plantilla JSON de configuración para definir las asignaciones desde sus archivos locales a las rutas en su espacio de trabajo de Azure Databricks, junto con la configuración de los trabajos que ejecutan estos cuadernos.

Para implementar y administrar la pila, utilice la CLI de pila con la plantilla JSON de configuración correspondiente.

Para ejecutar los subcomandos de la pila de Databricks CLI, añádelos a 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]

Implementar una pila en un área de trabajo

Este subcomando despliega un stack. Consulte Configuración de una pila para aprender a configurar una pila.

databricks stack deploy ./config.json

En la sección Plantilla JSON de configuración de pila, se proporciona un ejemplo de config.json.

Descargar cambios del cuaderno del stack

Este subcomando descarga los cuadernos de una pila.

databricks stack download ./config.json

Ejemplos

Configuración de pila

Estructura de archivos de una pila de ejemplo

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

Esta pila de ejemplo contiene un cuaderno principal en notebooks/common/notebook.scala junto con cuadernos de configuración en la carpeta notebooks/config. Existe una dependencia de la biblioteca JAR en la pila en lib/library.jar. config.json es la plantilla JSON de configuración de la pila. Esto es lo que se pasa al CLI de stack para la implementación del stack.

Plantilla JSON de configuración del stack

La plantilla de configuración de la pila describe cómo está configurada la pila.

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"
          }
        ]
      }
    }
  ]
}

Cada trabajo, cuaderno de área de trabajo, directorio de área de trabajo, archivo DBFS o directorio DBFS se define como un elemento ResourceConfig. Cada ResourceConfig que representa un recurso de área de trabajo o DBFS contiene una asignación del archivo o directorio en el que existe localmente (source_path) a la ubicación en la que existiría en el área de trabajo o DBFS (path).

El esquema de plantilla de configuración de pila describe el esquema de la plantilla de configuración de pila.

Desplegar una pila

Implementas una pila usando el comando databricks stack deploy <configuration-file>.

databricks stack deploy ./config.json

Durante la implementación de la pila, los recursos de DBFS y del área de trabajo se cargan en el área de trabajo de Azure Databricks y se crean trabajos.

En el momento de implementación de la pila, se guarda un archivo JSON StackStatus para la implementación en el mismo directorio de la plantilla de configuración de pila con el nombre, agregando deployed inmediatamente antes de la extensión .json: (por ejemplo, ./config.deployed.json). La CLI de pila utiliza este archivo para llevar un seguimiento de los recursos implementados anteriormente en el área de trabajo.

El esquema de estado de la pila describe el esquema de la configuración de una pila.

Importante

No intente editar ni mover el archivo de estado de la pila. Si recibe algún error relacionado con el archivo de estado del stack, elimine el archivo e intente la implementación nuevamente.

./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"
}

Estructuras de datos

En esta sección:

Esquema de plantilla de configuración de pila

StackConfig

Estos son los campos externos de una plantilla de configuración de stack. Todos los campos son obligatorios.

Nombre del campo Tipo Descripción
nombre STRING El nombre de la pila.
recursos Lista de ResourceConfig Un activo en Azure Databricks. Los recursos se relacionan con tres servicios (espacios de nombres de la API REST): espacio de trabajo, trabajos y dbfs.

Configuración de Recursos

Los campos de cada ResourceConfig. Todos los campos son obligatorios.

Nombre del campo Tipo Descripción
id STRING Identificador único del recurso. Se aplica la exclusividad de ResourceConfig.
servicio ResourceService El servicio de API REST en el que opera el recurso. Uno de estos valores: jobs,
workspace o dbfs.
propiedades ResourceProperties Aquí, los campos son diferentes en función del servicio ResourceConfig.

PropiedadesDelRecurso

Propiedades de un recurso por ResourceService. Los campos se clasifican en aquellos que se usan o no se usan en una API REST de Azure Databricks. Todos los campos que se muestran son obligatorios.

servicio Campos de la API REST utilizados en la Stack CLI Campos que se usan solo en el Stack CLI
área de trabajo path: STRING: rutas de acceso al área de trabajo remota de cuadernos o directorios. (Por ejemplo, /Users/example@example.com/notebook)
object_type: API del área de trabajo: tipo de objeto de cuaderno. Solo puede ser NOTEBOOK o DIRECTORY.
source_path: STRING: ruta de acceso al origen local de cuadernos o directorios del área de trabajo. Una ruta de acceso relativa al archivo de plantilla de configuración de stack o una ruta de acceso absoluta en tu sistema de archivos.
trabajos Cualquier campo de la configuración o la estructura new_settings. El único campo que no es obligatorio en la configuración o la estructura new_settings, pero que sí lo es para la CLI de stack es:
name: STRING: nombre del trabajo que se va a implementar. A fin de no crear demasiados trabajos duplicados, el Stack CLI impone nombres únicos en los trabajos de pila desplegados.
ninguno.
dbfs path: STRING: ruta de acceso de DBFS remota coincidente. Debe comenzar por dbfs:/. (por ejemplo, dbfs:/this/is/a/sample/path)
is_dir: BOOL: indica si una ruta de acceso de DBFS es un directorio o un archivo.
source_path: STRING: ruta de acceso de origen local de archivos o directorios DBFS. Una ruta de acceso relativa al archivo de plantilla de configuración de stack o una ruta de acceso absoluta en tu sistema de archivos.

ResourceService

Cada recurso pertenece a un servicio específico que se alinea con la API REST de Databricks. Estos son los servicios compatibles con el Stack CLI.

Servicio Descripción
área de trabajo Directorio o cuaderno del área de trabajo.
trabajos Un trabajo de Azure Databricks.
dbfs Directorio o archivo de DBFS.

Esquema de estado del stack

StackStatus

Se crea un archivo de estado de pila una vez que se implementa una pila mediante la CLI. Los campos de nivel superior son:

Nombre del campo Tipo Descripción
nombre STRING El nombre de la pila. Se trata del mismo campo que en StackConfig.
cli_version STRING La versión de la CLI de Databricks utilizada para implementar la pila.
recursos_desplegados Lista de ResourceStatus Estado de cada recurso implementado. Para cada recurso definido en StackConfig, aquí se genera un ResourceStatus correspondiente.

ResourceStatus

Nombre del campo Tipo Descripción
id STRING Identificador único en la pila para el recurso.
servicio ResourceService El servicio de API REST en el que opera el recurso. Uno de estos valores: jobs,
workspace o dbfs.
databricks_id DatabricksId Identificador físico del recurso implementado. El esquema real depende del tipo (servicio) del recurso.

DatabricksId

Objeto JSON cuyo campo depende del servicio.

Servicio Campo en JSON Tipo Descripción
área de trabajo ruta STRING Ruta de acceso absoluta del cuaderno o directorio en un entorno de trabajo de Azure Databricks. La nomenclatura es coherente con API de área de trabajo.
trabajos job_id STRING Identificador de trabajo tal como se muestra en un área de trabajo de Azure Databricks. Se puede utilizar para actualizar tareas ya desplegadas.
dbfs ruta STRING Ruta de acceso absoluta del cuaderno o directorio en un entorno de trabajo de Azure Databricks. La nomenclatura es coherente con la API de DBFS.