4.4.2. スナップショットの実行
タスクがレプリカセットを使用して開始すると、コネクターの論理名とレプリカセット名を使用して、コネクターが変更の読み取りを以前に停止した位置を示す オフセット を見つけます。オフセットが見つかり、これが oplog に存在する場合は、そのタスクは、記録されたオフセットの位置からすぐに ストリーミングの変更 を続行します。
ただし、オフセットが見つからない場合や、oplog がその位置が含まれなくなった場合は、スナップショット を実行して、タスクがレプリカセットコンテンツの現在の状態を取得する必要があります。このプロセスは、現在の oplog の位置を記録し、オフセットとしてそれを記録することで開始します(スナップショットが開始したことを示すフラグとともに)。その後、タスクによって各コレクションをコピーし、( initial.sync.max.threads
設定プロパティーの値まで)できるだけ多くのスレッドを起動して、この作業を並行して実行します。コネクターは、閲覧するドキュメントごとに個別の 読み取りイベント を記録し、その読み取りイベントにはオブジェクトの識別子、オブジェクトの完全な状態、およびオブジェクトが見つかった MongoDB レプリカセットの ソース 情報が含まれます。ソース情報には、イベントがスナップショット中に生成されたことを示すフラグも含まれます。
このスナップショットは、コネクターのフィルターに一致するすべてのコレクションをコピーするまで継続されます。タスクのスナップショットの完了前にコネクターが停止した場合、コネクターを再起動すると、スナップショットが再び開始されます。
コネクターがレプリカセットのスナップショットを実行している間は、タスクの再割り当ておよび再設定が行われないようにします。コネクターは、スナップショットの進捗と共にログメッセージを実行します。各コネクターの Kafka Connect の別個のクラスターをほぼ制御するには、コネクターごとに実行します。