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