2.2. Kafka トピック作成に関する推奨事項

Debezium は、データを複数の Kafka トピックに格納します。トピックは管理者が事前に作成するか、Kafka Connect を設定してトピックを自動的に設定する ことができます。

以下のリストで、トピックの作成時に考慮すべき制限および推奨事項を説明します。

MySQL、SQL Server、Db2、および Oracle コネクターのデータベース履歴トピック
  • 無限または非常に長期の保持期間。
  • 3 以上の実稼働環境でのレプリケーション係数。
  • 単一パーティション。
その他のトピック
  • 指定のレコードの 最後の 変更イベントのみを保存するように Kafka ログコンパクション を有効にする場合は、Apache Kafka で以下のトピックプロパティーを設定します。

    • min.compaction.lag.ms
    • delete.retention.ms

      コンシューマーがすべてのイベントを受信し、マーカーを削除するのに十分な時間があるようにするには、前項のプロパティーにシンクコネクターで予想される最大ダウンタイムよりも大きな値を指定します。たとえば、シンクコネクターに更新を適用する際に発生する可能性のあるダウンタイムを考慮します。

  • 実稼働でレプリケートされます。
  • 単一パーティション。

    単一パーティションルールを緩和できますが、アプリケーションはデータベースの異なる行に対して順不同のイベントを処理する必要があります。単一行のイベントは、引き続き完全に順序付けされます。複数のパーティションを使用する場合、Kafka がキーをハッシュ化してパーティションを決定するのがデフォルトの動作になります。その他のパーティションストラテジーでは、SMT (Simple Message Transform、シンプルメッセージ変換) を使用して各レコードにパーティション番号を設定する必要があります。