Databricks アセット バンドルの開発ワークフロー
この記事では、 Databricks アセット バンドル 開発の一連の作業タスクについて説明します。 「Databricks アセット バンドルとは」を参照してください。
バンドルを作成、検証、デプロイ、および実行するには、次の手順を実行します。
ステップ 1: バンドルを作成する
バンドルの作成を開始するには、次の 3 つの方法があります。
デフォルトのバンドル テンプレートを使用します。
カスタムバンドルテンプレートを使用します。
バンドルを手動で作成します。
デフォルトのバンドル テンプレートを使用する
Databricks のデフォルトのバンドル テンプレートを使用して、さらにカスタマイズできるスターター バンドルを作成するには、 Databricks CLIバージョン 0.205 以降を使用してbundle init
コマンドを実行します。これにより、使用可能なテンプレートのリストから選択できます。
databricks bundle init
デフォルトのバンドル テンプレートのソースは、 databricks/ CLIおよびdatabricks/mlops-stacks Github パブリック リポジトリで表示できます。
「ステップ 2: バンドル構成ファイルを設定する」に進んでください。
カスタムバンドルテンプレートを使用する
Databricks のデフォルト バンドル テンプレート以外のバンドル テンプレートを使用するには、リモート バンドル テンプレートの場所へのローカル パスまたは URL を知っている必要があります。 Databricks CLIバージョン 0.205 以降を使用して、次のようにbundle init
コマンドを実行します。
databricks bundle init <project-template-local-path-or-url>
このコマンドの詳細については、「 Databricks アセット バンドル テンプレート」を参照してください。 特定のバンドルテンプレートに関する情報については、バンドルテンプレートプロバイダーのドキュメントを参照してください。
「ステップ 2: バンドル構成ファイルを設定する」に進んでください。
バンドルを手動で 作成する
バンドル テンプレートを使用する代わりにバンドルを手動で作成するには、ローカル マシン上にプロジェクト ディレクトリを作成するか、サードパーティの Git プロバイダーを使用して空のリポジトリを作成します。
ディレクトリまたはリポジトリに、入力として 1 つ以上のバンドル構成ファイルを作成します。 これらのファイルはYAML形式で表されます。 databricks.yml
という名前のバンドル構成ファイルが少なくとも 1 つ (1 つだけ) 必要です。追加のバンドル構成ファイルは、databricks.yml
ファイルのinclude
マッピングで参照する必要があります。
Databricks アセット バンドル構成構文に準拠する YAML ファイルをより簡単かつ迅速に作成するには、次のように、YAML ファイルと JSON スキーマ ファイルのサポートを提供する Visual Studio Code、 PyCharm Professional、 IntelliJ IDEA Ultimate などのツールを使用できます。
たとえば、Visual Studio Code Marketplace から YAML 拡張機能をインストールすることで、 YAML 言語サーバーのサポートを Visual Studio Code に追加します。
Databricks CLI バージョン 0.205 以降を使用して Databricks アセット バンドル構成 JSON スキーマ ファイルを生成し、
bundle schema
コマンドを実行し、出力を JSON ファイルにリダイレクトします。 たとえば、次のように、現在のディレクトリ内にbundle_config_schema.json
という名前のファイルを生成します。databricks bundle schema > bundle_config_schema.json
Visual Studio Code を使用して、現在のディレクトリ内にバンドル構成ファイルを作成するか開きます。 このファイルの名前は
databricks.yml
である必要があります。バンドル設定ファイルの先頭に次のコメントを追加します。
# yaml-language-server: $schema=bundle_config_schema.json
注
前のコメントで、Databricks アセット バンドル構成 JSON スキーマ ファイルが別のパスにある場合は、
bundle_config_schema.json
スキーマ ファイルへの完全なパスに置き換えます。前に追加した YAML 言語サーバー機能を使用します。 詳細については、YAML 言語サーバーのドキュメントを参照してください。
Databricks CLI バージョン 0.205 以降を使用して Databricks アセット バンドル構成 JSON スキーマ ファイルを生成し、
bundle schema
コマンドを実行し、出力を JSON ファイルにリダイレクトします。 たとえば、次のように、現在のディレクトリ内にbundle_config_schema.json
という名前のファイルを生成します。databricks bundle schema > bundle_config_schema.json
バンドル構成 JSON スキーマファイルを認識するように PyCharm を設定し、「カスタム JSON スキーマを構成する」の手順に従って JSON スキーママッピングを完了します。
PyCharm を使用して、バンドル設定ファイルを作成または開きます。 このファイルの名前は
databricks.yml
である必要があります。 入力すると、PyCharmはJSONスキーマの構文とフォーマットをチェックし、コード補完のヒントを提供します。
Databricks CLI バージョン 0.205 以降を使用して Databricks アセット バンドル構成 JSON スキーマ ファイルを生成し、
bundle schema
コマンドを実行し、出力を JSON ファイルにリダイレクトします。 たとえば、次のように、現在のディレクトリ内にbundle_config_schema.json
という名前のファイルを生成します。databricks bundle schema > bundle_config_schema.json
バンドル構成 JSON スキーマ ファイルを認識するように IntelliJ IDEA を構成し、「カスタム JSON スキーマの構成」の手順に従って JSON スキーマ マッピングを完了します。
IntelliJ IDEA を使用して、バンドル構成ファイルを作成または開きます。 このファイルの名前は
databricks.yml
である必要があります。 入力すると、IntelliJ IDEA によって JSON スキーマの構文と書式設定がチェックされ、コード補完のヒントが提供されます。
ステップ 2: バンドル構成ファイルを設定する
バンドル構成ファイルは、ワークスペースの詳細、アーティファクト名、場所名、ジョブの詳細、パイプラインの詳細などの設定を指定することにより、Databricks ワークフローを定義します。 バンドル構成ファイルの詳細については、 「Databricks アセット バンドル構成」を参照してください。
ヒント
bundle generate
コマンドを使用して既存のリソースのバンドル構成を自動生成し、その後、 bundle deployment bind
を使用してバンドル構成をワークスペース内のリソースにリンクできます。 「バンドル構成ファイルの生成」および「バンドル リソースのバインド」を参照してください。
ステップ 3: バンドル構成ファイルを検証する
アーティファクトをデプロイしたり、ジョブやパイプラインを実行したりする前に、バンドル設定ファイルが構文的に正しいことを確認する必要があります。 これを行うには、バンドル構成ファイルと同じディレクトリから bundle validate
コマンドを実行します。 このディレクトリは、 バンドルルートとも呼ばれます。
databricks bundle validate
構成の検証が成功した場合、このコマンドはバンドルを表す JSON ペイロードを出力します。
ステップ 4: バンドルをデプロイする
バンドルをデプロイする前に、リモートワークスペースでワークスペースファイルが有効になっていることを確認してください。 「 ワークスペース ファイルとは」を参照してください。
指定したローカル成果物をリモートワークスペースにデプロイするには、バンドルルートから bundle deploy
コマンドを実行します。 コマンド オプションが指定されていない場合、Databricks CLI は、バンドル構成ファイル内で宣言されている既定のターゲットを使用します。
databricks bundle deploy
ヒント
BUNDLE_ROOT
環境変数を設定すると、バンドル ルートの外部でdatabricks bundle
コマンドを実行できます。 この環境変数が設定されていない場合、 databricks bundle
コマンドは現在の作業ディレクトリ内を検索してバンドル ルートを見つけようとします。
特定のターゲットのコンテキスト内で成果物をデプロイするには、バンドル構成ファイル内で宣言されているターゲットの名前と共に -t
(または --target
) オプションを指定します。 たとえば、 dev
という名前で宣言されたターゲットの場合:
databricks bundle deploy -t dev
ステップ 5: バンドルを実行する
特定のジョブまたはパイプラインを実行するには、バンドル構成ファイル内で宣言されたジョブまたはパイプラインのキーを指定して、バンドル ルートからbundle run
コマンドを実行します。 リソース キーは、リソースの YAML ブロックの最上位要素です。 ジョブ キーまたは パイプライン キーを指定しない場合は、使用可能なリソースのリストから実行するリソースを選択するように求められます。 -t
オプションが指定されていない場合は、バンドル構成ファイル内で宣言されているデフォルトのターゲットが使用されます。 たとえば、デフォルトのターゲットのコンテキスト内でキーhello_job
を使用してジョブを実行するには、次のようにします。
databricks bundle run hello_job
名前dev
で宣言されたターゲットのコンテキスト内でキーhello_job
を使用してジョブを実行するには:
databricks bundle run -t dev hello_job
ステップ6:バンドル を破棄する
以前にデプロイされたジョブ、パイプライン、およびアーティファクトを削除する場合は、バンドルルートから bundle destroy
コマンドを実行します。 このコマンドは、バンドル構成ファイルで定義されている以前にデプロイされたすべてのジョブ、パイプライン、および成果物を削除します。
databricks bundle destroy
デフォルトにより、以前にデプロイされたジョブ、パイプライン、およびアーティファクトの完全な削除を確認するように求められます。 これらのプロンプトをスキップして自動完全削除を実行するには、 bundle destroy
コマンドに --auto-approve
オプションを追加します。