トリガー パイプライン モードと連続パイプライン モード
Triggerモードと連続パイプラインモードはパイプラインのデータの処理方法を制御します。Triggerモードは利用可能なデータを更新して停止し、連続モードは新しいデータが届くたびにテーブルを新鮮に保ちます。ミリ秒レイテンシが必要なワークロードについては、「 Lakeflow Pipelinesでリアルタイムモードを使用」をご覧ください。
パイプラインモードは、コンピュートされるテーブルのタイプとは無関係です。マテリアライズドビューとストリーミングテーブルはどちらも、いずれのパイプラインモードでも更新できます。
スタンドアロンのマテリアライズドビューおよびストリーミングテーブルの更新操作は、常にTriggerパイプラインモードを使用して実行されます。
Triggerパイプラインモードとは何ですか?
パイプラインで Trigger モードが使用されている場合、システムは更新の起動時に使用可能なデータに基づいてすべてのテーブルを更新した後に停止します。
連続パイプラインモードとは何ですか?
パイプラインが 連続 実行を使用する場合、データソースに新しいデータが到着するたびに処理を行い、パイプライン全体のテーブルを最新の状態に保ちます。
連続実行モードでの不要な処理を回避するため、パイプラインは依存するDeltaテーブルを自動的に監視し、それらの依存テーブルの内容が変更された場合にのみ更新を実行します。
データパイプラインモードを選択する
次の表は、トリガー パイプライン モードと連続パイプライン モードの違いを示しています。
重要な質問 | トリガー | 連続 |
|---|---|---|
アップデートはいつ停止しますか? | 完了時に自動的に実行されます。 | 手動で停止されるまで継続して実行されます。 |
どのようなデータが処理されますか? | 更新の起動時に利用可能なデータ。 | 構成されたソースに到着するすべてのデータ。 |
どのようなデータの鮮度要件に最適ですか? | データの更新は 10 分ごと、毎時、または毎日実行されます。 | データの更新間隔は10秒から数分が推奨されます。 |
トリガーされたパイプラインは、クラスターがパイプラインを更新するのに十分な時間だけ実行されるため、リソースの消費と費用を削減できます。ただし、パイプラインがTriggerされるまで、新しいデータは処理されません。連続パイプラインには常時稼働中のクラスターが必要ですが、これはより高価になるものの、処理の待ち時間が短縮されます。
連続ジョブを使用して連続パイプラインをランする
Databricks では、 パイプライン モード の値を継続的に設定するのではなく、 継続的ジョブ を使用して継続的パイプラインを実行することを推奨しています。継続的ジョブがパイプラインをオーケストレーションする場合、ジョブはパイプラインの実行ライフサイクルを管理し、パイプラインの組み込みの継続的モードではサポートされていない、Standard モードなどのServerless パフォーマンス モード を有効にします。
ジョブオーケストレーションは、LakeFlow Pipelinesの実行モードのみを制御します。スタンドアロンのマテリアライズドビューとストリーミングテーブルは、ジョブオーケストレーションに関係なく、常にTriggerモードで実行されます。
ジョブがパイプラインをオーケストレーションする場合、ジョブが実行モードを決定し、パイプラインの パイプライン モード 設定よりも優先されます。継続的ジョブは、パイプラインの パイプライン モード がTriggerに設定されていてもパイプラインを継続的に実行します。また、Triggerまたはスケジュールされたジョブは、パイプラインの パイプライン モード が継続的に設定されていても、パイプラインを単一の更新として実行します。
ジョブはパイプライン モード設定を上書きするため、パイプラインを継続的ジョブにラップする場合は、パイプラインの パイプライン モード をTrigger(default)に設定してください。これにより、パイプラインがジョブの外部で実行された場合に予期しない動作が発生するのを防ぐことができます。
パイプラインの連続ジョブを構成する方法については、連続ジョブを使用してパイプラインを継続的に実行するを参照してください。
組み込みの継続的モードでパイプラインを実行する
パイプラインの組み込みの継続的設定は削除されませんが、Databricks では、新しいパイプラインに対しては継続的ジョブ パターンを使用することを推奨しており、組み込み設定の使用は推奨していません。Triggerと継続的を切り替えるには、パイプラインの作成または編集中に、パイプライン設定の パイプライン モード オプションを使用します。「パイプラインの構成」を参照してください。
連続パイプラインのTrigger間隔を設定する
パイプラインを連続モード用に構成する際、Trigger間隔を設定して、パイプラインが各フローの更新を起動する頻度を制御できます。トリガー間隔は、パイプラインが独自の パイプライン モード 設定を通じて継続的モードで実行されるか、継続的ジョブを通じて実行されるかに関係なく適用されるパイプライン構成です。
pipelines.trigger.interval を使用して、テーブルまたはパイプライン全体を更新するフローのTrigger間隔を制御できます。Triggerパイプラインは各テーブルを 1 回だけ処理するため、pipelines.trigger.interval は継続的パイプラインでのみ使用されます。ストリーミング クエリーとバッチ クエリーではdefaultが異なるため、Databricks では個々のテーブルに設定することをお勧めします。処理においてパイプライン グラフ全体の更新を制御する必要がある場合にのみ、パイプラインに値を設定してください。
フロータイプ別の default 値、および SQL、Python、パイプライン設定での pipelines.trigger.interval の設定例については、パイプラインのTrigger間隔を参照してください。