注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
ブレーキングチェンジは、ストリーミングやインクリメンタルパイプラインで状態を持つ関数が変更されたときに発生します。トランスフォームは、行レベルまたは状態を持つ関数のどちらかです。
Multiply numbers
や フィルター処理する
などです。主な状態を持つ関数は4つあります。
状態を持つ関数が変更されると、以前の出力はもう正確でないかもしれません。例えば、偶数にフィルター処理してその集合の合計を取るとします。もしフィルター処理をすべての奇数に変更すると、既存の状態は偶数の合計になりますが、新しいフィルター処理された値はすべて奇数になります。したがって、合計が何を表しているかは今や曖昧であり、偶数の集合の合計に奇数の集合の合計が加算されている状態です。状態を更新するには、リプレイを実行します。
リプレイには2種類あります。
リプレイはオプションまたは必須ですが、ブレーキングチェンジの場合、Pipeline Builder は自動的にこの変更を検出し、デプロイ時にリプレイが必要になります。以下の画像は、インクリメンタルパイプラインで強制されたリプレイを示しています。
パイプラインのリプレイは、長時間のダウンタイムにつながることがあり、複数の日にわたることもあります。パイプラインをリプレイすると、ストリームの履歴が失われ、すべての下流パイプラインのコンシューマがリプレイを要求されます。