メインコンテンツまでスキップ

スタック CLI (レガシー)

important

このドキュメントは廃止されており、更新されない可能性があります。

この情報は、従来の Databricks CLI バージョン 0.18 以下に適用されます。 Databricks では、代わりに新しい Databricks CLI バージョン 0.205 以降を使用することをお勧めします。 「Databricks CLI とは」を参照してください。Databricks CLI のバージョンを確認するには、 databricks -vを実行します。

Databricks CLI バージョン 0.18 以前から Databricks CLI バージョン 0.205 以降に移行するには、「 Databricks CLI の移行」を参照してください。

Databricks CLI バージョン 0.205 以降では、スタック CLI はサポートされていません。 Databricks では、代わりに Databricks Terraform プロバイダー を使用することをお勧めします。

注記

スタック CLI には、Databricks CLI 0.8.3 以降が必要です。

スタック CLI は、ジョブなどの Databricks リソースのスタックを管理する方法を提供します。 ノートブック、および DBFS ファイル。 ノートブックと DBFS ファイルをローカルに保存し、スタック設定 JSON テンプレートを作成できます。 は、ローカル ファイルから Databricks ワークスペース内のパスへのマッピングを定義します。 ノートブックを実行するジョブの構成。

スタック CLI とスタック設定 JSON テンプレートを使用して、スタックをデプロイおよび管理します。

Databricks スタック CLI サブコマンドを実行するには、それらを databricks stack.

Bash
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]

スタックをワークスペースにデプロイする

このサブコマンドは、スタックをデプロイします。 スタックの設定方法については、「 スタックのセットアップ 」を参照してください。

Bash
databricks stack deploy ./config.json

スタック設定 JSON テンプレート は、 config.jsonの例を示しています。

スタックノートブックの変更のダウンロード

このサブコマンドは、スタックのノートブックをダウンロードします。

Bash
databricks stack download ./config.json

スタックのセットアップ

サンプルスタックのファイル構造

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

このサンプルスタックには、 notebooks/common/notebook.scala のメインノートブックと設定が含まれています notebooks/config フォルダ内のノートブック。 スタックの JAR ライブラリ依存関係があります lib/library.jar年に。 config.json スタックのスタック設定 JSON テンプレートです。 これは スタックのデプロイのためにスタック CLI に渡される内容。

スタック設定 JSON テンプレート

スタック設定テンプレートは、スタック設定を記述します。

Bash
cat config.json
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": "i3.xlarge",
"aws_attributes": {
"availability": "SPOT"
},
"num_workers": 3
},
"timeout_seconds": 7200,
"max_retries": 1,
"notebook_task": {
"notebook_path": "/Users/example@example.com/dev/notebook"
}
}
}
]
}

各ジョブ、ワークスペース ノートブック、ワークスペース ディレクトリ、DBFS ファイル、または DBFS ディレクトリ は ResourceConfig として定義されます。 ワークスペースまたは DBFS 資産を表す各 ResourceConfig には、次のものが含まれます ローカルに存在するファイルまたはディレクトリ (source_path) からワークスペースまたは DBFS (path) に存在する場所へのマッピング。

スタック設定テンプレートスキーマ スタック設定テンプレートのスキーマの概要を示します。

スタックのデプロイ

スタックをデプロイするには、 databricks stack deploy <configuration-file> コマンドを使用します。

Bash
databricks stack deploy ./config.json

スタックのデプロイ中に、DBFS とワークスペースのアセットが Databricks ワークスペースとジョブが作成されます。

スタックのデプロイ時に、デプロイの StackStatus JSON ファイルが保存されます スタック設定テンプレートと同じディレクトリに、名前が付けられ、 deployed .json 拡張子の直前: (例: ./config.deployed.json)。 これ ファイルは、ワークスペースに過去にデプロイされたリソースを追跡するために Stack CLI によって使用されます。

スタックステータススキーマ は、スタック設定のスキーマの概要を示します。

important

スタック状況ファイルを編集または移動しようとしないでください。 に関するエラーが発生した場合 スタックステータスファイルの場合は、ファイルを削除してから、デプロイを再試行してください。

Bash
cat ./config.deployed.json
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"
}

データ構造

このセクションの内容:

スタック構成テンプレートのスキーマ

スタックコンフィグ

これらは、スタック設定テンプレートの外側のフィールドです。 すべてのフィールドが必須です。

フィールド名

タイプ

説明

name

STRING

スタックの名前。

リソース

ResourceConfigのリスト

Databricks の資産。 リソースは、ワークスペース、ジョブ、dbfs の 3 つのサービス (REST API 名前空間) に関連しています。

リソースコンフィグ

ResourceConfigのフィールド。 すべてのフィールドが必須です。

フィールド名

タイプ

説明

ID、

STRING

リソースの一意の ID。 ResourceConfig の一意性は強制されます。

サービス

リソースサービス

リソースが動作する REST API サービス。 次のいずれか: jobsworkspace、または dbfs.

properties

リソースプロパティ

この項目は、 ResourceConfig サービスによって異なります。

リソースプロパティ

ResourceService によるリソースのプロパティ。フィールド は、Databricks REST API で使用されるものと使用されないものに分類されます。 リストされているすべてのフィールドが必須です。

サービス

スタック CLI で使用される REST API のフィールド

スタック CLI でのみ使用されるフィールド

workspace

path: STRING- ノートブックまたはディレクトリのリモート ワークスペース パス。 (例。 /Users/example@example.com/notebook) object_type: ワークスペース API - ノートブック オブジェクト タイプ。 NOTEBOOK または DIRECTORYのみ使用できます。

ソース: STRING- ワークスペース ノートブックまたはディレクトリのローカル ソース パス。 スタック設定テンプレートファイルへの相対パス、またはファイルシステム内の絶対パス。

jobs

設定またはnew_settings構造体の任意のフィールド。設定またはnew_settings構造では必須ではないが、スタック CLI には必要なフィールドのみです。 name: STRING- デプロイするジョブの名前。 重複するジョブを多く作成しないように、Stack CLI では、スタックにデプロイされたジョブに一意の名前が適用されます。

何一つ。

dbfs

path: STRING- 一致するリモート DBFS パス。 dbfs:/で始まる必要があります。(例: dbfs:/this/is/a/sample/path) is_dir: BOOL- DBFS パスがディレクトリかファイルか。

ソース: STRING- DBFS ファイルまたはディレクトリのローカル ソース パス。 スタック設定テンプレートファイルへの相対パス、またはファイルシステム内の絶対パス。

リソースサービス

各リソースは、Databricks REST API と一致する特定のサービスに属します。これらは、スタック CLI でサポートされているサービスです。

サービス

説明

workspace

ワークスペース ノートブックまたはディレクトリ。

jobs

Databricks ジョブ。

dbfs

DBFS ファイルまたはディレクトリ。

スタックステータススキーマ

スタックステータス

スタックステータスファイルは、CLI を使用してスタックがデプロイされた後に作成されます。 最上位のフィールドは次のとおりです。

フィールド名

タイプ

説明

name

STRING

スタックの名前。 このフィールドは 、StackConfig と同じフィールドです。

CLI

STRING

スタックのデプロイに使用される Databricks CLI のバージョン。

deployed_resources

ResourceStatusのリスト

デプロイされた各リソースのステータス。 StackConfig で定義されたリソースごとに、対応する ResourceStatus がここで生成されます。

リソースステータス

フィールド名

タイプ

説明

ID、

STRING

リソースのスタック固有 ID。

サービス

リソースサービス

リソースが動作する REST API サービス。 次のいずれか: jobsworkspace、または dbfs.

databricks_id

データブリックスID

デプロイされたリソースの物理 ID。 実際のスキーマは、リソースの種類 (サービス) によって異なります。

データブリックスID

フィールドがサービスに依存する JSON オブジェクト。

サービス

JSONのフィールド

タイプ

説明

workspace

パス

文字列

Databricks ワークスペース内のノートブックまたはディレクトリの絶対パス。 名前付けは、ワークスペース APIと一致しています。

jobs

ジョブ

文字列

Databricks ワークスペースに表示されるジョブ ID。 これは、既にデプロイされているジョブを更新するために使用できます。

dbfs

パス

文字列

Databricks ワークスペース内のノートブックまたはディレクトリの絶対パス。 名前付けは DBFS API と一貫しています。