Freigeben über


Stapel CLI (Legacy)

Wichtig

Diese Dokumentation wurde eingestellt und wird unter Umständen nicht aktualisiert.

Diese Informationen gelten für ältere Versionen der Databricks-Befehlszeilenschnittstelle (0.18 und niedriger). Databricks empfiehlt, stattdessen die neuere Databricks-CLI Version 0.205 oder höher zu verwenden. Weitere Informationen finden Sie unter Was ist die Databricks-CLI?. Führen Sie databricks -v aus, um die Version Ihrer Databricks CLI zu ermitteln.

Informationen zum Migrieren der Databricks CLI-Version 0.18 oder niedriger zur Databricks CLI-Version 0.205 oder höher finden Sie unter Databricks CLI-Migration.

Databricks CLI-Versionen 0.205 und höher unterstützen die Stapelbefehlszeilenschnittstelle nicht. Databricks empfiehlt, stattdessen den Databricks Terraform-Anbieter zu verwenden.

Hinweis

Die Stapel-CLI erfordert Databricks CLI 0.8.3 oder höher.

Die Stapel-CLI ermöglicht die Verwaltung eines Stapels mit Azure Databricks-Ressourcen wie Aufträgen, Notebooks und DBFS-Dateien. Sie können Notebooks und DBFS-Dateien lokal speichern und eine JSON-Vorlage für die Stapelkonfiguration erstellen, die Zuordnungen aus Ihren lokalen Dateien zu Pfaden in Ihrem Azure Databricks-Arbeitsbereich sowie Konfigurationen von Aufträgen definiert, die die Notebooks ausführen.

Verwenden Sie die Stapel-CLI mit der JSON-Vorlage für die Stapelkonfiguration, um Ihren Stapel bereitzustellen und zu verwalten.

Sie führen Unterbefehle über die Stapel-CLI für Databricks aus, indem Sie sie an databricks stack anfügen.

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]

Bereitstellen eines Stapels in einem Arbeitsbereich

Dieser Unterbefehl stellt einen Stapel bereit. Informationen zum Einrichten eines Stapels finden Sie unter Stapeleinrichtung.

databricks stack deploy ./config.json

Die JSON-Vorlage für die Stapelkonfiguration enthält ein Beispiel für config.json.

Herunterladen von Änderungen am Stapelnotebook

Dieser Unterbefehl lädt die Notebooks eines Stapels herunter.

databricks stack download ./config.json

Beispiele

Stapeleinrichtung

Dateistruktur eines Beispielstapels

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

Dieser Beispielstapel enthält ein Hauptnotebook in notebooks/common/notebook.scala und Konfigurationsnotebooks im Ordner notebooks/config. Es besteht eine JAR-Bibliotheksabhängigkeit des Stapels in lib/library.jar. config.json ist die JSON-Vorlage für die Stapelkonfiguration des Stapels. Diese wird an die Stapel-CLI für die Bereitstellung des Stapels übergeben.

JSON-Vorlage für die Stapelkonfiguration

Die Stapelkonfigurationsvorlage beschreibt die Stapelkonfiguration.

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

Jeder Auftrag, jedes Arbeitsbereichsnotebook, jedes Arbeitsbereichsverzeichnis, jede DBFS-Datei oder jedes DBFS-Verzeichnis wird als ResourceConfig definiert. Jede ResourceConfig, die einen Arbeitsbereich oder ein DBFS-Objekt darstellt, enthält eine Zuordnung aus der Datei oder dem Verzeichnis, in der bzw. dem sie lokal vorhanden ist (source_path), zu dem Ort, wo sie sich im Arbeitsbereich oder DBFS (path) befinden würde.

Das Schema der Stapelkonfigurationsvorlage beschreibt das Schema für die Stapelkonfigurationsvorlage.

Bereitstellen eines Stapels

Sie stellen einen Stapel mit dem Befehl databricks stack deploy <configuration-file> bereit.

databricks stack deploy ./config.json

Während der Stapelbereitstellung werden die DBFS- und Arbeitsbereichsobjekte in den Azure Databricks-Arbeitsbereich hochgeladen, und Aufträge werden erstellt.

Zum Zeitpunkt der Stapelbereitstellung wird eine StackStatus-JSON-Datei für die Bereitstellung im selben Verzeichnis wie die Stapelkonfigurationsvorlage mit dem Namen gespeichert, wobei deployed unmittelbar vor der .json-Erweiterung hinzugefügt wird: (z. B. ./config.deployed.json). Diese Datei wird von der Stapel-CLI verwendet, um die bereits bereitgestellten Ressourcen in Ihrem Arbeitsbereich nachzuverfolgen.

Das Stapelstatusschema beschreibt das Schema einer Stapelkonfiguration.

Wichtig

Bearbeiten oder verschieben Sie nicht die Stapelstatusdatei. Wenn Sie Fehler in Bezug auf die Stapelstatusdatei erhalten, löschen Sie die Datei, und führen Sie die Bereitstellung noch einmal durch.

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

Datenstrukturen

Inhalt dieses Abschnitts:

Schema der Stapelkonfigurationsvorlage

StackConfig

Dies sind die äußeren Felder einer Stapelkonfigurationsvorlage. Alle Felder sind erforderlich.

Feldname Typ BESCHREIBUNG
name STRING Der Name des Stapels.
ressourcen Liste der ResourceConfig-Objekte Ein Objekt in Azure Databricks. Ressourcen beziehen sich auf drei Dienste (REST-API-Namespaces): Arbeitsbereich, Aufträge und DBFS.

ResourceConfig

Die Felder für jede ResourceConfig. Alle Felder sind erforderlich.

Feldname Typ Beschreibung
id STRING Eine eindeutige ID für die Ressource. Die Eindeutigkeit von ResourceConfig wird erzwungen.
service ResourceService Der REST-API-Dienst, mit dem die Ressource arbeitet. Eine der folgenden Ressourcen jobs,
workspace oder dbfs.
properties ResourceProperties Die Felder in diesem unterscheiden sich je nach ResourceConfig-Dienst.

ResourceProperties

Die Eigenschaften einer Ressource nach ResourceService. Die Felder werden als verwendete oder nicht verwendete Felder in einer Azure Databricks-REST API klassifiziert. Alle aufgeführten Felder sind erforderlich.

service Felder aus der REST-API, die in der Stapel-CLI verwendet werden Nur in der Stapel-CLI verwendete Felder
Arbeitsbereich path: STRING: Remotearbeitsbereichspfade von Notebooks oder Verzeichnissen. (Beispiel /Users/example@example.com/notebook)

object_type: Arbeitsbereichs-API – Notebook-Objekttyp. Kann nur NOTEBOOK oder DIRECTORY sein.
source_path: STRING: Lokaler Quellpfad von Arbeitsbereichsnotebooks oder -verzeichnissen. Ein relativer Pfad zur Vorlagendatei der Stapelkonfiguration oder ein absoluter Pfad in Ihrem Dateisystem.
jobs Jedes Feld in den Einstellungen oder in der Struktur „new_settings“. Das einzige Feld, das in den Einstellungen oder in der Struktur „new_settings“ nicht erforderlich ist, für die Stapel-CLI erforderlich hingegen schon, ist:

name: STRING: Der Name des bereitzustellenden Auftrags. Die Stapel-CLI erzwingt eindeutige Namen für die im Stapel bereitgestellten Aufträgen, damit nicht zu viele doppelte Aufträge erstellt werden.
None (Keine):
dbfs path: STRING: Entspricht dem DBFS-Remotepfad. Muss mit dbfs:/ beginnen. (Beispiel dbfs:/this/is/a/sample/path)

is_dir: BOOL: Gibt an, ob ein DBFS-Pfad ein Verzeichnis oder eine Datei ist.
source_path: STRING: Lokaler Quellpfad von DBFS-Dateien oder -Verzeichnissen. Ein relativer Pfad zur Vorlagendatei der Stapelkonfiguration oder ein absoluter Pfad in Ihrem Dateisystem.

ResourceService

Jede Ressource gehört zu einem bestimmten Dienst, der an der Databricks-REST-API ausgerichtet ist. Dies sind die Dienste, die von der Stapel-CLI unterstützt werden.

Dienst BESCHREIBUNG
Arbeitsbereich Ein Arbeitsbereichsnotebook oder -verzeichnis.
jobs Ein Azure Databricks-Auftrag.
dbfs Eine DBFS-Datei oder ein DBFS-Verzeichnis.

Stapelstatusschema

StackStatus

Eine Stapelstatusdatei wird erstellt, nachdem ein Stapel über die CLI bereitgestellt wurde. Die Felder der obersten Ebene sind:

Feldname Typ BESCHREIBUNG
name STRING Der Name des Stapels. Dieses Feld ist das gleiche Feld wie in StackConfig.
cli_version STRING Die Version der Databricks-CLI, die zum Bereitstellen des Stapels verwendet wird.
deployed_resources Liste der ResourceStatus-Objekte Der Status jeder bereitgestellten Ressource. Für jede in StackConfig definierte Ressource wird hier ein entsprechender ResourceStatus generiert.

ResourceStatus

Feldname Typ Beschreibung
id STRING Eine für den Stapel eindeutige Ressourcen-ID.
service ResourceService Der REST-API-Dienst, mit dem die Ressource arbeitet. Eine der folgenden Ressourcen jobs,
workspace oder dbfs.
databricks_id DatabricksId Die physische ID der bereitgestellten Ressource. Das tatsächliche Schema hängt vom Typ (Dienst) der Ressource ab.

DatabricksId

Ein JSON-Objekt, dessen Feld vom Dienst abhängt.

Dienst Feld in JSON Type BESCHREIBUNG
Arbeitsbereich path STRING Der absolute Pfad des Notebooks oder Verzeichnisses in einem Azure Databricks-Arbeitsbereich. Die Benennung entspricht der Arbeitsbereichs-API.
jobs job_id STRING Die Auftrags-ID, wie in einem Azure Databricks-Arbeitsbereich dargestellt. Diese kann zum Aktualisieren bereits bereitgestellter Aufträge verwendet werden.
dbfs path STRING Der absolute Pfad des Notebooks oder Verzeichnisses in einem Azure Databricks-Arbeitsbereich. Die Benennung entspricht der DBFS-API.