メインコンテンツまでスキップ

Lakeflow 宣言型パイプラインを Databricks Asset Bundle プロジェクトに変換する

この記事では、既存のパイプラインをDatabricks Asset Bundlesプロジェクトに変換する方法を説明します。バンドルを使用すると、ソース管理された単一の YAML ファイルで Databricks データ処理構成を定義および管理できるため、メンテナンスが容易になり、ターゲット環境への自動デプロイが可能になります。

変換プロセスの概要

既存のパイプラインをバンドルに変換する際の具体的なステップを示す図

既存のパイプラインをバンドルに変換するステップは次のとおりです。

  1. バンドルに変換する、以前に構成されたパイプラインにアクセスできることを確認してください。
  2. バンドルを保存するためのフォルダー (ソース管理された階層内が望ましい) を作成または準備します。
  3. Databricks CLI を使用して、既存のパイプラインからバンドルの構成を生成します。
  4. 生成されたバンドル構成を確認して、完了していることを確認します。
  5. バンドルを元のパイプラインにリンクします。
  6. バンドル構成を使用して、パイプラインをターゲット ワークスペースにデプロイします。

要件

始める前に、次のものが必要です。

ステップ 1: バンドル プロジェクト用のフォルダーをセットアップする

Databricks で Git フォルダーとして構成されている Git リポジトリにアクセスできる必要があります。このリポジトリにバンドル プロジェクトを作成すると、ソース管理が適用され、対応する Databricks ワークスペースの Git フォルダーを通じて他の共同作業者が利用できるようになります。(Git フォルダーの詳細については、 「Databricks Git フォルダーとは」を参照してください)。

  1. ローカル マシン上のクローンされた Git リポジトリのルートに移動します。

  2. フォルダー階層内の適切な場所に、バンドル プロジェクト専用のフォルダーを作成します。例えば:

    Bash
    mkdir - p ~/source/my-pipelines/ingestion/events/my-bundle
  3. 現在の作業ディレクトリをこの新しいフォルダーに変更します。例えば:

    Bash
    cd ~/source/my-pipelines/ingestion/events/my-bundle
  4. 次のコマンドを実行して新しいバンドルを初期化します。

    Bash
    databricks bundle init

    プロンプトに答えてください。完了すると、プロジェクトの新しいホーム計画にdatabricks.ymlという名前のプロジェクト構成ファイルが作成されます。 このファイルは、コマンドラインからパイプラインをデプロイするために必要です。この構成ファイルの詳細については、 「Databricks Asset Bundle 構成」を参照してください。

ステップ 2: パイプライン構成を生成する

複製された Git リポジトリのフォルダー ツリー内のこの新しいディレクトリから、パイプラインの ID を<pipeline-id>として指定して、Databricks CLI のバンドル生成コマンドを実行します。

Bash
databricks bundle generate pipeline --existing-pipeline-id <pipeline-id> --profile <profile-name>

generateコマンドを実行すると、バンドルのresourcesフォルダにパイプラインのバンドル構成ファイルが作成され、参照されているアーティファクトがすべてsrcフォルダにダウンロードされます。 --profile (または-pフラグ) はオプションですが、デフォルト プロファイルの代わりに使用したい特定のDatabricks構成プロファイル ( Databricks CLIをインストールしたときに作成された.databrickscfgファイルで定義) がある場合は、このコマンドでそれを指定します。 Databricks構成プロファイルの詳細については、 Databricks構成プロファイル」を参照してください。

ステップ 3: バンドル プロジェクト ファイルを確認する

bundle generateコマンドが完了すると、2 つの新しいフォルダーが作成されます。

  • resources は、プロジェクト構成ファイルを含むプロジェクトのサブディレクトリです。
  • src クエリやノートブックなどのソース ファイルが保存されるプロジェクト フォルダーです。

このコマンドは、いくつかの追加ファイルも作成します。

  • *.pipeline.yml resourcesサブディレクトリの下にあります。このファイルには、パイプラインの特定の構成と設定が含まれています。
  • 既存のパイプラインからコピーされた、 srcサブディレクトリ下の SQL クエリなどのソース ファイル。
├── databricks.yml                            # Project configuration file created with the bundle init command
├── resources/
│ └── {your-pipeline-name.pipeline}.yml # Pipeline configuration
└── src/
└── {source folders and files...} # Your pipeline's declarative queries

ステップ 4: バンドル パイプラインを既存のパイプラインにバインドします

変更を加えたときに最新の状態に保つには、バンドル内のパイプライン定義を既存のパイプラインにリンク ( バインド) する 必要があります。これを行うには、Databricks CLIバンドル デプロイメント バインド コマンドを実行します。

Bash
databricks bundle deployment bind <pipeline-name> <pipeline-ID> --profile <profile-name>

<pipeline-name> パイプラインの名前です。この名前は、新しいresourcesディレクトリ内のパイプライン構成のファイル名のプレフィックス付き文字列値と同じである必要があります。たとえば、 resourcesフォルダーにingestion_data_pipeline.pipeline.ymlという名前のパイプライン構成ファイルがある場合は、パイプライン名としてingestion_data_pipeline指定する必要があります。

<pipeline-ID> パイプラインの ID です。これは、この手順の要件の一部としてコピーしたものと同じです。

ステップ 5: 新しいバンドルを使用してパイプラインをデプロイします

次に、Databricks CLI のバンドル デプロイ コマンドを使用して、パイプライン バンドルをターゲット ワークスペースにデプロイします。

Bash
databricks bundle deploy --target <target-name> --profile <profile-name>

--targetフラグは必須であり、構成されたターゲット ワークスペース名 ( developmentproductionなど) と一致する文字列に設定する必要があります。

このコマンドが成功すると、パイプライン構成が外部プロジェクトに作成され、他のワークスペースに読み込んで実行できるようになり、アカウント内の他の Databricks ユーザーと簡単に共有できるようになります。

トラブルシューティング

問題

ソリューション

実行中に「databricks.yml が見つかりません」エラー bundle generate

現在、 bundle generateコマンドはバンドル構成ファイル ( databricks.yml ) を自動的に作成しません。databricks bundle initを使用するか手動でファイルを作成する必要があります。

既存のパイプライン設定が、生成されたパイプライン YAML 構成の値と一致しません

パイプライン ID はバンドル構成 YML ファイルには表示されません。その他の設定が不足していることに気付いた場合は、手動で適用できます。

成功のためのヒント

  • 常にバージョン管理を使用してください。Databricks Git フォルダーを使用していない場合は、プロジェクトのサブディレクトリとファイルを Git またはその他のバージョン管理されたリポジトリまたはファイル システムに保存します。
  • パイプラインを本番運用環境に展開する前に、非本番運用環境 (「開発」環境や「テスト」環境など) でパイプラインをテストします。 誤って誤った構成を導入してしまうことはよくあります。

その他のリソース

バンドルを使用してデータ処理を定義および管理する方法の詳細については、以下を参照してください。