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

Databricks アセットバンドルの開発

この記事では、 Databricks アセット バンドル の開発とライフサイクルについて説明します。 Databricks アセット バンドルの一般的な情報については、「 Databricks アセット バンドルとは」を参照してください。

バンドルのライフサイクル

バンドルを効果的に使用する方法を理解するには、バンドルの基本的なライフサイクルを理解する必要があります。

  1. バンドルのスケルトンはプロジェクトに基づいて作成されます
  2. バンドルプロジェクトはローカル で開発 されています。 バンドルには、デプロイメント・ターゲットなどのインフラストラクチャーとワークスペースの設定、ジョブやパイプラインなどの Databricks ・リソースの設定、ソース・ファイル、その他のアーティファクトを定義する構成ファイルが含まれています。
  3. バンドル・プロジェクトが 検証されます。 検証では、バンドル構成の設定とリソース定義を対応するオブジェクト スキーマと照合して、バンドルが Databricks にデプロイ可能であることを確認します。
  4. バンドルはターゲット ワークスペース にデプロイ されます。 最も一般的には、バンドルは最初にテストのためにユーザーの個人用開発ワークスペースにデプロイされます。 バンドルのテストが完了したら、バンドルをステージング、本番運用ターゲットにデプロイできます。
  5. デプロイされたバンドルで定義されたワークフローリソース を実行できます。 たとえば、ジョブを実行できます。
  6. バンドルが使用されなくなった場合、バンドルは永久 に破棄される可能性があります。

Databricks CLI バンドル コマンドを使用して、次のセクションで説明するように、バンドルを作成、検証、デプロイ、実行、破棄します。

ステップ1: バンドルを作成します

バンドルの作成を開始するには、次の 3 つの方法があります。

  1. デフォルトのバンドルテンプレートを使用します。
  2. カスタムバンドルテンプレートを使用してください。
  3. バンドルを手動で作成してください。

デフォルトのバンドルテンプレートを使用する

Databricks デフォルト バンドル テンプレートを使用してスターター バンドルを作成し、さらにカスタマイズするには、バージョン 0.218.0 以降Databricks CLI使用して bundle init コマンドを実行します。これにより、使用可能なテンプレートの一覧から選択できます。「プロジェクトテンプレートからのバンドルの作成」を参照してください。

Bash
databricks bundle init

デフォルト バンドル テンプレートのソース は、databricks/CLIdatabricks/mlops-stacks の Github パブリック リポジトリで表示できます。

ステップ 2: バンドルの設定ファイルを入力するに進んでください

カスタムバンドルテンプレートを使用する

Databricks デフォルト バンドル テンプレート以外のバンドル テンプレートを使用するには、リモート バンドル テンプレートの場所へのローカル パスまたは URL を知っている必要があります。Databricks CLI バージョン 0.218.0 以降を使用して、次のように bundle init コマンドを実行します。

Bash
databricks bundle init <project-template-local-path-or-url>

このコマンドの詳細については、「アセットバンドルプロジェクトテンプレートDatabricks」を参照してください。特定のバンドルテンプレートに関する情報については、バンドルテンプレートプロバイダーのドキュメントを参照してください。

ステップ 2: バンドルの設定ファイルを入力するに進んでください

バンドルを手動で作成してください

バンドル テンプレートを使用する代わりに手動でバンドルを作成するには、ローカル マシン上にプロジェクト ディレクトリを作成するか、サードパーティの Git プロバイダーを使用して空のリポジトリを作成します。

ディレクトリまたはリポジトリに、入力として 1 つ以上のバンドル設定ファイルを作成します。 これらのファイルはYAML形式で表されます。 少なくとも 1 つ (1 つだけ) のバンドル設定ファイル databricks.ymlという名前が必要です。 追加のバンドル構成ファイルは、databricks.yml ファイルの include マッピングで参照する必要があります。

Databricks Asset Bundle 構成構文に準拠した YAML ファイルをより簡単かつ迅速に作成するには、次のように YAML ファイルと JSON スキーマ ファイルのサポートを提供する Visual Studio CodePyCharm ProfessionalIntelliJ IDEA Ultimate などのツールを使用できます。

  1. Add YAML language server support to Visual Studio Code, for example by installing the YAML extension from the Visual Studio Code Marketplace.

  2. Generate the Databricks Asset Bundle configuration JSON schema file using Databricks CLI version 0.218.0 or above to run the bundle schema command and redirect the output to a JSON file. For example, generate a file named bundle_config_schema.json within the current directory, as follows:

    Bash
    databricks bundle schema > bundle_config_schema.json
  3. Use Visual Studio Code to create or open a bundle configuration file within the current directory. This file must be named databricks.yml.

  4. Add the following comment to the beginning of your bundle configuration file:

    YAML
    # yaml-language-server: $schema=bundle_config_schema.json
注記

In the preceding comment, if your Databricks Asset Bundle configuration JSON schema file is in a different path, replace bundle_config_schema.json with the full path to your schema file.

  1. Use the YAML language server features that you added earlier. For more information, see your YAML language server’s documentation.

ステップ2: バンドルの設定ファイルを入力する

バンドル構成ファイルは、ワークスペースの詳細、アーティファクト名、ファイルの場所、ジョブの詳細、パイプラインの詳細などの設定を指定することで、 Databricks ワークフローを定義します。 通常、バンドル構成には、開発、ステージング、および本番運用のデプロイメント・ターゲットも含まれます。 バンドル設定ファイルの詳細については、「アセットバンドルの設定Databricks」を参照してください。

bundle generate コマンドを使用して、ワークスペース内の既存のリソースのバンドル構成を自動生成し、bundle deployment bind を使用してバンドル構成をワークスペース内のリソースにリンクし、それらの同期を維持できます。バンドル構成ファイルの生成およびバンドル・リソースのバインドを参照してください。

ステップ 3: バンドル設定ファイルを検証する

アーティファクトをデプロイしたり、ジョブやパイプラインを実行したりする前に、バンドル設定ファイルの定義が有効であることを確認する必要があります。 これを行うには、バンドル・プロジェクトのルート・ディレクトリーから bundle validate コマンドを実行します。 バンドルの検証を参照してください。

Bash
databricks bundle validate

検証が成功すると、バンドル ID の要約と確認メッセージが返されます。 スキーマを出力するには、 databricks bundle schema コマンドを使用します。 バンドル構成スキーマの表示を参照してください。

ステップ 4: バンドルをデプロイする

バンドルをデプロイする前に、リモート ワークスペースでワークスペース ファイルが有効になっていることを確認してください。 「ワークスペースファイルとは」を参照してください。

バンドルをリモート ワークスペースにデプロイするには、バンドルのデプロイで説明されているように、バンドル ルートから bundle deploy コマンドを実行します。Databricks CLI は、バンドル構成ファイル内で宣言されているターゲット ワークスペースにデプロイされます。 「ターゲット」を参照してください。

Bash
databricks bundle deploy

バンドルの一意の ID は、その名前、ターゲット、およびデプロイヤの ID によって定義されます。 これらの属性が異なるバンドル間で同一である場合、これらのバンドルのデプロイは互いに干渉します。 詳細については 、「バンドルのデプロイ 」を参照してください。

ヒント

バンドル ルートの外部で databricks bundle コマンドを実行するには、 BUNDLE_ROOT 環境変数を設定します。 この環境変数が設定されていない場合、 databricks bundle コマンドは、現行の作業ディレクトリー内を検索してバンドル・ルートの検索を試みます。

ステップ 5: バンドルを実行する

特定のジョブまたはパイプラインを実行するには、バンドル構成ファイル内で宣言されたジョブまたはパイプラインキーを指定して、バンドルルートから bundle run コマンドを実行します ( ジョブまたはパイプラインの実行を参照)。 リソースキーは、リソースのYAMLブロックの最上位の要素です。 ジョブ・キーまたはパイプライン・キーを指定しない場合は、使用可能なリソースのリストから実行するリソースを選択するように求められます。 -t オプションが指定されていない場合は、バンドル構成ファイル内で宣言されているデフォルト・ターゲットが使用されます。たとえば、キー hello_job を持つジョブをデフォルトターゲットのコンテキスト内で実行するには、次のようにします。

Bash
databricks bundle run hello_job

キー hello_job を持つジョブを、 devという名前で宣言されたターゲットのコンテキスト内で実行するには、次のようにします。

Bash
databricks bundle run -t dev hello_job

ステップ6: バンドルを破棄します

警告

バンドルを破棄すると、バンドルの以前にデプロイされたジョブ、パイプライン、およびアーティファクトが完全に削除されます。 この操作は元に戻せません。

バンドルの使用が完了し、以前にデプロイされたジョブ、パイプライン、およびアーティファクトを削除する場合は、バンドル ルートから bundle destroy コマンドを実行します。 このコマンドは、バンドル設定ファイルで定義されている、以前にデプロイされたすべてのジョブ、パイプライン、およびアーティファクトを削除します。 バンドルの破棄を参照してください。

Bash
databricks bundle destroy

デフォルトでは、以前にデプロイされたジョブ、パイプライン、およびアーティファクトの完全な削除を確認するように求められます。 これらのプロンプトをスキップして自動的に完全削除を実行するには、bundle destroy コマンドに --auto-approve オプションを追加します。