MakingSenseofStreamProcessing / Implementing the Snapshot and the Change Stream


  • ユーザーは、データベースの特定の状態をキャプチャーするプロセスが、読み書きを妨げること無しに開始できるようにしたいと考えている
  • 多くのデータベース(PostgreSQL,MySQL/InnoDb?/Oracle)は、MVCC(MultiVersion Concurrency Control)を使用して、データベースをロックすることなく、データベースのpoint-in-timeなスナップショットを取ることが出来る
  • 変更ストリームはこのスナップショットと協調して、スナップショットが作成されて以来発生したデータ変更を正確に含むようにする必要がある
  • 次のセクションでは、これを行うPostgreSQLの特定の実装について説明します。
  • KafkaとKafka Connectを使用することで、実際にスナップショットと変更ストリームを単一のイベントログに統合することができます。
  • スナップショットがキャプチャされている間の書き込みからの変更イベントは、キューに入れられ、スナップショットが完了したときにログに送られなければならない。
  • バックログがクリアされると、変更をキャプチャーするシステムは、データ変更イベントをピックアップし、変更ログに送信することができます。
  • 残りは、変更データの取り込みをどのように行うかを理解するだけで、この章の残りはこの部分。