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

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

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

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

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

  1. デフォルトのバンドル テンプレートを使用します。

  2. カスタムバンドルテンプレートを使用します。

  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 CodePyCharm ProfessionalIntelliJ IDEA Ultimate などのツールを使用できます。

  1. たとえば、Visual Studio Code Marketplace から YAML 拡張機能をインストールすることで、 YAML 言語サーバーのサポートを Visual Studio Code に追加します。

  2. Databricks CLI バージョン 0.205 以降を使用して Databricks アセット バンドル構成 JSON スキーマ ファイルを生成し、 bundle schema コマンドを実行し、出力を 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
    

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

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

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

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

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

  1. Databricks CLI バージョン 0.205 以降を使用して Databricks アセット バンドル構成 JSON スキーマ ファイルを生成し、 bundle schema コマンドを実行し、出力を 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: バンドル構成ファイルを設定する

バンドル構成ファイルは、ワークスペースの詳細、アーティファクト名、場所名、ジョブの詳細、パイプラインの詳細などの設定を指定することにより、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 オプションを追加します。