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

統合CDCパイプラインのスマートなクローズ

統合されたCDCパイプラインは、トリガーモードで実行されます。各更新は、ソースデータベースから変更を抽出し、それらを宛先テーブルに適用してから停止します。 スマートクロージャー は、更新が停止するのに十分な作業を完了したと判断するポリシーです。すべての更新を固定された時間実行する代わりに、スマートクロージャーは各更新の期間をソースの変更データの量に適応させます。

注記

スマートクローズは、変更抽出機能と適用機能を個別のコンポーネントとしてではなく、単一のトリガーされたパイプラインで一緒に実行する統合CDCパイプライン(ダイレクトCDCとも呼ばれます)に適用されます。これは、取り込みゲートウェイが継続的に実行される標準のゲートウェイベースのアーキテクチャには適用されません。SQL Server向けの統合CDCパイプラインを作成するを参照してください。

更新が停止したとき

以下のいずれかの条件が満たされた場合、更新は停止します。

条件

完了理由

意味

ソースは最新の状態です。

lag-converged

更新によって保留中の変更バックログが適用され、ソースにほぼ最新の状態に保たれています。これは、処理するものがほとんどない増分更新の一般的なケースです。

ランタイムの制限に達しました。

max-runtime-cap-hit

ソースに大量のバックログがあったため(たとえば、パイプラインが長期間実行されなかったなど)、更新は上限のあるランタイムの後に停止しました。次回の更新は、停止した時点から再開します。

スマートクロージャーの活用法

  • 変更が少ない場合のコスト削減と更新の高速化: 更新は、固定された期間実行されるのではなく、現状に追いつくとすぐに終了するため、増分更新ではコンピュート時間が少なくて済みます。
  • 境界のある、予測可能なランタイム: 大量のバックログがある場合でも、1回の更新がいつまでも実行され続けることはありません。各更新には上限があり、大規模なワークロードは後続のスケジュールされた更新に分散されます。
  • 完了状況の可視性:各更新は、それが終了した理由を記録するため、ソースに追いついたのか、それともランタイム制限で停止したのかを判別できます。

更新完了を監視

完了理由は、パイプライン イベント ログの COMPLETED イベントのメッセージに表示されます。ソースに追いついた更新は理由lag-convergedで完了し、ランタイムの制限で停止した更新は理由max-runtime-cap-hitで完了します。

完了理由を確認するには、エクストラクタの COMPLETED イベントについてパイプラインイベントログをクエリします。<pipeline-id> をパイプライン ID に置き換えます:

SQL
SELECT timestamp, message
FROM event_log('<pipeline-id>')
WHERE message LIKE '%Direct Cdc Extraction has COMPLETED%'
ORDER BY timestamp DESC

イベントメッセージには理由が埋め込まれています。たとえば Direct Cdc Extraction has COMPLETED (reason=lag-converged)

定期的な更新をスケジュール

更新の所要時間はソースの変更データの量によって異なるため、大量のバックログは1回の更新では完了しない可能性があります。定期的なスケジュールでデータを取り込むには、パイプラインを実行するLakeflow Jobsタスクを作成します。後続の更新が遅れずに処理されるよう、十分な頻度でスケジュールしてください。ほとんどのワークロードには、60分という開始点が適切です。以前の更新がまだ実行中にトリガーが起動した場合、パイプラインは新しい更新をキューに入れます。

関連リソース