次の方法で共有


Databricks アセット バンドルを使用して Lakeflow Spark 宣言パイプラインを開発する

Databricks アセット バンドル (単に バンドルとも呼ばれます) を使用すると、Lakeflow Spark 宣言型パイプラインなどの Azure Databricks リソースをプログラムで検証、デプロイ、実行できます。 Databricks アセット バンドルとはを参照してください。

このページでは、プログラムによってパイプラインを管理するバンドルを作成する方法について説明します。 「Lakeflow Spark 宣言型パイプライン」を参照してください。 バンドルは、Databricks CLI pipelines init コマンドを使用して作成されます。このコマンドは、それを実行する ETL パイプラインとジョブを定義します。 次に、サーバーレス コンピューティング上の Azure Databricks ワークスペースでデプロイされたパイプラインを検証、デプロイ、実行します。

ヒント

バンドルに移動する Azure Databricks ユーザー インターフェイスまたは API を使用して作成された既存のパイプラインがある場合は、それらをバンドルの構成ファイルで定義する必要があります。 Databricks では、まず以下の手順を使用してバンドルを作成してから、構成やその他のソースをバンドルに追加することをお勧めします。 UI を使用した既存のパイプライン定義の取得を参照してください。

要件

  • Databricks CLI バージョン 0.283.0 以降。 お使いのインストールされている Databricks CLI のバージョンをチェックするには、databricks -v コマンドを実行します。 Databricks CLI をインストールするには、 Databricks CLI のインストールまたは更新に関する記事を参照してください。
  • テストを実行し、IDE からこのプロジェクトの依存関係をインストールするには、uv が必要です。
  • リモート ワークスペースでは、ワークスペース ファイルが有効になっている必要があります。 「ワークスペース ファイルとは」を参照してください。
  • パイプライン内のテーブルの既存のカタログ。 「カタログの作成」を参照してください。

(省略可能) ローカルのパイプライン開発をサポートする Python モジュールをインストールする

Databricks には、IDE でコードを記述するときに構文チェック、オートコンプリート、データ型チェックを提供することで、Lakeflow Spark 宣言型パイプライン コードのローカル開発を支援する Python モジュールが用意されています。

ローカル開発用の Python モジュールは PyPi で入手できます。 モジュールをインストールするには、 DLT の Python スタブを参照してください。

手順 1: 認証を設定する

まず、開発マシン上の Databricks CLI と Azure Databricks ワークスペースの間で認証を設定します。 このページでは、OAuth ユーザー対マシン (U2M) 認証と、 DEFAULT という名前の対応する Azure Databricks 構成プロファイルを認証に使用することを前提としています。

メモ

U2M 認証は、これらの手順をリアルタイムで試す場合に適しています。 完全に自動化されたワークフローの場合、Databricks では代わりに OAuth マシン間 (M2M) 認証を使用することをお勧めします。 OAuth を使用した Azure Databricks へのサービス プリンシパル アクセスの承認に関するページの M2M 認証のセットアップ手順を参照してください。

  1. Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。

    次のコマンドでは、 <workspace-url> をワークスペースごとの Azure Databricks URL に置き換えます (例: https://adb-1234567890123456.7.azuredatabricks.net)。

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI では、入力した情報を Azure Databricks 構成プロファイルとして保存するように求められます。 Enter キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイル名を入力します。 同じ名前の既存のプロファイルは、入力した情報で上書きされます。 プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。

    既存のプロファイルの一覧を取得するには、別のターミナルまたはコマンド プロンプト内で、Databricks CLI を使用してコマンド databricks auth profiles を実行します。 特定のプロファイルの既存の設定を表示するには、コマンド databricks auth env --profile <profile-name>を実行します。

  3. Web ブラウザー内で、画面の指示に従って Azure Databricks ワークスペースにログインします。

  4. プロファイルの現在の OAuth トークン値とトークンの今後の有効期限のタイムスタンプを表示するには、次のいずれかのコマンドを実行します。

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    同じ --host 値を持つ複数のプロファイルがある場合は、Databricks CLI が正しく一致する OAuth トークン情報を見つけるのに役立つ --host-p のオプションを一緒に指定することが必要になる場合があります。

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

パイプラインを使用してバンドルを初期化します。

  1. ターミナルまたはコマンド プロンプトを使用して、テンプレートの生成されたバンドルを含むローカル開発マシン上のディレクトリに切り替えます。

  2. Databricks CLI を使用して、次のように pipelines init コマンドを実行します:

    databricks pipelines init
    
  3. Unique name for this projectmy_pipeline_project の既定値のままにするか、別の値を入力して Enter キーを押します。 これにより、このバンドルのルート ディレクトリの名前が決まります。 このルート ディレクトリは、現在の作業ディレクトリ内に作成されます。

  4. Initial catalogには、既存の Unity カタログ カタログの名前を入力します。

  5. Use a personal schema for each user working on this project?の場合は、[yes] を選択します。

  6. Initial language for this projectの場合は、[python] を選択します。

手順 3: バンドルを調べる

テンプレートによって生成されたファイルを表示するには、新しく作成したバンドルのルート ディレクトリに切り替えます。 既定では、次の構造が作成されます。

my_pipeline_project
├── databricks.yml
├── pyproject.toml
├── README.md
├── resources
│   ├── my_pipeline_project_etl.pipeline.yml
│   └── sample_job.job.yml
└── src
    └── my_pipeline_project_etl
        ├── explorations
        │   └── sample_exploration.ipynb
        ├── README.md
        └── transformations
            ├── sample_trips_my_pipeline_project.py
            └── sample_zones_my_pipeline_project.py

特に重要なファイルは次のとおりです。

  • databricks.yml: このファイルは、バンドルのプログラム名を指定し、バンドルのファイルへの参照を含み、カタログ変数とスキーマ変数を定義し、ターゲット ワークスペースの設定を指定します。

  • resources/sample_job.job.yml resources/<project-name>_etl_pipeline.yml: これらのファイルは、パイプライン更新タスクを含むジョブとパイプラインの設定を定義します。 パイプラインの設定については、「 パイプライン」を参照してください。

  • src/: このフォルダーには、サンプル パイプラインのソース ファイル、探索、変換が含まれています。

    ヒント

    テストを追加する場合は、 pytest を使用してローカルで実行します。

    uv run pytest
    
  • README.md: このファイルには、このバンドル テンプレートの概要と使用に関する追加情報が含まれています。

手順 4: バンドル構成を検証する

次に、バンドル構成が有効かどうかを確認します。

  1. ルート ディレクトリから Databricks CLI を使用して、 bundle validate コマンドを実行します。

    databricks bundle validate
    
  2. バンドル構成の概要が返されたら、検証が成功したことになります。 エラーが返される場合は、エラーを修正してから、この手順を繰り返します。

手順 5: リモート ワークスペースにパイプラインをデプロイする

次に、バンドルをリモートの Azure Databricks ワークスペースにデプロイし、ワークスペース内のパイプラインを確認します。

  1. バンドル ルートから、Databricks CLI deploy コマンドを使用します。

    databricks bundle deploy --target dev
    

    または:

    databricks pipelines deploy --target dev
    

    メモ

    既定のテンプレートには、パイプラインを毎日実行するジョブが含まれていますが、これはターゲット dev デプロイ モードで一時停止されます。 Databricks アセット バンドルのデプロイ モードを参照してください。

  2. バンドルがデプロイされたことを確認します。

    1. Azure Databricks ワークスペースのサイドバーで、[ ワークスペース] をクリックします。
    2. Users ><your-username>>.bundle フォルダーをクリックし、バンドル プロジェクトを見つけます。
  3. パイプラインが作成されたかどうかを確認します。

    1. Azure Databricks ワークスペースのサイドバーで、ジョブ & パイプライン をクリックします。
    2. 必要に応じて、[ Pipelines and Owned by me ] フィルターを選択します。
    3. [開発<your-username>] <project-name>_etlをクリックします。

この手順の後にバンドルに変更を加えた場合は、手順 4 と 5 を繰り返して、バンドル構成がまだ有効かどうかを確認してから、プロジェクトを再デプロイする必要があります。

手順 6: デプロイされたパイプラインを実行する

次に、コマンド ラインからワークスペース内のパイプラインの実行をトリガーします。

  1. ルート ディレクトリから、Databricks CLI pipelines run コマンドを使用します。 プロジェクトにパイプラインが 1 つしかない場合は、パイプライン名を指定する必要はありません。

    databricks pipelines run my_pipeline_project_etl --target dev
    
  2. お使いのターミナル内に表示される "Update URL" の値をコピーし、この値を Web ブラウザーに貼り付けて、お使いの Azure Databricks ワークスペースを開きます。

  3. Azure Databricks ワークスペースで、パイプラインの実行が正常に完了したら、具体化されたビューをクリックして各ビューの詳細を表示します。

この手順の後にバンドルに変更を加えた場合は、手順 4 から 6 を繰り返して、バンドル構成がまだ有効かどうかを確認し、プロジェクトを再デプロイして、再デプロイされたプロジェクトを実行する必要があります。

手順 7: 出力履歴とイベント ログ

pipelines historyコマンドとpipelines logs コマンドによって提供される情報は、エラーの診断に役立ちます。

パイプラインの以前の実行履歴を取得するには:

databricks pipelines history my_pipeline_project_etl
Updates Summary for pipeline my_pipeline_project_etl:
Update ID: a62293ec-8a63-43b7-8629-b218d56dac7c
   State: COMPLETED
   Cause: API_CALL
   Creation Time: 2026-01-29T23:16:14Z
   Full Refresh: false
   Validate Only: false

パイプラインの最新の更新のイベントを (JSON で) 出力するには:

databricks pipelines logs my_pipeline_project_etl

jqを使用して結果をフィルター処理します。 jqを使用した JSON 出力のフィルター処理を参照してください。

手順 8: クリーンアップ

この手順では、デプロイされたバンドルとパイプラインをワークスペースから削除します。

  1. ルート ディレクトリから Databricks CLI を使用して、 pipelines destroy コマンドを実行します。

    databricks pipelines destroy --target dev
    
  2. リソース、パイプライン、およびパイプラインによって管理されるテーブルとビューを完全に破棄するように求められたら、「 y 」と入力し、 Enterを押します。

  3. また、開発用コンピューターからバンドルを削除する場合は、ローカル プロジェクト ディレクトリを削除できます。