Condividi tramite


Interfaccia della riga di comando dello stack (legacy)

Importante

Questa documentazione è stata ritirata e potrebbe non essere aggiornata.

Queste informazioni si applicano alle versioni legacy dell'interfaccia della riga di comando di Databricks 0.18 e successive. Databricks consiglia di usare invece la versione 0.205 o successiva dell'interfaccia della riga di comando di Databricks più recente. Vedere Che cos'è l'interfaccia della riga di comando di Databricks?. Per trovare la versione dell'interfaccia della riga di comando di Databricks, eseguire databricks -v.

Per eseguire la migrazione dall'interfaccia della riga di comando di Databricks versione 0.18 o successiva all'interfaccia della riga di comando di Databricks versione 0.205 o successiva, vedere Migrazione dell'interfaccia della riga di comando di Databricks.

L'interfaccia della riga di comando di Databricks versione 0.205 e successive non supporta l'interfaccia della riga di comando dello stack. Databricks consiglia di usare invece il provider Databricks Terraform.

Nota

L'interfaccia della riga di comando dello stack richiede l'interfaccia della riga di comando 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.

È possibile eseguire sottocomandi dell'interfaccia della riga di comando dello stack di 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.

Scaricare le modifiche del notebook dello stack

Questo sottocomando scarica 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 notebooks/config cartella . Esiste una dipendenza della libreria JAR dello stack in lib/library.jar. config.json è il modello JSON di configurazione dello stack. Questo è ciò che viene passato nell'interfaccia della riga di comando dello stack per la distribuzione 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 risorsa che rappresenta un'area di lavoro o un asset DBFS contiene un mapping dal file o dalla directory in cui esiste localmente (source_path) alla posizione in cui esiste nell'area di lavoro o 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
name STRING Nome dello stack.
risorse Elenco di ResourceConfig An asset in Azure Databricks. Le risorse sono correlate a tre servizi (spazi dei nomi dell'API REST): area di lavoro, processi e dbfs.

ResourceConfig

Campi per ogni ResourceConfigoggetto . 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,
workspacedbfso .
proprietà Proprietà risorsa I campi in questo caso sono diversi a seconda del ResourceConfig servizio.

Proprietà risorsa

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 nell'interfaccia della riga di comando dello stack
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 directory dell'area di lavoro. Percorso relativo del file modello di configurazione dello stack o percorso assoluto nel file system.
jobs 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 del processo 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 path: 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: - STRINGPercorso di origine locale di file o directory DBFS. Percorso relativo del file modello di configurazione dello stack o percorso assoluto nel 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.
jobs Processo 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
name STRING Nome dello stack. Questo campo è lo stesso campo di StackConfig.
cli_version STRING Versione dell'interfaccia della riga di comando di Databricks usata per distribuire lo stack.
deployed_resources 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,
workspacedbfso .
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.

Service Campo in JSON Tipo Descrizione
area di lavoro path STRING Percorso assoluto del notebook o della directory in un'area di lavoro di Azure Databricks. La denominazione è coerente con l'API dell'area di lavoro.
jobs job_id STRING ID processo come illustrato in un'area di lavoro di Azure Databricks. Può essere usato per aggiornare i processi già distribuiti.
dbfs path STRING Percorso assoluto del notebook o della directory in un'area di lavoro di Azure Databricks. La denominazione è coerente con l'API DBFS.