第2章 Debezium コネクターのインストール
コネクタープラグインを使用して Kafka Connect を拡張し、Streams for Apache Kafka を通じて Debezium コネクターをインストールします。Streams for Apache Kafka のデプロイメント後、Kafka Connect を介して Debezium をコネクター設定としてデプロイできます。
2.1. Kafka トピック作成に関する推奨事項
Debezium は、データを複数の Apache Kafka トピックに保存します。トピックは、管理者が事前に作成する必要があります。または、Kafka Connect を設定して トピックを自動的に設定します。
以下のリストで、トピックの作成時に考慮すべき制限および推奨事項を説明します。
- Debezium Db2、MySQL、Oracle、および SQL Server コネクターのデータベーススキーマ履歴トピック
上記の各コネクターには、データベーススキーマ履歴トピックが必要です。データベーススキーマ履歴トピックを手動で作成する場合、Kafka ブローカーを使用してトピックを自動的に作成する場合、または Kafka Connect を使用してトピックを作成する 場合でも、トピックが以下のように設定されていることを確認してください。
- 無限または非常に長い保持期間
- 3 以上の実稼働環境でのレプリケーション係数
- 単一パーティション
- その他のトピック
指定のレコードの 最後 の変更イベントのみが保存されるように Kafka ログコンパクション を有効にする場合は、Apache Kafka で以下のトピックプロパティーを設定します。
-
min.compaction.lag.ms
トピックコンシューマーがすべてのイベントを受信してマーカーを削除するのに十分な時間を確保するには、シンクコネクターに予想される最大ダウンタイムよりも大きい値を前述のプロパティーの値に指定します。たとえば、シンクコネクターに更新を適用する際に発生する可能性のあるダウンタイムを考慮してください。
-
- 実稼働でレプリケート
単一パーティション
単一パーティションルールを緩和できますが、アプリケーションはデータベースの異なる行に対して順不同のイベントを処理する必要があります。単一行のイベントは、引き続き完全に順序付けされます。複数のパーティションを使用する場合は、Kafka がキーをハッシュ化してパーティションを決定するのがデフォルトの動作になります。その他のパーティションストラテジーでは、単一メッセージ変換 (SMT: Single Message Transformations) を使用して、各レコードにパーティション番号を設定する必要があります。