トリガーされたパイプライン モードと連続パイプライン モード

トリガーされたパイプライン モードと連続パイプライン モードは、パイプラインがデータを処理する方法を制御します。トリガー モードでは、使用可能なデータを更新して停止します。一方、連続モードでは、新しいデータが到着するとテーブルが最新の状態に保たれます。 ミリ秒の待機時間が必要なワークロードについては、「 Lakeflow パイプラインでリアルタイム モードを使用する」を参照してください。

パイプライン モードは、計算されるテーブルの種類に依存しません。 具体化されたビューとストリーミング テーブルの両方を、どちらのパイプライン モードでも更新できます。

Note

スタンドアロンの具体化されたビューとストリーミング テーブルの更新操作は、トリガーされたパイプライン モードを使用して常に実行されます。

トリガーされたパイプライン モードとは

パイプラインでトリガー モード が使用されている 場合、更新の開始時に使用可能なデータに基づいてすべてのテーブルを更新した後、システムは停止します。

連続パイプライン モードとは

パイプラインが 連続 実行を使用する場合は、データ ソースに到着すると新しいデータが処理され、パイプライン全体でテーブルが最新の状態に保たれます。

継続的実行モードでの不要な処理を回避するために、パイプラインは依存する Delta テーブルを自動的に監視し、それらの依存テーブルの内容が変更された場合にのみ更新を実行します。

データ パイプライン モードを選択する

次の表は、トリガーされるパイプライン モードと連続パイプライン モードの違いを示しています。

主な質問 トリガー済み 継続的
更新はいつ停止しますか? 完了すると自動的に。 手動で停止するまで継続的に実行されます。
処理されるデータ 更新の開始時に使用できるデータ。 構成済みのソースに到着するすべてのデータ。
この最適なデータ更新要件は何ですか? データ更新は、10 分ごと、1 時間ごと、または毎日実行されます。 データの更新は、10 秒から数分おきに行う必要があります。

トリガーされたパイプラインでは、クラスターの実行時間がパイプラインを更新するのに十分な時間しかないため、リソースの消費量とコストを削減できます。 ただし、パイプラインがトリガーされるまで、新しいデータは処理されません。 継続的なパイプラインには、常に実行されるクラスターが必要です。これはコストが高くなりますが、処理の待機時間が短縮されます。

連続したジョブでパイプラインを実行させる

Databricksは、パイプラインモードの値を連続に設定するのではなく、連続ジョブで連続パイプラインを実行することを推奨しています。 連続ジョブがパイプラインをオーケストレーションすると、ジョブはパイプラインの実行ライフサイクルを管理し、パイプラインの組み込み連続モードがサポートしないサーバーレス パフォーマンスモード(標準モードなど)を解放します。

Note

ジョブオーケストレーションはLakeflowパイプラインの実行モードのみを制御します。 スタンドアロンの物質化されたビューやストリーミングテーブルは、ジョブオーケストレーションに関係なく常にトリガーモードで動作します。

ジョブがパイプラインをオーケストレーションする場合、ジョブが実行モードを決定し、パイプラインの パイプライン モード 設定よりも優先されます。 連続ジョブはパイプライン モード がトリガーされてもパイプラインを連続的に実行し、トリガーまたはスケジュールジョブはパイプライン モード が連続であっても単一の更新として実行されます。

ジョブがパイプラインモード設定を上書きするため、パイプラインを連続ジョブでラップする際にパイプライン モード をトリガー(デフォルト)に設定してください。 これにより、パイプラインがジョブ外で動作した場合の予期せぬ挙動を回避できます。

パイプラインの連続ジョブを設定するには、「 連続ジョブでパイプラインを連続的に実行する」を参照してください。

内蔵の連続モードでパイプラインを実行

パイプラインの組み込みの連続設定は削除されませんが、Databricksは新規パイプラインでの使用を推奨せず、連続ジョブパターンを優先しています。 トリガーと継続的の間で変更するには、パイプラインの作成または編集中にパイプライン設定の [パイプライン モード ] オプションを使用します。 「パイプラインの構成」を参照してください。

連続パイプラインのトリガー間隔を設定する

連続モード用にパイプラインを構成する場合は、トリガー間隔を設定して、パイプラインが各フローの更新を開始する頻度を制御できます。 トリガー間隔は、パイプラインが自身の パイプラインモード 設定で連続モードで動作するか、連続ジョブで動作するかにかかわらず適用されるパイプライン構成です。

pipelines.trigger.intervalを使用して、テーブルまたはパイプライン全体を更新するフローのトリガー間隔を制御できます。 トリガーされたパイプラインは各テーブルを1回だけ処理するため、 pipelines.trigger.interval は連続パイプラインでのみ使用されます。 Databricksは、ストリーミングクエリとバッチクエリのデフォルトが異なるため、個別のテーブルに設定することを推奨しています。 パイプライン グラフ全体の更新を制御する処理が必要な場合にのみ、パイプラインに値を設定します。

フロータイプごとのデフォルトやSQL、Python、パイプライン設定におけるpipelines.trigger.interval設定の例については、「パイプライントリガー間隔」を参照してください。