Lakeflow宣言型パイプラインの構成
この記事では、ワークスペース UI を使用した Lakeflow 宣言型パイプラインの基本構成について説明します。
この記事の構成手順では、Unity Catalog を使用します。従来のHive metastoreでパイプラインを設定する手順については 、「従来のHive metastoreで Lakeflow宣言型パイプラインを使用する 」を参照してください。
この記事では、パイプラインの現在のデフォルト発行モードの機能について説明します。 2025 年 2 月 5 日より前に作成されたパイプラインでは、従来の発行モードと LIVE
仮想スキーマが使用される場合があります。 LIVE スキーマ (レガシー)を参照してください。
UI には、JSON で設定を表示および編集するオプションがあります。 ほとんどの設定は、UI または JSON 仕様のいずれかで構成できます。 一部の詳細オプションは、JSON 構成を使用してのみ使用できます。
JSON 設定ファイルは、パイプラインを新しい環境にデプロイする場合や、CLI または REST API を使用する場合にも役立ちます。
Lakeflow 宣言型パイプラインのJSON構成設定の詳細については、「Lakeflow宣言型パイプラインの構成」を参照してください。
新しいパイプラインを構成する
新しいパイプラインを設定するには、次の手順を実行します。
-
ワークスペースで、サイドバーの
ジョブ & パイプライン をクリックします。
-
[ 新規 ] で、[ ETL パイプライン ] をクリックします。
-
一意の パイプライン名 を指定します。
-
(オプション)
ファイル ピッカーを使用して、ノートブックとワークスペース ファイルを ソース コード として構成します。
-
ソース コードを追加しない場合は、パイプラインの新しいノートブックが作成されます。ノートブックはユーザーディレクトリの新しいディレクトリに作成され、パイプラインの作成後に、このノートブックにアクセスするためのリンクが パイプラインの詳細 ペインの ソースコード フィールドに表示されます。
- このノートブックには、パイプライン を作成すると、パイプラインの詳細 パネルの ソース コード フィールドの下に表示される URL からアクセスできます。
-
ソースコードを追加 ボタンを使用して、ソースコードアセットを追加します。
-
-
ストレージ オプション で Unity Catalog を選択します。
-
カタログ を選択します。この設定は、デフォルト カタログとパイプライン メタデータの格納場所を制御します。
-
カタログで スキーマ を選択します。 デフォルトでは、パイプラインで定義されたストリーミングテーブルとマテリアライズドビューは、このスキーマで作成されます。
-
コンピュート セクションで、 Photonアクセラレータを使用 横のボックスにチェックを入れます。コンピュート構成に関するその他の考慮事項については、 コンピュート構成オプションを参照してください。
-
作成 をクリックします。
これらの推奨構成では、 トリガー モードで実行するように設定された新しいパイプラインを作成し、 Current チャンネルを使用します。 この構成は、開発やテストなど、多くのユースケースに推奨され、スケジュールに従って実行する必要がある本番運用ワークロードに適しています。 パイプラインのスケジューリングの詳細については、 ジョブのパイプライン タスクを参照してください。
コンピュート コンフィギュレーション オプション
Databricksでは常に 強化 オートスケール を使用することをお勧めします。 他のコンピュート構成のデフォルト値は、多くのパイプラインで適切に機能します。
次の設定を使用して、コンピュート構成をカスタマイズします。
-
ワークスペース管理者は、 クラスターポリシー を構成できます。 コンピュート ポリシー 管理者は、ユーザーが使用できるコンピュート オプションを制御できます。 コンピュートポリシーの選択を参照してください。
-
オプションで、 クラスターモード を 固定サイズ または レガシーオートスケール で実行するように構成できます。 オートスケールを使用した Lakeflow 宣言型パイプラインのクラスター使用率の最適化を参照してください。
-
オートスケールが有効になっているワークロードの場合は、 最小ワーカー と 最大ワーカー を設定して、スケーリング動作の制限を設定します。 「 Lakeflow宣言型パイプラインにおけるクラシックコンピュートの設定」を参照してください。
-
オプションでPhotonアクセラレーションをオフにすることができます。 Photonとはを参照してください。
-
クラスタータグ を使用して、LakeFlow宣言型パイプラインに関連するコスト監視します。コンピュートタグの設定を参照してください。
-
インスタンスタイプ を設定して、パイプラインの実行に使用する仮想マシンのタイプを指定します。パイプラインを実行するためのインスタンスタイプを選択するを参照してください。
- パイプラインで構成されたワークロードに最適化された ワーカータイプ を選択します。
- オプションで、ワーカータイプとは異なる ドライバータイプ を選択できます。 これは、ワーカーの種類が大きく、ドライバーのコンピュート使用率が低いパイプラインのコストを削減したり、小さなワーカーが多いワークロードでメモリ不足の問題を回避するために大きなドライバーの種類を選択したりする場合に便利です。
実行ユーザーを設定する
実行ユーザーを使用すると、パイプラインが実行に使用する ID と、パイプラインが作成または更新するテーブルの所有権を変更できます。 これは、パイプラインを作成した元のユーザーが非アクティブ化された場合 (たとえば、会社を辞めた場合) に役立ちます。このような場合、パイプラインが機能しなくなり、パブリッシュされたテーブルが他のユーザーがアクセスできなくなる可能性があります。パイプラインを更新して、別の ID (サービスプリンシパルなど) として実行し、パブリッシュされたテーブルの所有権を再割り当てすることで、アクセスを復元し、パイプラインが引き続き機能するようにすることができます。 サービスプリンシパルとして実行されるパイプラインは、個々のユーザーに縛られず、自動化されたワークロードに対してより安全、安定性、信頼性が高まるため、ベスト プラクティスと見なされます。
必要な権限
変更を行うユーザーの場合:
- パイプラインに対する CAN_MANAGE アクセス許可
- サービスプリンシパルの CAN_USE ロール (サービスプリンシパルに実行-asを設定する場合)
実行者またはサービスプリンシパルの場合:
ワークスペースへのアクセス:
- ワークスペース内で操作するための ワークスペースアクセス 権限
- パイプラインで使用されるクラスターポリシーに対するアクセス許可 を使用できます
- ワークスペースでのコンピュート作成権限
ソースコードへのアクセス:
- パイプライン ソース コードに含まれるすべてのノートブックに対する 読み取り権限
- パイプラインでワークスペース ファイルを使用する場合、ワークスペース ファイルに対する アクセス許可を読み取ることができます
Unity Catalog のアクセス許可 (Unity Catalog を使用するパイプラインの場合):
USE CATALOG
ターゲットカタログでUSE SCHEMA
ターゲットスキーマでCREATE TABLE
MODIFY
パイプラインが更新する既存のテーブルに対するアクセス許可CREATE SCHEMA
パイプラインが新しいスキーマを作成する場合のアクセス許可
レガシー Hive metastore 権限 ( Hive metastoreを使用するパイプラインの場合):
SELECT
ターゲット・データベースおよびテーブルに対するMODIFY
権限
追加のクラウドストレージアクセス (該当する場合):
- ソース ストレージの場所から読み取るアクセス許可
- ターゲット・ストレージの場所に書き込む権限
実行ユーザーを設定する方法
-
パイプラインの詳細ページで、 実行 の横にある
編集 をクリックします。
-
編集ウィジェットで、次のいずれかのオプションを選択します。
- 独自のユーザーアカウント
- 許可を得ているサービスプリンシパル CAN_USE
-
[保存] をクリックして変更を適用します。
実行ユーザーを正常に更新すると、次のようになります。
- パイプライン ID が変更され、今後のすべての実行に新しいユーザーまたはサービスプリンシパルが使用されます
- Unity Catalog パイプラインでは、パイプラインによって発行されたテーブルの所有者が、新しい実行 ID と一致するように更新されます
- 今後のパイプラインの更新では、新しい実行 ID のアクセス許可と資格情報が使用されます
- 継続的パイプラインは、新しい ID で自動的に再起動します。トリガーされたパイプラインは自動的に再起動されず、実行形式の変更によってアクティブな更新プログラムが中断される可能性があります
実行プログラムの更新が失敗すると、失敗の理由を説明するエラーメッセージが表示されます。一般的な問題には、サービスプリンシパルに対する権限が不十分であることが含まれます。
その他の構成に関する考慮事項
パイプラインでは、次の設定オプションも使用できます。
-
Advanced 製品エディションでは、Lakeflow 宣言型パイプラインのすべての機能にアクセスできます。必要に応じて、 Pro または Core 製品エディションを使用してパイプラインを実行できます。「製品エディションの選択」を参照してください。
-
本番運用でパイプラインを実行する場合は、 Continuous パイプライン モードを使用することを選択できます。 「トリガー パイプライン モードと継続的パイプライン モード」を参照してください。
-
ワークスペースがUnity Catalog 用に設定されていない場合、またはワークロードでレガシーHive metastoreを使用する必要がある場合は、「レガシーHive metastoreでLakeflow宣言型パイプラインを使用する 」を参照してください。
-
成功または失敗の条件に基づくEメール更新の 通知 を追加します。 パイプラインイベントのEメール通知の追加を参照してください。
-
Configuration フィールドを使用して、パイプラインのキーと値のペアを設定します。これらの構成には、次の 2 つの目的があります。
- ソース コードで参照できる任意のパラメーターを設定します。 「Lakeflow宣言型パイプラインでパラメーターを使用する」を参照してください。
- パイプライン設定と Spark 設定を構成します。Lakeflow宣言型パイプラインのプロパティ リファレンスを参照してください。
- タグ を設定します。タグは、 ワークフローリストに表示されるパイプラインのキーと値のペアです。パイプライン タグは課金に関連付けられていません。
-
Preview チャンネルを使用して、保留中の Lakeflow 宣言型パイプライン ランタイムの変更に対してパイプラインをテストし、新機能を試用します。
製品エディションを選択する
Lakeflow 宣言型パイプライン 製品エディションを選択し、パイプライン要件に最適な機能を備えています。次の製品エディションが利用可能です。
Core
を使用して、ストリーミング取り込みワークロードを実行します。パイプラインがチェンジデータキャプチャ (CDC) や Lakeflow 宣言型パイプラインの期待値などの高度な機能を必要としない場合は、Core
エディションを選択します。Pro
ストリーミング取り込みと CDC ワークロードを実行します。Pro
製品エディションは、すべてのCore
機能に加えて、ソース データの変更に基づいてテーブルを更新する必要があるワークロードをサポートします。Advanced
ストリーミング取り込みワークロード、CDC ワークロード、およびエクスペクテーションが必要なワークロードを実行します。Advanced
製品エディションは、Core
エディションとPro
エディションの機能をサポートし、Lakeflow宣言型パイプラインの期待値によるデータ品質制約が含まれています。
製品エディションは、パイプラインを作成または編集するときに選択できます。パイプラインごとに異なるエディションを選択できます。Lakeflow 宣言型パイプライン 製品ページを参照してください。
注: パイプラインに、エクスペクテーションなど、選択した製品エディションでサポートされていない機能が含まれている場合は、エラーの理由を説明するエラー メッセージが表示されます。 その後、パイプラインを編集して適切なエディションを選択できます。
ソースコードの設定
Lakeflow 宣言型パイプライン UI のファイル セレクターを使用して、パイプラインを定義するソース コードを構成できます。パイプラインのソースコードは、Databricks ノートブック、またはワークスペースファイルに格納された SQL または Python スクリプトで定義されます。パイプラインを作成または編集するときに、1 つ以上のノートブックまたはワークスペース ファイル、またはノートブックとワークスペース ファイルの組み合わせを追加できます。
Lakeflow宣言型パイプラインはデータセットの依存関係を自動的に分析してパイプラインの処理グラフを作成するため、ソース コード アセットを任意の順序で追加できます。
ワークスペース ファイルに格納されたSQLとPython スクリプトで定義されたLakeflow宣言型パイプライン ソース コードを含めるようにJSONファイルを変更することができます。次の例には、ノートブックとワークスペース ファイルが含まれています。
{
"name": "Example pipeline 3",
"storage": "dbfs:/pipeline-examples/storage-location/example3",
"libraries": [
{ "notebook": { "path": "/example-notebook_1" } },
{ "notebook": { "path": "/example-notebook_2" } },
{ "file": { "path": "/Workspace/Users/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.sql" } },
{ "file": { "path": "/Workspace/Users/<user-name>@databricks.com/Apply_Changes_Into/apply_changes_into.py" } }
]
}
Python を使用するパイプラインの外部依存関係を管理する
Lakeflow 宣言型パイプラインでは、 Python パッケージやライブラリなど、パイプラインでの外部依存関係の使用がサポートされています。 依存関係の使用に関するオプションと推奨事項については、「Lakeflow宣言型パイプラインの Python依存関係の管理 」を参照してください。
Databricks ワークスペースに格納されている Python モジュールを使用する
Python コードを Databricks ノートブックに実装するだけでなく、Databricks Git フォルダーまたはワークスペース ファイルを使用して、コードを Python モジュールとして保存できます。 コードを Python モジュールとして格納すると、同じパイプライン内の複数のパイプラインまたはノートブックで使用する共通の機能がある場合に特に便利です。 パイプラインで Python モジュールを使用する方法については、「 Git フォルダーまたはワークスペース ファイルから Python モジュールをインポートする」を参照してください。