Databricks アセット バンドルの開発ワークフロー
この記事では、Databricks アセット バンドル開発の一連の作業タスクについて説明します。 「Databricks アセット バンドルとは」を参照してください
バンドルを作成、検証、デプロイ、実行するには、次の手順を実行します。
手順 1: バンドルを作成する
バンドルの作成を始めるには、次の 3 つの方法があります。
- 既定のバンドル テンプレートを使用する。
- カスタム バンドル テンプレートを使用する。
- バンドルを手動で作成します。
既定のバンドル テンプレートを使用する
Azure Databricks の既定のバンドル テンプレートを使用して、さらにカスタマイズできるスターター バンドルを作成するには、Databricks CLI バージョン 0.205 以降を使用して bundle init
コマンドを実行します。これにより、使用可能なテンプレートの一覧から選択できます。
databricks bundle init
databricks/cli および databricks/mlops-stacks Github パブリック リポジトリで、既定のバンドル テンプレートのソースを表示できます。
「手順 2: バンドル構成ファイルの内容を指定する」に進みます。
カスタム バンドル テンプレートを使用する
Azure 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 つ (唯一のファイルでもある) 含まれている必要があります。 追加のバンドル構成ファイルは、databricks.yml
ファイルの include
マッピングで参照する必要があります。
Databricks のアセット バンドル構成構文に準拠した YAML ファイルをもっと簡単に速く作成するには、次のように YAML ファイルおよび JSON スキーマ ファイルのサポートを提供する Visual Studio Code、PyCharm Professional、またはIntelliJ IDEA Ultimate などのツールを使用できます:
Visual Studio Code
Visual Studio Code Marketplace から YAML 拡張機能をインストールするなどして、Visual Studio Code に YAML 言語サーバーのサポートを追加します。
Databricks CLI バージョン 0.205以降を使用して
bundle schema
コマンドを実行し、出力を JSON ファイルにリダイレクトして、Databricks アセット バンドル構成 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
Note
前のコメントで、Databricks アセット バンドル構成 JSON スキーマ ファイルが別のパスにある場合は、
bundle_config_schema.json
をスキーマ ファイルへの完全パスに置き換えます。前に追加した YAML 言語サーバー機能を使用します。 詳細については、YAML 言語サーバーのドキュメントを参照してください。
Pycharm Professional
Databricks CLI バージョン 0.205以降を使用して
bundle schema
コマンドを実行し、出力を JSON ファイルにリダイレクトして、Databricks アセット バンドル構成 JSON スキーマ ファイルを生成します。 たとえば、次のように、現在のディレクトリ内でbundle_config_schema.json
という名前のファイルを生成します。databricks bundle schema > bundle_config_schema.json
バンドル構成 JSON スキーマ ファイルが認識されるように PyCharm を構成し、「Configure a custom JSON schema (カスタム JSON スキーマを構成する)」の手順に従って、JSON スキーマ マッピングを完了します。
PyCharm を使用してバンドル構成ファイルを作成かるか、開きます。 このファイルの名前は
databricks.yml
である必要があります。 入力すると、PyCharm により JSON スキーマの構文と書式設定がチェックされ、コード補完のヒントが提供されます。
IntelliJ IDEA Ultimate
Databricks CLI バージョン 0.205以降を使用して
bundle schema
コマンドを実行し、出力を JSON ファイルにリダイレクトして、Databricks アセット バンドル構成 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: バンドル構成ファイルを設定する
バンドル構成ファイルは、ワークスペースの詳細、成果物の名前、場所の名前、ジョブの詳細、パイプラインの詳細などの設定を指定することで、Azure 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
既定では、以前にデプロイされたジョブ、パイプライン、成果物の完全な削除を確認するメッセージが表示されます。 これらのプロンプトをスキップし、自動的に完全削除を実行するには、--auto-approve
オプションを bundle destroy
コマンドに追加します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示