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 -v
om 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. |