スタック 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/config フォルダー内の構成ノートブックとともに、notebooks/common/notebook.scala 内のメインのノートブックが含まれています。 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 ファイルは、.json 拡張子の直前に deployed を追加した名前 (./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 と一致します。