Delen via


Stack CLI (verouderd)

Belangrijk

Deze documentatie is buiten gebruik gesteld en wordt mogelijk niet bijgewerkt.

Deze informatie is van toepassing op verouderde Databricks CLI-versies 0.18 en lager. Databricks raadt u aan om in plaats daarvan nieuwere Databricks CLI versie 0.205 of hoger te gebruiken. Zie Wat is de Databricks CLI? Voer de opdracht uit databricks -vom uw versie van de Databricks CLI te vinden.

Als u wilt migreren van Databricks CLI versie 0.18 of lager naar Databricks CLI versie 0.205 of hoger, raadpleeg dan de Databricks CLI-migratie.

Databricks CLI-versies 0.205 en hoger bieden geen ondersteuning voor de stack-CLI. Databricks raadt u aan in plaats daarvan de Databricks Terraform-provider te gebruiken.

Notitie

Voor de stack-CLI is Databricks CLI 0.8.3 of hoger vereist.

De stack CLI biedt een manier om een stack met Azure Databricks-resources, zoals taken, notebooks en DBFS-bestanden, te beheren. U kunt notebooks en DBFS-bestanden lokaal opslaan en een JSON-sjabloon voor stackconfiguratie maken waarmee toewijzingen van uw lokale bestanden naar paden in uw Azure Databricks-werkruimte worden gedefinieerd, samen met configuraties van taken die de notebooks uitvoeren.

Gebruik de stack CLI met de JSON-sjabloon voor stackconfiguratie om uw stack te implementeren en te beheren.

U voert CLI-subopdrachten voor Databricks-stack uit door ze toe te voegen aan 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]

Een stack implementeren in een werkruimte

Met deze subopdracht wordt een stack geïmplementeerd. Zie Stack instellen voor meer informatie over het instellen van een stack.

databricks stack deploy ./config.json

JSON-sjabloon voor stackconfiguratie geeft een voorbeeld van config.json.

Wijzigingen in stacknotebook downloaden

Met deze subopdracht worden de notebooks van een stack gedownload.

databricks stack download ./config.json

Voorbeelden

Stack instellen

Bestandsstructuur van een voorbeeldstack

tree
.
├── notebooks
|   ├── common
|   |   └── notebook.scala
|   └── config
|       ├── environment.scala
|       └── setup.sql
├── lib
|   └── library.jar
└── config.json

Deze voorbeeldstack bevat een hoofdnotitieblok in notebooks/common/notebook.scala combinatie met configuratienotebooks in de notebooks/config map. Er is een JAR-bibliotheekafhankelijkheid van de stack in lib/library.jar. config.json is de JSON-sjabloon voor stackconfiguratie van de stack. Dit is wat wordt doorgegeven aan de stack-CLI voor de implementatie van de stack.

JSON-sjabloon voor stackconfiguratie

In de stackconfiguratiesjabloon wordt de stackconfiguratie beschreven.

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"
          }
        ]
      }
    }
  ]
}

Elke taak, werkruimtenotitieblok, werkruimtemap, DBFS-bestand of DBFS-map wordt gedefinieerd als een ResourceConfig. Elk ResourceConfig item dat een werkruimte of DBFS-asset vertegenwoordigt, bevat een toewijzing uit het bestand of de map waar deze lokaal bestaat (source_path) naar de locatie waar deze zich in de werkruimte of DBFS (path) bevindt.

Het schema voor stackconfiguratiesjablonen bevat een overzicht van het schema voor de stackconfiguratiesjabloon.

Een stack implementeren

U implementeert een stack met behulp van de databricks stack deploy <configuration-file> opdracht.

databricks stack deploy ./config.json

Tijdens de stack-implementatie worden de DBFS- en werkruimte-assets geüpload naar uw Azure Databricks-werkruimte en worden er taken aangemaakt.

Tijdens het implementeren van een stack wordt een StackStatus JSON-bestand voor de implementatie opgeslagen in dezelfde map als de stackconfiguratiesjabloon, waarbij iets direct vóór de deployed extensie wordt toegevoegd:.json (bijvoorbeeld./config.deployed.json). Dit bestand wordt door de Stack CLI gebruikt om de eerdere geïmplementeerde resources in uw werkruimte bij te houden.

Het stackstatusschema geeft een overzicht van het schema van een stackconfiguratie.

Belangrijk

Probeer het stackstatusbestand niet te bewerken of te verplaatsen. Als er fouten optreden met betrekking tot het stackstatusbestand, verwijdert u het bestand en probeert u de implementatie opnieuw.

./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"
}

Gegevensstructuren

In deze sectie:

Sjabloonschema voor stackconfiguraties

StackConfig

Dit zijn de buitenste velden van een stackconfiguratiesjabloon. Alle velden zijn verplicht.

Veldnaam Type Beschrijving
naam STRING De naam van de stack.
middelen Lijst met ResourceConfig Een asset in Azure Databricks. Resources zijn gerelateerd aan drie services (REST API-naamruimten): werkruimte, taken en dbfs.

ResourceConfig

De velden voor elke ResourceConfig. Alle velden zijn verplicht.

Veldnaam Type Beschrijving
id STRING Een unieke id voor de resource. De uniekheid van ResourceConfig wordt afgedwongen.
service ResourceService De REST API-service waarop de resource werkt. Een van: jobs,
workspace, of dbfs.
eigenschappen ResourceProperties De velden hiervan zijn afhankelijk van de service ResourceConfig.

ResourceProperties

De eigenschappen van een resource door ResourceService. De velden worden geclassificeerd als de velden die worden gebruikt of niet worden gebruikt in een Azure Databricks REST API. Alle vermelde velden zijn vereist.

dienst Velden uit de REST API die wordt gebruikt in de Stack CLI Velden die alleen worden gebruikt in de Stack CLI
werkruimte pad: STRING- Externe werkruimtepaden van notebooks of mappen. (Bijvoorbeeld /Users/example@example.com/notebook)
object_type: Notebook-objecttype in Werkruimte-API. Kan alleen NOTEBOOK of DIRECTORY zijn.
source_path: STRING- Lokaal bronpad van werkruimtenotitieblokken of mappen. Een relatief pad naar het stackconfiguratiesjabloonbestand of een absoluut pad in uw bestandssysteem.
Banen Elk veldje in de instellingen of "new_settings" structuur. Het enige veld dat niet is vereist in de instellingen of new_settings structuur, maar vereist is voor stack CLI, is:
name: STRING- Naam van de taak die moet worden geïmplementeerd. Om niet teveel dubbele werkzaamheden te creëren, zorgt de Stack CLI ervoor dat unieknamen worden gebruikt in werkzaamheden die met Stack zijn geïmplementeerd.
Geen.
dbfs pad: STRING- overeenkomend extern DBFS-pad. Moet beginnen met dbfs:/. (bijvoorbeeld dbfs:/this/is/a/sample/path)
is_dir: BOOL- Of een DBFS-pad een map of een bestand is.
source_path: STRING- Lokaal bronpad van DBFS-bestanden of -mappen. Een relatief pad naar het sjabloonbestand voor stackconfiguratie of een absoluut pad in uw bestandssysteem.

ResourceService

Elke resource behoort tot een specifieke service die overeenkomt met de Databricks REST API. Dit zijn de services die worden ondersteund door de Stack CLI.

Dienst Beschrijving
werkruimte Een werkruimtenotitieblok of map.
Banen Een Azure Databricks-taak.
dbfs Een DBFS-bestand of -map.

Stackstatus-schema

StackStatus

Er wordt een stackstatusbestand gemaakt nadat een stack is geïmplementeerd met behulp van de CLI. De velden op het hoogste niveau zijn:

Veldnaam Typ Beschrijving
naam STRING De naam van de stack. Dit veld is hetzelfde veld als in StackConfig.
cli_versie STRING De versie van de Databricks CLI die wordt gebruikt om de stack te implementeren.
ingezette middelen Lijst met ResourceStatus De status van elke geïmplementeerde resource. Voor elke resource die in StackConfig is gedefinieerd, wordt hier een bijbehorende ResourceStatus gegenereerd.

ResourceStatus

Veldnaam Type Beschrijving
id STRING Een stackspecifieke ID voor de resource.
dienst ResourceService De REST API-service waarop de resource werkt. Een van: jobs,
workspace, of dbfs.
databricks_id DatabricksId De fysieke id van de geïmplementeerde resource. Het werkelijke schema is afhankelijk van het type (service) van de resource.

DatabricksId

Een JSON-object waarvan het veld afhankelijk is van de service.

Dienst Veld in JSON Type Beschrijving
werkruimte path STRING Het absolute pad van het notebook of de map in een Azure Databricks-werkruimte. Naamgeving is consistent met de Werkruimte-API.
Banen functie_id STRING De taak-id zoals weergegeven in een Azure Databricks-werkruimte. Dit kan worden gebruikt om taken bij te werken die al zijn geïmplementeerd.
dbfs path STRING Het absolute pad van het notebook of de map in een Azure Databricks-werkruimte. Naamgeving is consistent met de DBFS-API.