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 ResourceConfig
oggetto . 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 ,workspace dbfs o . |
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: - BOOL Indica se un percorso DBFS è una directory o un file. |
source_path: - STRING Percorso 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 ,workspace dbfs o . |
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. |