Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kenzo0107/29ceaf6dbede22f6e8288e855cb30011 to your computer and use it in GitHub Desktop.
Save kenzo0107/29ceaf6dbede22f6e8288e855cb30011 to your computer and use it in GitHub Desktop.

https://docs.confluent.io/cloud/current/connectors/cc-mariadb-cdc-source-debezium.html

以下は、Confluent の公式ドキュメント「MariaDB CDC Source (Debezium) Connector for Confluent Cloud」に関するセクションを日本語に和訳し、Markdown形式で整理したまとめです。


MariaDB CDC Source (Debezium) コネクタ for Confluent Cloud

Confluent Cloud が提供する完全管理型の MariaDB CDC(Change Data Capture)ソースコネクタ(Debezium ベース)は、MariaDB データベースから既存データのスナップショットを取得し、その後の行レベルの変更(INSERT、UPDATE、DELETE)をキャプチャして Kafka トピックにストリームとして記録します。出力形式としては AVRO、JSON Schema、PROTOBUF に対応しています。各テーブルごとに専用の Kafka トピックが生成されます。(docs.confluent.io)


特長

  • Kafka トピックの自動作成<topic.prefix>.<schemaName>.<tableName> の形式で命名され、パーティション数は 1、レプリケーション係数は 3 になります。(docs.confluent.io)
  • データベース認証:パスワード認証方式を使用。
  • SSL サポート:MariaDB サーバとの暗号化通信を構成可能。
  • 監視対象の指定:デフォルトでは、すべてのデータベースと非システムテーブルの変更をキャプチャ。
  • Tombstone イベント:削除時に tombstone メッセージを生成(デフォルト:true)。
  • 出力フォーマット:値は AVRO、JSON_SR、PROTOBUF、キーは AVRO、JSON_SR、STRING、PROTOBUF に対応。スキーマ Registry が必要です。(docs.confluent.io)
  • **クライアントサイドのフィールド暗号化(CSFLE)**にも対応。(docs.confluent.io)

対応 MariaDB バージョン


制限事項

  • コネクタ固有の制限や使用可能なシングルメッセージトランスフォーム(SMTs)、および Schema Registry 使用環境の制約については、それぞれ関連セクションを確認してください。(docs.confluent.io)

最大メッセージサイズ

  • Basic, Standard, Enterprise クラスター:最大 8 MB
  • Dedicated クラスター:最大 20 MB(docs.confluent.io)

スナップショット中のログ保持

  • 起動時にスナップショットの取得(SELECT *)を行います。
  • スナップショット中に binlog に記録された変更を確実にキャプチャするため、MariaDB サーバのトランザクションログが保持されている必要があります(expire_logs_days の延長推奨)。(docs.confluent.io)

オフセットのカスタム管理

  • Confluent Cloud の API を使って、コネクタのオフセットを取得・更新・削除することが可能です。(docs.confluent.io)
  • GET リクエストで現在のオフセット状態を取得できます。
  • PATCH リクエストで任意の位置(ファイル、ポジション)に更新可能。ただし binlog に存在する valid なオフセットのみ使用してください。任意の値を指定するとコネクタが例外で停止する恐れがあります。(docs.confluent.io)
  • DELETE リクエストでオフセットをリセット(初期状態へ戻す)こともできます。(docs.confluent.io)

クイックスタート:コネクタ設定手順

前提条件

  • Confluent Cloud クラスター(AWS / Azure / GCP)へのアクセス権

  • Confluent CLI のインストール・設定

  • スキーマ Registry が有効(AVRO / JSON_SR / Protobuf 使用時)

  • データベースへのパブリックアクセス(必要に応じ)

  • MariaDB サーバの設定:

    • バックアップ有効化

    • パラメータグループで以下の設定:

      binlog_format=ROW
      binlog_row_image=full
      
    • データベース再起動(docs.confluent.io)

Confluent Cloud コンソールでの設定

  1. Kafka クラスター作成(未作成の場合)。(docs.confluent.io)

  2. Connectors メニューから +Add connector をクリック。

  3. MariaDB CDC Source Connector を選択。

  4. 認証方式選択:

    • Service account:本番推奨
    • API Key:開発等で使用可能
  5. MariaDB 接続設定:

    • ホスト名、ポート、ユーザー名、パスワード
    • SSL モード(disable または trust
  6. 出力フォーマット設定:Kafka レコードのキー/値形式を指定。

  7. Topic prefix の設定:Kafka トピック命名の論理プレフィックス。

  8. データベース/テーブルの include/exclude 正規表現指定

  9. GTID include/exclude 正規表現で binlog ポジション制御。

  10. Snapshot mode(例:initial, when_needed, no_data, recovery 等)を選択。(docs.confluent.io)

  11. Snapshot locking modeminimal, extended, none 等)も設定可能。(docs.confluent.io)

  12. その他:

    • Schema context(スキーマ分離が必要な場合)
    • Auto-restart の ON/OFF
    • "After-state only"(後の状態のみ出力)や tombstone 設定
    • Signal collection 設定(インクリメンタルスナップショット用)
    • システムテーブルの無視フラグ
    • Schema history トピック名指定 (docs.confluent.io)

まとめ

機能カテゴリー 内容
基本機能 MariaDB のデータ変更を Kafka トピックにストリーミング(AVRO/JSON_SR/PROTOBUF 出力)
スナップショット戦略 初回データ取得や復旧のためのスナップショットモード(設定可能)
セキュリティ/暗号化 パスワード認証+SSL/CSFLE に対応
ネットワーク対応 パブリック接続または事前設定されたプライベートネットワーク対応
オフセット管理 API 経由で取得・パッチ・リセット可能。binlog 側オフセットの整合性に注意
自動トピック生成 Topic prefix に基づくトピック自動生成(件名命名・パーティション・レプリケーション設定)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment