次の方法で共有


Databricks アセット バンドルの開発ワークフロー

この記事では、Databricks アセット バンドル開発の一連の作業タスクについて説明します。 「Databricks アセット バンドルとは」を参照してください

バンドルを作成、検証、デプロイ、実行するには、次の手順を実行します。

手順 1: バンドルを作成する

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

  1. 既定のバンドル テンプレートを使用する。
  2. カスタム バンドル テンプレートを使用する。
  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 CodePyCharm Professional、またはIntelliJ IDEA Ultimate などのツールを使用できます:

Visual Studio Code

  1. Visual Studio Code Marketplace から YAML 拡張機能をインストールするなどして、Visual Studio Code に YAML 言語サーバーのサポートを追加します。

  2. Databricks CLI バージョン 0.205以降を使用して bundle schema コマンドを実行し、出力を JSON ファイルにリダイレクトして、Databricks アセット バンドル構成 JSON スキーマ ファイルを生成します。 たとえば、次のように、現在のディレクトリ内で bundle_config_schema.json という名前のファイルを生成します。

    databricks bundle schema > bundle_config_schema.json
    
  3. Visual Studio Code を使用し、現在のディレクトリ内にバンドル構成ファイルを作成するか、開きます。 このファイルの名前は databricks.yml である必要があります。

  4. バンドル構成ファイルの先頭に次のコメントを追加します:

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

    Note

    前のコメントで、Databricks アセット バンドル構成 JSON スキーマ ファイルが別のパスにある場合は、bundle_config_schema.json をスキーマ ファイルへの完全パスに置き換えます。

  5. 前に追加した YAML 言語サーバー機能を使用します。 詳細については、YAML 言語サーバーのドキュメントを参照してください。

Pycharm Professional

  1. Databricks CLI バージョン 0.205以降を使用して bundle schema コマンドを実行し、出力を JSON ファイルにリダイレクトして、Databricks アセット バンドル構成 JSON スキーマ ファイルを生成します。 たとえば、次のように、現在のディレクトリ内で bundle_config_schema.json という名前のファイルを生成します。

    databricks bundle schema > bundle_config_schema.json
    
  2. バンドル構成 JSON スキーマ ファイルが認識されるように PyCharm を構成し、「Configure a custom JSON schema (カスタム JSON スキーマを構成する)」の手順に従って、JSON スキーマ マッピングを完了します。

  3. PyCharm を使用してバンドル構成ファイルを作成かるか、開きます。 このファイルの名前は databricks.yml である必要があります。 入力すると、PyCharm により JSON スキーマの構文と書式設定がチェックされ、コード補完のヒントが提供されます。

IntelliJ IDEA Ultimate

  1. Databricks CLI バージョン 0.205以降を使用して bundle schema コマンドを実行し、出力を JSON ファイルにリダイレクトして、Databricks アセット バンドル構成 JSON スキーマ ファイルを生成します。 たとえば、次のように、現在のディレクトリ内で bundle_config_schema.json という名前のファイルを生成します。

    databricks bundle schema > bundle_config_schema.json
    
  2. バンドル構成 JSON スキーマ ファイルが認識されるように IntelliJ IDEA を構成し、「カスタム JSON スキーマを構成する」の手順に従って、JSON スキーマ マッピングを完了します。

  3. 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 コマンドに追加します。