第4章 SQL Server の Debezium コネクター
テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされません。また、機能的に完全ではない可能性があるため、Red Hat はテクノロジープレビュー機能を実稼働環境に実装することは推奨しません。テクノロジープレビュー機能は、最新の技術をいち早く提供し、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。サポート範囲の詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Debezium の SQL Server コネクターは、SQL Server データベースのスキーマで行レベルの変更を監視および記録できます。
SQL Server データベース/クラスターに初めて接続すると、すべてのスキーマの整合性スナップショットが読み込まれます。スナップショットが完了すると、コネクターは SQL Server にコミットされた変更を継続的にストリーミングし、対応する insert、update、および delete イベントを生成します。各テーブルのすべてのイベントは、アプリケーションやサービスで簡単に使用できる個別の Kafka トピックに記録されます。
4.1. 概要
コネクターの機能は、SQL Server Standard によって提供される 変更データキャプチャー 機能(SQL Server 2016 SP1 以降)または Enterprise の編集に基づいています。このメカニズムを使用すると、SQL Server キャプチャープロセスは、ユーザーが関心のあるすべてのデータベースおよびテーブルを監視し、変更をストアドプロシージャーファサードで特別に作成された CDC テーブルに保存します。コネクターは SQL Server 2017 でテストされていますが、コミュニティーメンバーは 2014 までの以前のバージョンで正常に使用されました(CDC 機能が提供される限り)。
データベース Operator は、コネクターによってキャプチャーされる必要があるテーブルの CDC を 有効 にする必要があります。その後、コネクターは CDC API 経由で公開されたすべての行レベルの insert、update、および delete 操作の 変更イベント を生成し、個別の Kafka トピックの各テーブルの変更イベントをすべて記録します。クライアントアプリケーションは、対象のデータベーステーブルに対応する Kafka トピックを読み取り、これらのトピックに表示されるすべての行レベルのイベントに対応します。
データベース Operator は通常、データベース an/またはテーブルの中間期間で CDC を有効にします。つまり、コネクターにはデータベースに加えられたすべての変更の完全な履歴はありません。したがって、SQL Server コネクターが最初に特定の SQL Server データベースに接続すると、データベーススキーマごとに 整合性スナップショット を実行して起動します。コネクターは、スナップショットの完成後に、スナップショットが作成された正確な時点から変更のストリーミングを続行します。これにより、すべてのデータの一貫したビューから開始しますが、スナップショットの実行中に加えられた変更を失うことなく読み取りを続行します。
コネクターはフォールトトラレントでもあります。コネクターは変更を読み取り、イベントを生成するため、CDC レコードに関連するデータベースログの位置(LSN / ログシーケンス番号)を記録します。コネクターが何らかの理由で停止した場合(通信障害、ネットワークの問題、クラッシュなど)、再起動時に最後に停止した CDC テーブルの読み取りを続行します。これにはスナップショットが含まれます。コネクターの停止時にスナップショットが完了しなかった場合、再起動時に新しいスナップショットが開始されます。