スタンドアロンパイプラインとLakeflow pipelines
Databricks は、マテリアライズドビュー と ストリーミングテーブル を構築するための2つの方法を提供しています: スタンドアロンパイプライン、または Lakeflow pipelines です。どちらも同じ宣言型エンジンで実行され、Unity Catalog マネージドテーブルを生成します。違いは、パイプラインのどの部分を作成し、操作するかです。
- スタンドアロン マテリアライズドビューまたはストリーミングテーブルは、SQL構文で定義された単一のデータセットです。Databricksは、バックグラウンドでパイプラインを作成および管理し、更新します。Databricks SQLウェアハウスから、または
spark.sql()を使用してサーバレス汎用コンピュート上のノートブックから、スタンドアロン データセットを作成および更新できます。「スタンドアロン パイプライン」を参照してください。 - Lakeflow パイプライン とは、単位として作成および操作するパイプラインのことです。SQL および Python で記述された多くのデータセットを含めることができ、依存関係のオーケストレーション、リネージ、およびパイプライン全体の運用機能が備わっています。「パイプラインとは」を参照してください。
スタンドアロンのマテリアライズドビューまたはストリーミングテーブルを作成すると、管理されているパイプラインはパイプラインタイプ として **Jobs & Pipelines** MV/STページに表示されます。Lakeflowパイプラインで定義されたデータセットのパイプラインタイプは ETL です。
スタンドアロンパイプラインを使用する場合
スタンドアロンマテリアライズドビューとストリーミングテーブルを使用する場合:
- 単一のマテリアライズドビューまたはストリーミングテーブルで、クエリを高速化したりデータを変換したりできます。
- Databricks SQLウェアハウス、SQLエディター、またはサーバレス汎用コンピュート上のノートブックから作業し、
SCHEDULE、TRIGGER ON UPDATE、またはジョブ内のSQLタスクで更新をスケジュールします。 - シンク、マルチステージオーケストレーション、またはその他のパイプライン固有の機能は不要です。
LakeFlow Pipelinesはいつ使用するか
Use a LakeFlow Pipelines when:
- Databricksがデータセット間の依存関係とリネージを管理する、中間データセットを含む多段階パイプラインを構築します。中間データセットはカタログに公開することも、パイプラインに対してプライベートに保つこともできます。
- Python でテーブルとフローを作成します。
- 外部のDeltaテーブルまたはイベントストリーミングの送信先に、シンク(
create_sink()またはforeach_batch_sink())を使用して書き込みます。 - データベーススナップショットからのチェンジデータキャプチャは、
create_auto_cdc_from_snapshot_flow()を使用して適用します。 - パイプライン全体で、トリガーまたは連続実行が必要です。
比較
属性 | スタンドアロン ストリーミングテーブルまたはマテリアライズドビュー | パイプラインストリーミングテーブルまたはマテリアライズドビュー |
|---|---|---|
オーサリングインターフェース | Databricks SQLウェアハウスから、またはサーバレス汎用コンピュート上のノートブックで | SQL と Python |
スコープ | Databricksが管理するパイプライン内の1つのデータセット | 依存関係のオーケストレーションとリネージを備えた、1つのパイプライン内の複数のデータセット |
処理の実行 | トリガーされる、 | トリガーされるまたは連続 |
パイプライン固有の機能 | シンク、 | |
パイプラインタイプラベル |
|
|
パイプライン間での移動 | サポートされていません。ターゲットパイプラインでテーブルを再作成してください。 | サポートされています |