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.
tjänst 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.

tjänst 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 Description
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.
tjänst 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.

Service Fält i JSON Typ Description
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.