Delta Live Tables パイプラインを Databricks アセット バンドル プロジェクトに変換する
この記事では、既存 Delta Live Tables (DLT) パイプラインをバンドル プロジェクトに変換する方法について説明します。 バンドルを使用すると、単一の、ソース管理された YAML ファイル内で Azure Databricks データ処理構成を定義および管理できるようになります。これにより、メンテナンスがさらに容易になり、ターゲット環境への自動デプロイができるようになります。
変換プロセスの概要
に変換する具体的な手順を示す図
既存パイプラインをバンドルに変換するために実行する手順は次のとおりです。
- バンドルに変換する対象の、以前に構成されたパイプラインにアクセスできることを確認します。
- バンドルを格納するフォルダー (できればソース管理された階層で) を作成または準備します。
- Azure Databricks CLI を使用して、既存パイプラインのバンドルの構成を生成します。
- 生成されたバンドル構成を確認して、すべて揃っていることを確認します。
- そのバンドルを元のパイプラインにリンクします。
- バンドル構成を使用して、そのパイプラインをターゲット ワークスペースにデプロイします。
要件
開始する前に、以下が必要です。
- ローカル開発マシン上にインストールされた Databricks CLI。 Databricks アセット バンドルを使用するには、Databricks CLI バージョン 0.218.0 以上が必要です。
- バンドルで管理する既存 DLT パイプラインの ID。 この ID を取得する方法については「UI を使用して既存のパイプライン定義を取得する」を参照してください。
- 既存 DLT パイプラインが実行される Azure Databricks ワークスペースの認可。 Azure Databricks CLI 呼び出しの認証と承認を構成するには、「Azure Databricks リソースへのアクセスの承認」を参照してください。
手順 1: バンドル プロジェクトのフォルダーを設定する
Azure Databricks 内で Git フォルダーとして構成されている Git リポジトリにアクセスできる必要があります。 このリポジトリ内にバンドル プロジェクトを作成します。これにより、ソース管理が適用され、対応する Azure Databricks ワークスペース内の Git フォルダーを介して他のコラボレーターが使用できるようになります (Git フォルダーに関する詳細については、「Databricks Git フォルダーの Git 統合」を参照してください)。
ローカル コンピューター上のクローンされた Git リポジトリのルートに移動します。
フォルダー階層内の適切な場所に、バンドル プロジェクト専用のフォルダーを作成します。 次に例を示します。
mkdir - p ~/source/my-pipelines/ingestion/events/my-bundle
現在の作業ディレクトリをこの新しいフォルダーに変更します。 次に例を示します。
cd ~/source/my-pipelines/ingestion/events/my-bundle
databricks bundle init
を実行し、プロンプトに応答して、新しいバンドルを初期化します。 完了すると、プロジェクトの新しいホーム フォルダー内にdatabricks.yml
という名前のプロジェクト構成ファイルが作成されます。 このファイルは、コマンド ラインからパイプラインをデプロイするために必要です。 この構成ファイルの詳細については「Databricks アセット バンドルの構成」を参照してください。
手順 2: パイプライン構成を生成する
クローンされた Git リポジトリのフォルダー ツリー内にあるこの新しいディレクトリから、次の Azure Databricks CLI コマンドを実行し、DLT パイプラインの ID を <pipeline-id>
として指定します。
databricks bundle generate pipeline --existing-pipeline-id <pipeline-id> --profile <profile-name>
generate
コマンドを実行すると、パイプラインのバンドル構成ファイルがバンドルの resources
フォルダー内に作成され、参照されている成果物が src
フォルダーにダウンロードされます。 --profile
(または -p
フラグ) は省略可能ですが、既定のプロファイルではなく、使用したい特定の Databricks 構成プロファイル (Azure Databricks CLI のインストール時に作成された .databrickscfg
ファイル内で定義) がある場合は、このコマンド内で指定します。 Databricks 構成プロファイルの詳細については「Azure Databricks 構成プロファイル」を参照してください。
手順 3: バンドル プロジェクト ファイルを確認する
bundle generate
コマンドが完了すると、次の 2 つの新しいフォルダーが作成されます。
resources
は、プロジェクト構成ファイルを含むプロジェクト サブディレクトリです。src
は、クエリやノートブックなどのソース ファイルが格納されるプロジェクト フォルダーです。
このコマンドでは、いくつか追加のファイルも作成されます。
*.pipeline.yml
サブディレクトリの下にresources
があります。 このファイルには、DLT パイプラインの特定の構成および設定が含まれています。- 既存 DLT パイプラインからコピーされた、
src
サブディレクトリの下にある SQL クエリなどのソース ファイル。
├── databricks.yml # Project configuration file created with the bundle init command
├── resources/
│ └── {your-pipeline-name.pipeline}.yml # Pipeline configuration
└── src/
└── {SQl-query-retrieved-from-your-existing-pipeline}.sql # Your pipeline's declarative query
手順 4: バンドル パイプラインを既存パイプラインにバインドする
変更を加えた時点で最新の状態に保つために、バンドル内のパイプライン定義を既存パイプラインにリンクまたは "バインド" する必要があります。 これを行うには、次の Azure Databricks CLI コマンドを実行します。
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: 新しいバンドルを使用してパイプラインをデプロイする
ここで、Azure Databricks CLI コマンド bundle deploy
を使用して、パイプライン バンドルをターゲット ワークスペースにデプロイします。
databricks bundle deploy --target <target-name> --profile <profile-name>
--target
フラグは必須であり、development
または production
など、構成されたターゲット ワークスペース名と一致する文字列を設定する必要があります。
このコマンドが成功すると、外部プロジェクト内に DLT パイプライン構成が作成され、他のワークスペースに読み込んで実行でき、アカウント内の他の Azure Databricks ユーザーと簡単に共有できます。
トラブルシューティング
問題 | ソリューション |
---|---|
databricks.yml を実行すると「bundle generate が見つかりません」というエラーが発生する。 |
現時点では、bundle generate コマンドはバンドル構成ファイル (databricks.yml ) を自動的には作成しません。 databricks bundle init を使用してまたは手動でファイルを作成する必要があります。 |
既存パイプライン設定が、生成されたパイプライン YAML 構成内の値と一致しない | パイプライン ID は、バンドル構成 YML ファイル内には表示されません。 その他の不足している設定に気付いた場合は、手動でそれを適用できます。 |
成功のためのヒント
- バージョン管理を常に使用してください。 Databricks Git フォルダーを使用していない場合は、プロジェクトのサブディレクトリとファイルを、Git またはその他のバージョン管理されたリポジトリかファイル システム内に格納します。
- 運用環境にデプロイする前に、非運用環境内 ("開発" や "テスト" 環境など) でそのパイプラインをテストしてください。 誤って構成ミスを導入してしまうことがよくあります。
その他のリソース
バンドルを使用してデータ処理を定義および管理する方法の詳細については、次を参照してください。
- Databricks アセット バンドルとは。
- Databricks アセット バンドルを使用して Delta Live Tables パイプラインを開発する。 このトピックでは、既存のものではなく新しいパイプライン用のバンドルを (指定した処理用のソース管理されたノートブックを使用して) 作成する方法について説明します。