1.2. Debezium アーキテクチャーの説明
Apache Kafka Connect を使用して Debezium をデプロイします。Kafka Connect は、以下を実装および操作するためのフレームワークおよびランタイムです。
- レコードを Kafka に送信する Debezium などのソースコネクター
- Kafka トピックから他のシステムにレコードを伝播する Sink コネクター
以下の図は、Debezium をベースとした Change Data Capture パイプラインのアーキテクチャーを示しています。
イメージにあるように、MySQL と PostgresSQL の Debezium コネクターは、この 2 種類のデータベースへの変更をキャプチャーするためにデプロイされます。各 Debezium コネクターは、そのソースデータベースへの接続を確立します。
-
MySQL コネクターは、
binlog
へのアクセスにクライアントライブラリーを使用します。 - PostgreSQL コネクターは論理レプリケーションストリームから読み取ります。
Kafka Connect は、Kafka ブローカー以外の別のサービスとして動作します。
デフォルトでは、1 つのデータベースからの変更が、名前がテーブル名に対応する Kafka トピックに書き込まれます。必要な場合は、Debezium の トピック ルーティング変換 を設定すると、宛先トピック 名を調整できます。たとえば、以下を実行できます。
- テーブルの名前と名前が異なるトピックへレコードをルーティングする。
- 複数テーブルの変更イベントレコードを単一のトピックにストリーミングする。
変更イベントレコードが Apache Kafka に存在する場合、Kafka Connect エコシステムの異なるコネクターは、Elasticsearch、データウェアハウス、分析システム、Infinispan などのキャッシュなどの他のシステムおよびデータベースにレコードをストリーミングできます。選択したシンクコネクターによっては、Debezium new record state extraction の変換を設定する必要がある場合があります。この Kafka Connect SMT は、Debezium 変更イベントからシンクコネクターに after
構造を伝播します。これは、デフォルトで伝播される詳細な変更イベントレコードの代わりになります。
Debezium Server
Debezium Server を使用して Debezium をデプロイすることもできます。Debezium サーバーは設定可能なすぐに使用できるアプリケーションであり、ソースデータベースからさまざまなメッセージングインフラストラクチャーに変更イベントをストリーミングします。
Debezium Server は、開発者プレビューのソフトウェアのみです。開発者プレビューソフトウェアは、Red Hat では一切サポートされておらず、機能的に完全ではなく、実稼働環境に対応していません。開発者プレビューのソフトウェアを実稼働ワークロードまたはビジネスクリティカルなワークロードには使用しないでください。開発者プレビューソフトウェアは、今後 Red Hat 製品サービスとして追加される可能性のある製品ソフトウェアを前もって早期に利用できます。お客様はこのソフトウェアを使用して機能をテストし、開発プロセス中にフィードバックを提供できます。このソフトウェアにはドキュメントが存在しない可能性があり、変更または削除される可能性があります。また、限定的なテストしか行われていません。Red Hat は、関連する SLA なしに、開発者プレビューソフトウェアに対するフィードバックを送信する手段を提供する場合があります。
Red Hat 開発者プレビューソフトウェアのサポート範囲の詳細は、開発者プレビューのサポート範囲 を参照してください。
以下の図は、Debezium Server を使用する変更データキャプチャーパイプラインのアーキテクチャーを示しています。
Debezium サーバーは、Debezium ソースコネクターの 1 つを使用して、ソースデータベースから変更をキャプチャーするように設定されています。変更イベントは JSON や Apache Avro などのさまざまな形式にシリアル化でき、Apache Kafka や Redis Streams などのさまざまなメッセージングインフラストラクチャーのいずれかに送信されます。