Stack CLI (äldre)
Viktigt!
Den här dokumentationen har dragits tillbaka och kanske inte uppdateras.
Den här informationen gäller för äldre Databricks CLI-versioner 0.18 och senare. Databricks rekommenderar att du använder nyare Databricks CLI version 0.205 eller senare i stället. Se Vad är Databricks CLI?. Kör för att hitta din version av Databricks CLI databricks -v
.
Information om hur du migrerar från Databricks CLI version 0.18 eller senare till Databricks CLI version 0.205 eller senare finns i Databricks CLI-migrering.
Databricks CLI-versionerna 0.205 och senare stöder inte STACK CLI. Databricks rekommenderar att du använder Databricks Terraform-providern i stället.
Kommentar
Stack CLI kräver Databricks CLI 0.8.3 eller senare.
Stack CLI är ett sätt att hantera en stack med Azure Databricks-resurser, till exempel jobb, notebook-filer och DBFS-filer. Du kan lagra notebook-filer och DBFS-filer lokalt och skapa en JSON-mall för stackkonfiguration som definierar mappningar från dina lokala filer till sökvägar i Azure Databricks-arbetsytan, tillsammans med konfigurationer av jobb som kör notebook-filerna.
Använd STACK CLI med JSON-mallen för stackkonfiguration för att distribuera och hantera din stack.
Du kör Databricks-stackens CLI-underkommandon genom att lägga till dem i 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]
Distribuera en stack till en arbetsyta
Den här underkommandot distribuerar en stack. Se Stack-konfiguration för att lära dig hur du konfigurerar en stack.
databricks stack deploy ./config.json
JSON-mall för stackkonfiguration ger ett exempel på config.json
.
Ladda ned ändringar i stackanteckningsboken
Den här underkommandot laddar ned notebook-filerna för en stack.
databricks stack download ./config.json
Exempel
Stack-konfiguration
Filstruktur för en exempelstack
tree
.
├── notebooks
| ├── common
| | └── notebook.scala
| └── config
| ├── environment.scala
| └── setup.sql
├── lib
| └── library.jar
└── config.json
Den här exempelstacken innehåller en huvudanteckningsbok tillsammans notebooks/common/notebook.scala
med konfigurationsanteckningsböcker i notebooks/config
mappen. Det finns ett JAR-biblioteksberoende för stacken i lib/library.jar
. config.json
är stackkonfigurationens JSON-mall för stacken. Det här är vad som skickas till STACK CLI för distribution av stacken.
JSON-mall för stackkonfiguration
Stackkonfigurationsmallen beskriver stackkonfigurationen.
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"
}
]
}
}
]
}
Varje jobb, arbetsyteanteckningsbok, arbetsytekatalog, DBFS-fil eller DBFS-katalog definieras som en ResourceConfig. Var ResourceConfig
och en som representerar en arbetsyta eller DBFS-tillgång innehåller en mappning från filen eller katalogen där den finns lokalt (source_path
) till den plats där den skulle finnas på arbetsytan eller DBFS (path
).
Schemat för stackkonfigurationsmallen beskriver schemat för stackkonfigurationsmallen.
Distribuera en stack
Du distribuerar en stack med kommandot databricks stack deploy <configuration-file>
.
databricks stack deploy ./config.json
Under stackdistributionen laddas DBFS- och arbetsytans tillgångar upp till din Azure Databricks-arbetsyta och jobb skapas.
Vid stackdistributionen sparas en StackStatus JSON-fil för distributionen i samma katalog som stackkonfigurationsmallen med namnet och läggs till deployed
omedelbart före .json
tillägget: (till exempel ./config.deployed.json
). Den här filen används av Stack CLI för att hålla reda på tidigare distribuerade resurser på din arbetsyta.
Stackstatusschema beskriver schemat för en stackkonfiguration.
Viktigt!
Försök inte redigera eller flytta stackstatusfilen. Om du får fel om stackstatusfilen tar du bort filen och försöker distribuera igen.
./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"
}
Datastrukturer
I detta avsnitt:
Schema för stackkonfigurationsmall
StackConfig
Det här är de yttre fälten i en stackkonfigurationsmall. Alla fält måste fyllas i.
Fältnamn | Typ | Beskrivning |
---|---|---|
name | STRING |
Namnet på stacken. |
resurser | Lista över ResourceConfig | En tillgång i Azure Databricks. Resurser är relaterade till tre tjänster (REST API-namnområden): arbetsyta, jobb och dbfs. |
ResourceConfig
Fälten för varje ResourceConfig
. Alla fält måste fyllas i.
Fältnamn | Typ | Beskrivning |
---|---|---|
id | STRING |
Ett unikt ID för resursen. ResourceConfigs unika funktioner tillämpas. |
service | ResourceService | REST API-tjänsten som resursen körs på. En av: jobs ,workspace , eller dbfs . |
egenskaper | ResourceProperties | Fälten i detta skiljer sig beroende på tjänsten ResourceConfig . |
ResourceProperties
Egenskaperna för en resurs efter ResourceService. Fälten klassificeras som de som används eller inte används i ett REST-API för Azure Databricks. Alla fält som anges är obligatoriska.
service | Fält från REST-API:et som används i Stack CLI | Fält som endast används i Stack CLI |
---|---|---|
arbetsyta | path: STRING – Fjärrarbetsytesökvägar för notebook-filer eller kataloger. (Ex. /Users/example@example.com/notebook )object_type: Api för arbetsyta – Notebook-objekttyp. Kan bara vara NOTEBOOK eller DIRECTORY . |
source_path: STRING – Sökväg till lokal källa för notebook-filer eller kataloger för arbetsytan. En relativ sökväg till stackkonfigurationsmallfilen eller en absolut sökväg i filsystemet. |
Jobb | Valfritt fält i inställningarna eller new_settings struktur. Det enda fältet som inte krävs i inställningarna eller new_settings struktur men som krävs för stack-CLI är: name: STRING – Namnet på det jobb som ska distribueras. För att inte skapa för många duplicerade jobb framtvingar Stack CLI unika namn i stackdistribuerade jobb. |
Inga. |
dbfs | path: STRING – Matchande fjärr-DBFS-sökväg. Måste börja med dbfs:/ . (ex. dbfs:/this/is/a/sample/path )is_dir: BOOL – Om en DBFS-sökväg är en katalog eller en fil. |
source_path: STRING – Sökväg till lokal källa för DBFS-filer eller kataloger. En relativ sökväg till stackkonfigurationsmallfilen eller en absolut sökväg i filsystemet. |
ResourceService
Varje resurs tillhör en specifik tjänst som överensstämmer med Databricks REST API. Det här är de tjänster som stöds av Stack CLI.
Tjänst | beskrivning |
---|---|
arbetsyta | En anteckningsbok eller katalog för arbetsytan. |
Jobb | Ett Azure Databricks-jobb. |
dbfs | En DBFS-fil eller -katalog. |
Schema för stackstatus
StackStatus
En stackstatusfil skapas när en stack har distribuerats med hjälp av CLI. Fälten på den översta nivån är:
Fältnamn | Typ | Beskrivning |
---|---|---|
name | STRING |
Namnet på stacken. Det här fältet är samma fält som i StackConfig. |
cli_version | STRING |
Den version av Databricks CLI som används för att distribuera stacken. |
deployed_resources | Lista över ResourceStatus | Status för varje distribuerad resurs. För varje resurs som definierats i StackConfig genereras motsvarande ResourceStatus här. |
ResourceStatus
Fältnamn | Typ | Beskrivning |
---|---|---|
id | STRING |
Ett stack-unikt ID för resursen. |
service | ResourceService | REST API-tjänsten som resursen körs på. En av: jobs ,workspace , eller dbfs . |
databricks_id | DatabricksId | Det fysiska ID:t för den distribuerade resursen. Det faktiska schemat beror på resursens typ (tjänst). |
DatabricksId
Ett JSON-objekt vars fält är beroende av tjänsten.
Tjänst | Fält i JSON | Typ | Beskrivning |
---|---|---|---|
arbetsyta | path | STRÄNG | Den absoluta sökvägen för notebook-filen eller katalogen på en Azure Databricks-arbetsyta. Namngivning är konsekvent med API:et för arbetsyta. |
Jobb | job_id | STRÄNG | Jobb-ID:t som visas på en Azure Databricks-arbetsyta. Detta kan användas för att uppdatera jobb som redan har distribuerats. |
dbfs | path | STRÄNG | Den absoluta sökvägen för notebook-filen eller katalogen på en Azure Databricks-arbetsyta. Namngivning är konsekvent med DBFS-API:et. |