第1章 Debezium の概要
Debezium は分散サービスのセットで、データベースの変更をキャプチャーします。アプリケーションはこれらの変更を使用し、これに対応できる。Debezium は、変更イベントレコードの各データベーステーブルの各行レベルの変更をキャプチャーし、これらのレコードを Kafka トピックにストリーミングします。アプリケーションはこれらのストリームを読み取り、変更イベントレコードを生成と同じ順序で提供します。
詳細は、以下のセクションを参照してください。
1.1. Debezium の機能 リンクのコピーリンクがクリップボードにコピーされました!
Debezium は Apache Kafka Connect のソースコネクターのセットで、Changes Data capture(CDC)を使用して異なるデータベースからの変更をサンプリングします。ポーリングやデュアル書き込みなどの他のアプローチとは異なり、Debezium が実装するログベースは以下のようになります。
- すべてのデータの変更がキャプチャーされるようにする
- 遅延が非常に低い 変更イベント(例: MySQL または Postgres のミリ秒範囲)を生成する一方で、ポーリングが頻繁に行われる CPU の使用量を増やすのを回避します。
- データモデルの変更を必要としません( 「最後の更新」の列など)。
- 取得が削除可能
- トランザクション ID などの 古いレコードの状態やメタデータをキャプチャー してクエリーの原因(データベースのケイパビリティーや設定により)をキャプチャーできます。
ログベースのフォントの利点の詳細は、このブログ投稿 を参照してください。
Debezium の実際の変更データキャプチャー機能は、関連する機能およびオプションの範囲で変更されます。
- スナップショット: オプションで、コネクターが起動し、すべてのログが存在している場合には、データベースの初期スナップショットを取得でき(通常は、データベースがしばらく実行され、トランザクションリカバリーまたはレプリケーションに必要でないトランザクションログを破棄した場合など)。スナップショット用の異なるモードは、スナップショット用として存在します。詳細は確認するために使用する特定のコネクターのドキュメントを参照してください。
- フィルター - 取得されたスキーマ、テーブル、および列のセットはホワイトリスト/ブラックリストフィルターを使用して設定できます。
- マスク - 特定の列の値(機密データなど) はマスクできます。
- 監視: ほとんどのコネクターは JMX を使用して監視できます。
- 利用できる メッセージ変換: メッセージ ルーティング の場合、新しいレコード状態(リレーショナルコネクター、MongoDB)の抽出、トランザクションアウトボックステーブルから のイベントのルーティング など。
サポートされるすべてのデータベースのリストや、各 コネクターの機能および設定オプションの詳細情報は、コネクターのドキュメント を参照してください。