1.2. Debezium アーキテクチャー
Apache Kafka Connect を使用して Debezium をデプロイします。Kafka Connect は、実装および操作のためのフレームワークおよびランタイムです。
- Kafka にレコードを送信する Debezium などのソースコネクター
- Kafka トピックから他のシステムにレコードを伝播するシンクコネクター
以下の図は、Debezium に基づいた変更データキャプチャーパイプラインのアーキテクチャーを示しています。
![Debezium アーキテクチャー](https://access.redhat.com/webassets/avalon/d/Red_Hat_Integration-2020-Q2-Debezium_User_Guide-ja-JP/images/eb24456baa4626a6f3ece7403db5f42f/debezium-architecture.png)
イメージで示されているように、MySQL と PostgresSQL の Debezium コネクターがデプロイされ、2 種類のデータベースへの変更がキャプチャーされます。各 Debezium コネクターは、ソースデータベースへの接続を確立します。
-
MySQL コネクターは、へのアクセスにクライアントライブラリーを使用し
binlog
ます。 - PostgreSQL コネクターは、論理レプリケーションストリームから読み取られます。
Kafka Connect は、Kafka ブローカー以外の別のサービスとして動作します。
デフォルトでは、1 つのデータベーステーブルからの変更がテーブル名に対応する Kafka トピックに書き込まれます。必要に応じて、Debezium のトピック ルーティング変換 を設定して、宛先トピック名を調整することができます。たとえば、以下の操作を行うことができます。
- 名前がテーブルの名前と異なるトピックにルートレコードをルーティングします。
- 複数テーブルのイベントレコードを単一のトピックに変更します。
変更イベントレコードが Apache Kafka にある後に、Kafka Connect の eco-system の異なるコネクターは、Elasticsearch、データ拒否、解析システム、Infinispan などのキャッシュなどの他のシステムやデータベースにレコードをストリーミングできます。選択したシンクコネクターによっては、Debezium の 新しいレコード状態抽出 変換の設定が必要になる場合があります。この Kafka Connect SMT は、Debezium の変更イベントからシンクコネクターに after
構造を伝播します。これは、デフォルトで伝播される詳細変更イベントレコードの代わりに使用されます。