2.5. Debezium の新機能


Debezium 2.1.4 には、以下の更新が含まれています。

2.5.1. 互換性を失わせる変更点

Debezium 2.1.4 での次の変更は、コネクターの動作に大きな違いがあることを示しており、以前の Debezium バージョンと互換性のない設定を変更する必要があります。

複数のコネクターに適用される変更
データベース履歴トピック
データベーススキーマ履歴 トピックと呼ばれます。
メモリーキューのオブジェクトサイズの制限
サイズはリフレクションを使用して計算されなくなりました。代わりに、キュー制限はメッセージスキーマに基づいて推定されます。(DBZ-2766) (MongodB、MySQL、Oracle、PostgreSQL、SQL Server)
コネクターメトリクスの公開
Debezium は以前、スナップショット、ストリーミング、および履歴ベースの Bean の単一のタプルとしてコネクターメトリックを公開していました。今回のリリースにより、コネクターメトリクスがマルチパーティションスキームとして公開されるようになりました。その結果、メトリクス名およびそれらが公開される方法が変更になりました (DBZ-4726)。メトリックを収集するために Grafana、Prometheus、または同様の JMX フレームワークを使用する場合は、メトリクスを収集するためのプロセスを確認してください。
database.server.name プロパティー
コネクター設定で使用されなくなりました。詳細は、表2.1「コネクター設定プロパティーの更新」 を参照してください。
スキーマ定義
命名とバージョン管理で一貫性を確保するために、Debezium スキーマが一元的に定義されるようになりました (DBZ-4365DBZ-5044)。スキーマレジストリーを使用する場合は、スキーマの互換性の問題が発生する可能性があります。
Debezium ストレージの変更
以前のリリースでは、Debezium は debezium-core モジュールの一部としてオフセット、履歴、およびその他のデータの読み取りと保存をサポートしていました。このリリースには、ローカルファイルシステムまたは Kafka にデータを格納するための実装を備えた新しい debezium-storage モジュールが含まれています (DBZ-5229)。このアプローチで実装された拡張ポイントにより、今後他のストレージ実装を導入できます。アップグレードの一環として、コードに必要なストレージモジュールの実装によっては、アプリケーションの依存関係を調整する必要がある場合があります。
通信例外後の再起動
通信に関連する例外 (SqlException、IOException) が出力された後、デフォルトで、Debezium MongoDB、MySQL、PostgreSQL、および SQL Server コネクターが自動的に再起動するようになりました (DBZ-5244)。
skipped.operations 設定オプションのデフォルト値
デフォルト値は truncate (DBZ-5497) (MongoDB、MySQL、Oracle、PostgreSQL、SQL Server) になりました。
schema.name.adjustment.mode プロパティーのデフォルト値
デフォルト値は none (DBZ-5541)になりました。以前のデフォルトオプションである avro は、Avro コンバーターを使用するお客様にとっては適切な選択でしたが、JSON コンバーターを使用する環境では混乱を招きました。今回の変更の一環として、sanitize.field.names プロパティーが利用できなくなりました。
* コネクター設定プロパティーの削除

Debezium 1.x バージョンで使用できたいくつかのプロパティーは有効ではなくなり、新しいプロパティーに置き換えられました。詳細は、以下の表を参照してください。

表2.1 コネクター設定プロパティーの更新
1.x プロパティー2x で同等のプロパティー

database.* (パススルーデータベースドライバーのプロパティー) (DBZ-5043)

driver.*

database.dbname (SQL Server)

database.names

database.history.consumer.* (DBZ-5043)

schema.history.internal.consumer.*

database.history.kafka.bootstrap.servers (DBZ-5043)

schema.history.internal.kafka.bootstrap.servers

database.history.kafka.topic (DBZ-5043)

schema.history.internal.kafka.topic

database.history.producer.* (DBZ-5043)

schema.history.internal.producer.*

database.server.name (DBZ-5043)

topic.prefix

mongodb.name (MongoDB)

topic.prefix

schema_blacklist (DBZ-5045)

schema_exclude_list

schema_whitelist (DBZ-5045)

schema_include_list

MySQL コネクターに適用される変更
  • MySQL コネクターはレガシー JDBC レガシーの日付/時間プロパティーはサポート対象外になりました (DBZ-4965)。
MongoDB コネクターに適用される変更
  • MongoDB コネクターは oplog から直接ストリーミングをサポートしなくなりました。変更ストリームは、MongoDB で変更データキャプチャーを実行するための優れたメカニズムです。コネクターは、oplog を直接読み取るのではなく、oplog データをキャプチャーしてデコードするタスクを MongoDB 変更ストリームに委任し、コレクション内で発生した変更をイベントストリームとして公開します。Debezium コネクターは、このストリームにサブスクライブして、ダウンストリームの変更を Kafka に配信します。変更ストリームへの移行には、非プライマリーノードからの変更をストリーミングする機能や、ダウンストリームコンシューマー向けの完全なドキュメント表現で更新イベントを発行する機能など、さまざまな利点があります。
  • 設定プロパティー mongodb.nametopic.prefix プロパティーに置き換えられます。
PostgreSQL コネクターに適用される変更
  • プロトコルバッファー (protobuf) のデコードがサポートされなくなりました (DBZ-703)。
  • wal2json プラグインはサポートされなくなりました (DBZ-4156)。
  • PostgreSQL トランザクション ID は、ロールオーバーする 32 ビット整数になりました。トランザクションの重複除外を簡素化するために、LSN が識別子の一部として含まれるようになりました (DBZ-5329)。
SQL Server コネクターに適用される変更
  • SQL Server データベースで SSL が有効になっていない場合、または SSL を使用せずにデータベースに接続する場合は、コネクター設定で database.encrypt プロパティーの値を false に設定して SSL を無効にします。
  • database.dbname プロパティーは database.names プロパティーに置き換えられます。

2.5.2. 一般公開 (GA) にプロモートした機能

Debezium 2.1.4 リリースでは、次の機能がテクノロジープレビューから一般公開 (GA) にプロモートされます。

2.5.3. Debezium 機能の更新

この Debezium 2.1.4 リリースでは、次のリストの項目を含む、いくつかの機能の更新と修正が提供されます。

  • MySQL コネクターは binlog 圧縮をサポートするようになりました。(DBZ-2663)
  • "Streaming requested from LSN" 警告のログ出力を制限します。(DBZ-3007)
  • MySQL コネクターパーサーに JSON_TABLE のサポートを実装します。(DBZ-3575)
  • シグナルを送信することで、増分スナップショットを一時停止または停止できるようになりました。(DBZ-4251)
  • ユーザーアカウントに必要な CDCReader パーミッションがない場合に、SQL Server コネクターが失敗するようになりました。(DBZ-4346)
  • MongoDB コネクターはバイナリーペイロードをデコードできるようになりました。(DBZ-4600)
  • 実行中の増分スナップショットを一時停止および再開できるようになりました。(DBZ-4727)
  • 接続文字列 URI を指定することで、MongoDB 接続設定を指定できるようになりました。(DBZ-4733)
  • MongoDB コネクターの field.exclude.list プロパティーが、同じ名前を持つ異なるコレクションのフィールドで機能するようになりました。(DBZ-4846)
  • PostgresSQL コネクターは、PSQLException: This connection has been closed. エラーの後に接続を再試行するようになりました。(DBZ-4948)
  • MySQL コネクターは、イベントヘッダーのタイムスタンプを履歴レコードに保存するようになりました。(DBZ-4998
  • LogMiner バッチサイズは、デフォルトのサイズではなく、現在のバッチサイズに基づいて調整されるようになりました。(DBZ-5005)
  • ByLogicalTableRouter SMT で キャッシュするエントリーの最大数 を設定できるようになりました。(DBZ-5072)
  • 新しい拡張 API を使用すると、Debezium のバージョンを照会できます。(DBZ-5092)
  • ts_ms フィールドをスキーマ変更イベントに追加して、イベントの発生時または処理時を識別します。DBZ-5098
  • MongoDB コネクターが oplog エントリーを変換するとき、Document ではなく RawBsonDocument クラスを使用するようになりました。(DBZ-5113)
  • MySQL のコミットタイムスタンプ。(DBZ-5170)
  • イベント SCN が Oracle イベントレコードに含まれるようになりました。(DBZ-5225)
  • UnknownTopicOrPartitionException の発生を回避するために、database.history.kafka.create.timeout.ms を設定して、コネクターが Kafka 履歴トピックの作成を待機する時間を指定できるようになりました。(DBZ-5249)
  • プライマリーキーを変更した後、LOB タイプのデータはソースとシンクの間で整合性が保たれるようになりました。(DBZ-5295)
  • MySQL コネクターは、binlog を読み取ろうとしたときにエラーを受け取った後、再試行するようになりました。DBZ-5333
  • 増分スナップショットの作成中に、Oracle コネクターは、名前にピリオドが含まれるデータベースからのイベントを正しく解析するようになりました。(DBZ-5336)
  • スキーマ接頭辞を使用した PostgreSQL のデフォルト値関数呼び出しをサポートします。(DBZ-5340)
  • MySQL コネクターは、MySQL 8.x の未署名の tinyint データ型を変換できません。(DBZ-5343)
  • Oracle コネクターは、キャプチャーされたテーブルに対してサポートされていない LogMiner 操作を検出すると、警告をログに記録します。(DBZ-5351)
  • Oracle コネクターは、固有のインデックスがシステム生成列と非システム生成列の両方に基づいている場合に、NullPointerException を出力します。(DBZ-5356)
  • 列ハッシュ v2 が MySQL コネクターで機能しなかった問題を修正しました。(DBZ-5366)
  • ネスト化された配列で、最初の配列に要素が含まれていない送信イベントペイロードにおいて JSON 拡張に失敗するという問題が修正されました。(DBZ-5367)
  • MongoDB 互換の AWS DocumentDB を使用する場合に発生する MongoDB コネクター接続エラーが修正されました。(DBZ-5371)
  • Oracle コネクターが CommitScn を予期しない形式で記録する問題を修正しました。DBZ-5381
  • PostgreSQL コネクターエラー「org.postgresql.util.PSQLException: Bad value for type timestamp/date/time: CURRENT_TIMESTAMP」が修正されました。(DBZ-5384)
  • previousID プロパティーが履歴トピックにない MySQL コネクターの問題を修正しました。DBZ-5386
  • Check 制約では、スキーマ変更イベントの制約に基づいて列が導入されました。(DBZ-5390)
  • PostgreSQL コネクターが PRIMARY KEY として参照される列をキャプチャーするが、一致する列がテーブルに定義されていない場合に発生する問題が修正されました。(DBZ-5398)
  • プラグイン可能なデータベースで Oracle を使用する場合の signal.data.collection に関するドキュメントを明確化しました。(DBZ-5399)
  • PostgreSQL コネクターは GMT を使用してタイムスタンプを指定するようになりました。(DBZ-5403)
  • アドホックおよび増分スナップショットは、キャプチャーするデータのサブセットを指定するための additional-condition パラメーターをサポートするようになりました。(DBZ-5327)
  • ストリーミング中に Oracle コネクターがサポートされていない非リレーショナルテーブルを適切に処理できるようにするロジックを追加しました。(DBZ-5441)
  • SQL Server コネクタータスクは、「Socket closed」の例外の後に再起動するようになりました。(DBZ-5478)
  • 正規表現トピックの命名ストラテジーの一意性キーフィールド/値を拡張します。(DBZ-5480)
  • MySqlErrorHandler が SocketException を処理するようになりました。(DBZ-5486)
  • MySQL コネクターは、データベース列のコメントをコネクタースキーマに追加するようになりました。(DBZ-5489)
  • スキーマ履歴メッセージにデフォルト値と列挙値を公開します。DBZ-5511
  • BinaryHandlingMode の BASE64_URL_SAFE をサポートします。(DBZ-5544)
  • ソースデータベースでオフセットをコミットするときにパーティションを提供します。(DBZ-5557)
  • 従来のスナップショットプロセス設定 source.ts_ms です。(DBZ-5591)
  • 論理名の設定をクリーンアップします。(DBZ-5594)
  • MySQL コネクターは TRUNCATE イベントをキャプチャーするようになりました。(DBZ-5610)
  • ドキュメントに含まれる include/exclude オプションのセマンティクスを明確にします。(DBZ-5625)
  • 変更イベントを発行する際に before フィールドを含めるように MongoDB コネクターを設定できるようになりました。(DBZ-5628)
  • PostgreSQL コネクターでの非増分スナップショットのログ機能が強化されました。(DBZ-5639)
  • REGEXP_LIKE disjunctions を減らして、LogMiner クエリーのパフォーマンスを向上させます。(DBZ-5648)
  • MongoDB コネクターがハートビートメッセージをサーバーに送信する頻度を設定できます。(DBZ-5736)
  • トピック名をサニタイズする機能を強化しました。(DBZ-5790)
  • PostgreSQL コネクターが処理済みレコードの LSN をデータベースに自動的にコミットしないように、flush.lsn.source を設定できるようになりました。(DBZ-5811)
  • ComputePartition SMT を使用して、特定のフィールドに基づいて特定のトピックパーティションにデータをルーティングできるようになりました。(DBZ-5847)
  • event.processing.failure.handling.mode を設定して、PostgreSQL コネクターが失敗した LSN チェックをスキップできるようになりました。DBZ-6012
  • 変更の頻度が低いプラガブルデータベースデプロイメント (CDB) で Oracle コネクターを使用する場合は、コネクターオフセットが正しく進むようになりました。(DBZ-6125)
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat