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: - BOOL Indica 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.