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 ¿Qué es 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 CLI de pila. 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 localmente cuadernos y archivos DBFS y crear una plantilla JSON de configuración de pila que defina las asignaciones de los archivos locales a las rutas de acceso en el área de trabajo de Azure Databricks, junto con las configuraciones de los trabajos que ejecutan los cuadernos.

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

Para ejecutar subcomandos de la CLI de pila de Databricks, anéxelos 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]

Implementación de una pila en un área de trabajo

Este subcomando implementa una pila. 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.

Descarga de los cambios del cuaderno de una pila

Este subcomando descarga los cuadernos de una pila.

databricks stack download ./config.json

Ejemplos

Configuración de una 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. Hay una dependencia de biblioteca JAR de la pila en lib/library.jar. config.json es la plantilla JSON de configuración de la pila. Es lo que se pasa a la CLI de pila para la implementación de la pila.

Plantilla JSON de configuración de pila

La plantilla de configuración de pila describe la configuración de 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.

Implementación de una pila

Una pila se implementa mediante el comando databricks stack deploy <configuration-file>.

databricks stack deploy ./config.json

Durante la implementación de la pila, los recursos de área de trabajo o DBFS se cargan en el área de trabajo de Azure Databricks y se crean los 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 de la pila, elimínelo y vuelva a intentar la implementación.

./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 pila. Todos los campos son obligatorios.

Nombre del campo Tipo Descripción
name STRING El nombre de la pila.
resources Lista de ResourceConfig Un recurso en Azure Databricks. Los recursos están relacionados con tres servicios (espacios de nombres de API REST): área de trabajo, trabajos y DBFS.

ResourceConfig

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.
service ResourceService El servicio de API REST en el que opera el recurso. Uno de estos valores: jobs,
workspace o dbfs.
properties ResourceProperties Aquí, los campos son diferentes en función del servicio ResourceConfig.

ResourceProperties

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

service Campos de la API REST que se usan en la CLI de pila Campos que se usan solo en la CLI de pila
área de trabajo path: STRING: rutas de acceso al área de trabajo remota de cuadernos o directorios. (Ex. /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 pila o una ruta de acceso absoluta en el sistema de archivos.
jobs 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 pila es:

name: STRING: nombre del trabajo que se va a implementar. A fin de no crear demasiados trabajos duplicados, la CLI de pila aplica nombres únicos en los trabajos implementados de la pila.
ninguno.
dbfs path: STRING: ruta de acceso de DBFS remota coincidente. Debe comenzar por dbfs:/. (ex. 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 pila o una ruta de acceso absoluta en el 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 la CLI de pila.

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

Esquema de estado de pila

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
name 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 que se utiliza para implementar la pila.
deployed_resources 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 de pila para el recurso.
service 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 path STRING Ruta de acceso absoluta del cuaderno o el directorio en un área de trabajo de Azure Databricks. La nomenclatura es coherente con API de área de trabajo.
jobs job_id STRING Identificador del trabajo tal como se muestra en un área de trabajo de Azure Databricks. Se puede usar para actualizar los trabajos ya implementados.
dbfs path STRING Ruta de acceso absoluta del cuaderno o el directorio en un área de trabajo de Azure Databricks. La nomenclatura es coherente con la API de DBFS.