スタック CLI (レガシ)
重要
このドキュメントは廃止され、更新されない可能性があります。
この情報は、レガシ Databricks CLI バージョン 0.18 以前に適用されます。 Databricks では、代わりにバージョン 0.205 以降の新しい Databricks CLI を使うことをお勧めします。 「Databricks CLI について」を参照してください。 お使いの Databricks CLI のバージョンを確認するには、databricks -v
を実行してください。
Databricks CLI バージョン 0.18 以前から Databricks CLI バージョン 0.205 以降に移行する場合は、「Databricks CLI の移行」を参照してください。
Databricks CLI バージョン 0.205 以降では、スタック CLI はサポートされていません。 Databricks では、代わりに Databricks Terraform プロバイダーを使用することをお勧めします。
Note
スタック CLI には、Databricks CLI 0.8.3 以上が必要です。
スタック CLI は、ジョブ、ノートブック、DBFS ファイルなどの Azure Databricks リソースのスタックを管理する方法を提供します。 ノートブック ファイルと DBFS ファイルをローカルに保存し、ローカル ファイルから Azure Databricks ワークスペースのパスへのマッピングと、ノートブックを実行するジョブの構成を定義するスタック構成の JSON テンプレートを作成できます。
スタック構成の JSON テンプレートでスタック CLI を使用して、スタックをデプロイし、管理します。
Databricks スタック CLI サブコマンドを実行するには、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]
ワークスペースへのスタックのデプロイ
このサブコマンドは、スタックをデプロイします。 スタックを設定する方法については、「スタックの設定」を参照してください。
databricks stack deploy ./config.json
「Stack 構成の JSON テンプレート」には、config.json
の例が示されています。
スタック ノートブックの変更点のダウンロード
このサブコマンドは、スタックのノートブックをダウンロードします。
databricks stack download ./config.json
例
スタックの設定
スタックの例のファイル構造
tree
.
├── notebooks
| ├── common
| | └── notebook.scala
| └── config
| ├── environment.scala
| └── setup.sql
├── lib
| └── library.jar
└── config.json
この例のスタックには、notebooks/common/notebook.scala
フォルダー内の構成ノートブックとともに、notebooks/config
内のメインのノートブックが含まれています。 lib/library.jar
のスタックには JAR ライブラリの依存関係があります。 config.json
は、スタックのスタック構成の JSON テンプレートです。 スタックをデプロイするためにスタックk CLI に渡されます。
スタック構成の JSON テンプレート
スタック構成テンプレートには、スタック構成が記述されています。
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"
}
]
}
}
]
}
各ジョブ、ワークスペース ノートブック、ワークスペース ディレクトリ、DBFS ファイル、または DBFS ディレクトリは、ResourceConfig として定義されています。 ワークスペースまたは DBFS 資産を表す各 ResourceConfig
には、その資産がローカルに存在するファイルまたはディレクトリ (source_path
) から、ワークスペースまたは DBFS にその資産が存在する場所 (path
) へのマッピングが含まれています。
「スタック構成テンプレートのスキーマ」に、スタック構成テンプレートのスキーマの概要を示します。
スタックのデプロイ
スタックをデプロイするには、databricks stack deploy <configuration-file>
コマンドを使用します。
databricks stack deploy ./config.json
スタックのデプロイ中に、DBFS とワークスペースの資産が Azure Databricks ワークスペースにアップロードされ、ジョブが作成されます。
スタックのデプロイ時に、デプロイのStackStatus の JSON ファイルは、deployed
拡張子の直前に .json
を追加した名前 (./config.deployed.json
など) で同じディレクトリにスタック構成テンプレートとして保存されます。 このファイルは、過去にワークスペースにデプロイされたリソースを追跡するためにスタック CLI で使用されます。
「スタック状態スキーマ」に、スタック構成のスキーマの概要を示します。
重要
スタック状態ファイルを編集したり、移動したりしないでください。 スタック状態ファイルに関するエラーが発生した場合は、ファイルを削除してから、もう一度デプロイを試してください。
./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"
}
データ構造
このセクションの内容は次のとおりです。
スタック構成テンプレートのスキーマ
StackConfig
これらは、スタック構成テンプレートの外部フィールドです。 すべてのフィールドが必須です。
フィールド名 | Type | 説明 |
---|---|---|
name | STRING |
スタックの名前。 |
resources | ResourceConfig のリスト | Azure Databricks の資産。 リソースは、ワークスペース、ジョブ、dbfs の 3 つのサービス (REST API 名前空間) に関連しています。 |
ResourceConfig
各 ResourceConfig
のフィールド。 すべてのフィールドが必須です。
フィールド名 | Type | 説明 |
---|---|---|
id | STRING |
リソースの一意の ID。 ResourceConfig の一意性が適用されます。 |
service | ResourceService | リソースが動作する REST API サービス。 jobs 、workspace または dbfs 。 |
properties | ResourceProperties | このフィールドは、ResourceConfig サービスによって異なります。 |
ResourceProperties
ResourceService によるリソースのプロパティ。 フィールドは、Azure Databricks REST API で使用されているか、使用されていないかで分類されます。 リストに表示されているすべてのフィールドが必要です。
service | スタック CLI で使用される REST API のフィールド | スタック CLI でのみ使用されるフィールド |
---|---|---|
ワークスペース | path: STRING - ノートブックまたはディレクトリのリモート ワークスペース パス。 (例: /Users/example@example.com/notebook )object_type: Workspace API - Notebook オブジェクトの種類。 指定できるのは NOTEBOOK または DIRECTORY のみです。 |
source_path: STRING - ワークスペースのノートブックまたはディレクトリのローカル ソース パス。 スタック構成テンプレート ファイルへの相対パスまたはファイルシステム内の絶対パス。 |
jobs | settings または new_settings 構造の任意のフィールド。 settings または new_settings 構造では必要ではありませんが、スタック CLI には次のフィールドが必要です。 name: STRING - デプロイするジョブの名前。 多数の重複ジョブが作成されないようにするために、スタック CLI では、スタックにデプロイされたジョブに一意の名前を適用します。 |
なし。 |
dbfs | path: STRING - 一致するリモート DBFS パス。 パスの先頭は dbfs:/ である必要があります。 (例: dbfs:/this/is/a/sample/path )is_dir: BOOL - DBFS パスがディレクトリまたはファイルのいずれであるかを示します。 |
source_path: STRING - DBFS ファイルまたはディレクトリのローカル ソース パス。 スタック構成テンプレート ファイルへの相対パスまたはファイルシステム内の絶対パス。 |
ResourceService
各リソースは、Databricks REST API と連携する特定のサービスに属しています。 これらは、スタック CLI でサポートされているサービスです。
Service | 説明 |
---|---|
ワークスペース | ワークスペースのノートブックまたはディレクトリ。 |
jobs | Azure Databricks ジョブ。 |
dbfs | DBFS ファイルまたはディレクトリ。 |
スタック状態スキーマ
StackStatus
スタック状態ファイルは、CLI を使用してスタックがデプロイされた後に作成されます。 上位のフィールドは次のとおりです。
フィールド名 | Type | 説明 |
---|---|---|
name | STRING |
スタックの名前。 このフィールドは、StackConfig と同じフィールドです。 |
cli_version | STRING |
スタックのデプロイに使用される Databricks CLI のバージョン。 |
deployed_resources | ResourceStatus のリスト | デプロイされた各リソースの状態。 StackConfig で定義されているリソースごとに、対応する ResourceStatus がここで生成されます。 |
ResourceStatus
フィールド名 | Type | 説明 |
---|---|---|
id | STRING |
リソースのスタックで一意の ID。 |
service | ResourceService | リソースが動作する REST API サービス。 jobs 、workspace または dbfs 。 |
databricks_id | DatabricksId | デプロイされたリソースの物理 ID。 実際のスキーマは、リソースの種類 (サービス) によって異なります。 |
DatabricksId
フィールドがサービスに依存する JSON オブジェクト。
Service | JSON のフィールド | Type | 説明 |
---|---|---|---|
ワークスペース | path | STRING | Azure Databricks ワークスペース内のノートブックまたはディレクトリの絶対パス。 名前付けは、ワークスペース API と一致します。 |
jobs | job_id | STRING | Azure Databricks ワークスペースに表示されるジョブ ID。 これは、すでにデプロイされているジョブを更新するために使用できます。 |
dbfs | path | STRING | Azure Databricks ワークスペース内のノートブックまたはディレクトリの絶対パス。 名前付けは DBFS API と一致します。 |