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

スタンドアロンパイプラインと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エディター、またはサーバレス汎用コンピュート上のノートブックから作業し、SCHEDULETRIGGER ON UPDATE、またはジョブ内のSQLタスクで更新をスケジュールします。
  • シンク、マルチステージオーケストレーション、またはその他のパイプライン固有の機能は不要です。

Lakeflow Spark宣言型パイプラインを使用するタイミング

Lakeflow Spark宣言型パイプラインを使用する場合:

  • Databricksがデータセット間の依存関係とリネージを管理する、中間データセットを含む多段階パイプラインを構築します。中間データセットはカタログに公開することも、パイプラインに対してプライベートに保つこともできます。
  • Python でテーブルとフローを作成します。
  • 外部のDeltaテーブルまたはイベントストリーミングの送信先に、シンク(create_sink()またはforeach_batch_sink())を使用して書き込みます。
  • データベーススナップショットからのチェンジデータキャプチャは、create_auto_cdc_from_snapshot_flow()を使用して適用します。
  • パイプライン全体で、トリガーまたは連続実行が必要です。

比較

属性

スタンドアロン ストリーミングテーブルまたはマテリアライズドビュー

パイプラインストリーミングテーブルまたはマテリアライズドビュー

オーサリングインターフェース

Databricks SQLウェアハウスから、またはサーバレス汎用コンピュート上のノートブックでspark.sql()を使用するSQL構文

SQL と Python

スコープ

Databricksが管理するパイプライン内の1つのデータセット

依存関係のオーケストレーションとリネージを備えた、1つのパイプライン内の複数のデータセット

処理の実行

トリガーされる、SCHEDULETRIGGER ON UPDATE、またはSQLタスク

トリガーされるまたは連続

パイプライン固有の機能

シンク、create_auto_cdc_from_snapshot_flow()、プライベートデータセット

パイプラインタイプラベル

MV/ST

ETL

パイプライン間での移動

サポートされていません。ターゲットパイプラインでテーブルを再作成してください。

サポートされています