Condividi tramite


CLI dello Stack (legacy)

Importante

Questa documentazione è stata ritirata e potrebbe non essere aggiornata.

Queste informazioni si applicano alle versioni legacy del Databricks CLI 0.18 e precedenti. Databricks consiglia di usare invece la versione 0.205 o successiva dell'interfaccia della riga di comando. Consultare Che cos'è il Databricks CLI?. Per trovare la versione del Databricks CLI, eseguire databricks -v.

Per eseguire la migrazione dalla CLI di Databricks versione 0.18 o precedente alla CLI di Databricks versione 0.205 o successiva, vedere Migrazione della CLI di Databricks.

Le versioni della CLI di Databricks 0.205 e successive non supportano la CLI dello stack. Databricks consiglia di usare invece il provider Databricks Terraform.

Nota

L'interfaccia della riga di comando dello stack richiede CLI Di Databricks 0.8.3 o versione successiva.

L'interfaccia della riga di comando dello stack consente di gestire uno stack di risorse di Azure Databricks, ad esempio processi, notebook e file DBFS. È possibile archiviare notebook e file DBFS in locale e creare un modello JSON di configurazione dello stack che definisce i mapping dai file locali ai percorsi nell'area di lavoro di Azure Databricks, insieme alle configurazioni dei processi che eseguono i notebook.

Usare l'interfaccia della riga di comando dello stack con il modello JSON di configurazione dello stack per distribuire e gestire lo stack.

Esegui i sottocomandi della CLI dello stack Databricks aggiungendoli 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]

Distribuire uno stack in un'area di lavoro

Questo sottocomando distribuisce uno stack. Vedere Configurazione dello stack per informazioni su come configurare uno stack.

databricks stack deploy ./config.json

Il modello JSON di configurazione dello stack offre un esempio di config.json.

Scarica le modifiche dello stack notebook

Questo sottocomando permette di scaricare i notebook di uno stack.

databricks stack download ./config.json

Esempi

Configurazione dello stack

Struttura di file di uno stack di esempio

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

Questo stack di esempio contiene un notebook principale in notebooks/common/notebook.scala insieme ai notebook di configurazione nella cartella notebooks/config. C'è una dipendenza della libreria JAR nello stack in lib/library.jar. config.json è il modello JSON di configurazione dello stack. Questo è ciò che viene passato nel CLI dello stack per l'implementazione dello stack.

Modello JSON di configurazione dello stack

Il modello di configurazione dello stack descrive la configurazione dello stack.

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

Ogni processo, notebook dell'area di lavoro, directory dell'area di lavoro, file DBFS o directory DBFS è definito come ResourceConfig. Ogni ResourceConfig, che rappresenta un'area di lavoro o un asset DBFS, contiene un mapping dal file o dalla directory in cui esiste localmente (source_path) a dove esisterebbe nell'area di lavoro o nel DBFS (path).

Lo schema del modello di configurazione dello stack descrive lo schema per il modello di configurazione dello stack.

Distribuire uno stack

Si distribuisce uno stack usando il databricks stack deploy <configuration-file> comando .

databricks stack deploy ./config.json

Durante la distribuzione dello stack, vengono caricati gli asset DBFS e dell'area di lavoro nell'area di lavoro di Azure Databricks e vengono creati processi.

In fase di distribuzione dello stack, un file JSON StackStatus per la distribuzione viene salvato nella stessa directory del modello di configurazione dello stack con il nome, aggiungendo deployed immediatamente prima dell'estensione .json : (ad esempio, ./config.deployed.json). Questo file viene usato dall'interfaccia della riga di comando di Stack per tenere traccia delle risorse distribuite in passato nell'area di lavoro.

Lo schema dello stato dello stack descrive lo schema di una configurazione dello stack.

Importante

Non tentare di modificare o spostare il file di stato dello stack. Se si verificano errori relativi al file di stato dello stack, eliminare il file e riprovare a eseguire la distribuzione.

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

Strutture dei dati

Contenuto della sezione:

Schema del modello di configurazione dello stack

StackConfig

Questi sono i campi esterni di un modello di configurazione dello stack. Tutti i campi sono obbligatori.

Nome campo Tipo Descrizione
nome STRING Nome dello stack.
risorse Elenco di ResourceConfig Una risorsa in Azure Databricks. Le risorse sono correlate a tre servizi (spazi dei nomi dell'API REST): area di lavoro, processi e dbfs.

ResourceConfig

I campi per ciascun ResourceConfig. Tutti i campi sono obbligatori.

Nome campo Tipo Descrizione
id STRING ID univoco per la risorsa. Viene applicata l'univocità di ResourceConfig.
servizio ResourceService Servizio API REST su cui opera la risorsa. Uno di: jobs,
o workspace, o dbfs.
proprietà Proprietà risorsa I campi in questo caso sono diversi a seconda del ResourceConfig servizio.

Proprietà delle risorse

Proprietà di una risorsa di ResourceService. I campi vengono classificati come quelli usati o non usati in un'API REST di Azure Databricks. Tutti i campi elencati sono obbligatori.

servizio Campi dell'API REST usata nell'interfaccia della riga di comando di Stack Campi usati solo nello Stack CLI
area di lavoro path: STRING- Percorsi dell'area di lavoro remoti di notebook o directory. (ad esempio /Users/example@example.com/notebook)
object_type: API dell'area di lavoro- Tipo di oggetto Notebook. Può essere NOTEBOOK solo o DIRECTORY.
source_path: STRING- Percorso di origine locale di notebook o cartelle dell'area di lavoro. Percorso relativo al file del modello di configurazione dello stack o percorso assoluto nel tuo file system.
lavori Qualsiasi campo nelle impostazioni o nella struttura new_settings. L'unico campo non necessario nelle impostazioni o nella struttura new_settings ma necessario per l'interfaccia della riga di comando dello stack è:
name: STRING- Nome dell'attività da distribuire. Ai fini della mancata creazione di troppi processi duplicati, l'interfaccia della riga di comando di Stack applica nomi univoci nei processi distribuiti nello stack.
Nessuno.
dbfs percorso: STRING- Percorso DBFS remoto corrispondente. Deve iniziare con dbfs:/. (ad esempio dbfs:/this/is/a/sample/path)
is_dir: - BOOLIndica se un percorso DBFS è una directory o un file.
source_path: STRING- Percorso di origine locale di file o directory DBFS. Un percorso relativo al file modello di configurazione dello stack o un percorso assoluto nel tuo file system.

ResourceService

Ogni risorsa appartiene a un servizio specifico allineato all'API REST di Databricks. Questi sono i servizi supportati dall'interfaccia della riga di comando di Stack.

Servizio Descrizione
area di lavoro Un notebook o una directory dell'area di lavoro.
lavori Un'attività di Azure Databricks.
dbfs Un file o una directory DBFS.

Schema dello stato dello stack

StackStatus

Un file di stato dello stack viene creato dopo la distribuzione di uno stack tramite l'interfaccia della riga di comando. I campi di primo livello sono:

Nome campo Tipo Descrizione
nome STRING Nome dello stack. Questo campo è lo stesso campo di StackConfig.
cli_version STRING Versione del CLI di Databricks usata per distribuire lo stack.
risorse distribuite Elenco di ResourceStatus Stato di ogni risorsa distribuita. Per ogni risorsa definita in StackConfig, viene generato un resourceStatus corrispondente qui.

ResourceStatus

Nome campo Tipo Descrizione
id STRING ID univoco dello stack per la risorsa.
servizio ResourceService Servizio API REST su cui opera la risorsa. Uno di: jobs,
workspace, o dbfs.
databricks_id DatabricksId ID fisico della risorsa distribuita. Lo schema effettivo dipende dal tipo (servizio) della risorsa.

DatabricksId

Oggetto JSON il cui campo dipende dal servizio.

Servizio Campo in JSON Tipo Descrizione
area di lavoro percorso STRING Il percorso assoluto del notebook o della directory in uno spazio di lavoro di Azure Databricks. La denominazione è coerente con l'API Workspace.
lavori ID lavoro STRING ID lavoro come mostrato in un'area di lavoro di Azure Databricks. Può essere usato per aggiornare le attività già distribuite.
dbfs percorso STRING Percorso assoluto del notebook o della directory in un'area di lavoro di Azure Databricks. La denominazione è coerente con l'API DBFS.