Red Hat build of Debezium 2.5.4 のリリースノート
Red Hat build of Debezium の新機能
概要
第1章 Red Hat build of Debezium リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Debezium は、ハイブリッド環境およびマルチクラウド環境全体でコンテナーベースの統合サービスを作成、拡張、デプロイするための包括的な統合およびイベント処理技術です。Red Hat build of Debezium は、デジタル環境で必要となるアプリケーションとシステム間でデータを接続および共有するために組織が使用できる、アジャイルで API 中心の分散ソリューションを提供します。
Red Hat build of Debezium には、以下の機能が含まれています。
- リアルタイムのメッセージング
- データセンター間のメッセージストリーミング
- API の接続
- アプリケーションコネクター
- エンタープライズ統合パターン
- API 管理
- データの変換
- サービス構成とオーケストレーション
第2章 Debezium 2.5.4 リリースノート リンクのコピーリンクがクリップボードにコピーされました!
Debezium は、分散型変更データキャプチャープラットフォームで、データベーステーブルで発生する行レベルの変更をキャプチャーし、対応する変更イベントレコードを Apache Kafka トピックに渡します。アプリケーションはこれらの 変更イベントストリーム を読み取りでき、変更イベントが発生した順にアクセスできます。Debezium は Apache Kafka 上に構築され、OpenShift Container Platform または Red Hat Enterprise Linux 上の AMQ Streams とデプロイおよび統合されます。
リリースの詳細は以下を参照してください。
2.1. Debezium データベースコネクター リンクのコピーリンクがクリップボードにコピーされました!
Debezium は、以下の共通データベースの Kafka Connect をベースとしたコネクターを提供します。
- Db2
- JDBC シンクコネクター
- MongoDB
- MySQL
- Oracle
- PostgreSQL
- SQL Server
2.1.1. コネクターの使用上の注意 リンクのコピーリンクがクリップボードにコピーされました!
Db2
-
Debezium Db2 コネクターには、Db2 JDBC ドライバー (
jcc-11.5.0.0.jar) が含まれていません。必要な JDBC ドライバーのデプロイ方法については、Db2 コネクターのデプロイメント手順 を参照してください。 - Db2 コネクターには、Linux 用の Db2 の標準部分として利用できる抽象構文表記 (ASN) ライブラリーを使用する必要があります。
- ASN ライブラリーを使用するには、IBM InfoSphere Data Replication (IIDR) のライセンスが必要です。ライブラリーを使用するために IIDR をインストールする必要はありません。
-
Debezium Db2 コネクターには、Db2 JDBC ドライバー (
MySQL
- このリリース以降、MariaDB での MySQL コネクターの使用がテクノロジープレビュー機能として利用可能になりました。詳細は、「MariaDB での MySQL 用 Debezium コネクターの使用」 を参照してください。
Oracle
-
Debezium Oracle コネクターには、Oracle JDBC ドライバー (
ojdbc8.jar) が含まれていません。必要な JDBC ドライバーのデプロイ方法については、Oracle コネクターのデプロイメント手順 を参照してください。
-
Debezium Oracle コネクターには、Oracle JDBC ドライバー (
PostgreSQL
-
Debezium PostgreSQL コネクターでは、PostgreSQL バージョン 10 以降のデフォルトである
pgoutput論理デコーディング出力プラグインを使用する必要があります。
-
Debezium PostgreSQL コネクターでは、PostgreSQL バージョン 10 以降のデフォルトである
2.2. Debezium でサポートされる設定 リンクのコピーリンクがクリップボードにコピーされました!
サポートされるデータベースバージョンなど、Debezium でサポートされる構成の詳細は、Debezium 2.5.4 サポートされる構成 のページを参照してください。
2.2.1. AMQ Streams API バージョン リンクのコピーリンクがクリップボードにコピーされました!
Debezium は AMQ Streams 2.6 で実行されます。
AMQ Streams は、AMQ Streams カスタムリソースのスキーマを更新する v1beta2 API バージョンをサポートします。古い API バージョンは非推奨になりました。
2.3. Debezium のインストールオプション リンクのコピーリンクがクリップボードにコピーされました!
Debezium と AMQ Streams を OpenShift または Red Hat Enterprise Linux にインストールできます。
2.4. Debezium 2.5.4 の機能および改善点 リンクのコピーリンクがクリップボードにコピーされました!
2.4.1. 互換性を失わせる変更点 リンクのコピーリンクがクリップボードにコピーされました!
重大な変更は、コネクターの動作に大きな違いをもたらし、Debezium の以前のバージョンと互換性のない設定の変更が必要になります。
Debezium 2.5.4 では、次のコンポーネントに影響する重大な変更が導入されています。
Debezium の以前のリリースにおける重大な変更は、Debezium 2.3.7 リリースノート を参照してください。
2.4.1.1. すべてのコネクターに関連する重大な変更 リンクのコピーリンクがクリップボードにコピーされました!
- ComputePartition SMT が削除される (DBZ-7141)
-
ComputePartition単一メッセージ変換 (SMT) は、以前は Debezium がイベントレコードを書き込んだターゲット Kafka トピックパーティションを計算するために使用されていました。この SMT は、以前に非推奨となり、現在は削除されています。代わりにPartitionRoutingSMT を使用します。
2.4.1.2. CloudEvents コンバーターの重大な変更 リンクのコピーリンクがクリップボードにコピーされました!
metadata.locationプロパティーの名前がmetadata.sourceに変更される (DBZ-7060)-
CloudEvents 設定プロパティー
metadata.locationは、metadata.sourceプロパティーに置き換えられました。CloudEvents コンバーターを使用して CloudEvents 形式に準拠するイベントを発行する場合は、コネクター設定のプロパティーを更新します。詳細は、Debezium ユーザーガイドの メタデータのソースと一部の CloudEvents フィールドの設定 を参照してください。 - CloudEvent ヘッダーの変更 (DBZ-7216)
- CloudEvent ヘッダーのスキーマ名接頭辞と大文字と小文字の区別がペイロード名と一致していませんでした。スキーマ名が調整され、イベントヘッダーとペイロードが同じ名前空間を共有し、大文字と小文字の区別に関して同じルールに従うようになりました。
2.4.1.3. JDBC シンクコネクターの重大な変更 リンクのコピーリンクがクリップボードにコピーされました!
- JDBC シンク値のシリアル化の変更 (DBZ-7191)
-
場合によっては、JDBC シンクコネクターが
null値のフィールドを含むイベントを消費し、イベントレコードをターゲットデータベースに書き込むときに、値NULLではなく、デフォルトのフィールド値が誤って書き込まれることがありました。
2.4.1.4. MongoDB コネクターの重大な変更 リンクのコピーリンクがクリップボードにコピーされました!
- 新しい読み取り設定 (DBZ-6591)
-
以前のバージョンの MongoDB コネクターでは、ハードコードされた
secondaryPreferred読み取り設定が使用されていました。この動作は、すべての MongoDB 操作がprimaryメンバーから読み取られる、推奨されるデフォルトの MongoDB 設定と競合します。Debezium 2.5.4 以降では、コネクターは接続文字列で設定された読み取り設定に常に従うようになりました。
元の動作を維持する場合は、接続文字列に次のオプションを追加してコネクター設定をカスタマイズします。
&readPreference=secondaryPreferred
&readPreference=secondaryPreferred
コネクターがシャード化されたクラスターから読み取り、mongodb.connection.mode が replica_set に設定されている場合、新しい mongodb.connection.string.shard.params プロパティーを使用して、読み取り設定を secondary に設定する接続文字列を指定します。詳細は、Debezium ユーザーガイド のコネクターのセクションを参照してください。
- シャード化されたクラスターのデフォルトの接続モードが
shardedに設定されるようになる (DBZ-7108) -
シャード化されたクラスターでは、MongoDB コネクターのデフォルトの接続モードが
replica_setではなくshardedになりました。replica_setモードを使用してシャード化されたクラスターへの接続を確立すると、mongosルーターをバイパスしてシャードに直接接続します。この設定は問題を引き起こす可能性があるため、MongoDB では推奨されていません。
コネクターをアップグレードすると、新しいデフォルト設定により既存のオフセットが無効になり、初期スナップショットのサイレント再実行がトリガーされます (DBZ-7272)。この動作を防ぐために、再起動によってスナップショットがトリガーされる場合にコネクターを失敗させるチェックが追加されました。
コネクターがシャード化されたクラスターから読み取る場合は、アップグレード後にコネクターの設定を確認し、必要に応じて接続モードを調整します。replica_set 接続モードを明示的に設定するか、既存のオフセットを削除することができます。
- シャード化されたデプロイメントにおける MongoDB スナップショット (DBZ-7139)
- 以前のバージョンの Debezium では、シャード化されたデプロイメントで MongoDB コネクターを使用した場合、コネクターがコレクションのスナップショットを実行するために使用したシャードを指定できました。一部のお客様はこの動作を重宝されていましたが、これは意図した動作ではないため、サポート対象外となります。このオプションは利用できなくなりました。
2.4.1.5. MySQL コネクターの重大な変更 リンクのコピーリンクがクリップボードにコピーされました!
- MySQL
BITデフォルト長 (DBZ-7230) -
MySQL
BITデータ型 では、長さが設定されていない場合は暗黙的な長さはありません。これは正しくありません。何も指定されていない場合のデフォルトの長さは1です。スキーマレジストリーを使用するユーザーの出力スキーマに変更が発生することはありません。 - MySQL BIGINT の精度の変更 (DBZ-6714)
-
以前のリリースでは、MySQL コネクター設定で
bigint.unsigned.handling.modeプロパティーがpreciseに設定されていた場合、コネクターはBIGINTデータ型の列を変換するときに正しい精度を適用しませんでした。その結果、BIGINTフィールドのスキーマに不正確な精度値が含まれていました。符号なしBIGINTの値を表すために、10 進数の精度が20に設定されるようになりました。
上記の設定で設定されたコネクターでスキーマレジストリーを使用する場合、レジストリーで厳密な互換性ルールが適用されていると、この変更によって互換性が失われる可能性があります。コネクターをアップグレードした後、互換性設定を調整するなど、必要に応じてアクションを実行し、精度を失わずに出力値が正確に表現されるようにします。
- MySQL 5.7 のサポートが best-effort になる (DBZ-6874)
- MySQL 5.7 のライフサイクルが最近終了となり、今後は更新やセキュリティーパッチは提供されなくなります。この発表に従い、Debezium 2.5.4 以降では、MySQL 5.7 の使用はサポートされる構成ではなくなります。
2.4.2. 一般公開 (GA) にプロモートした機能 リンクのコピーリンクがクリップボードにコピーされました!
Debezium 2.5.4 リリースでは、次の機能が開発者プレビューまたはテクノロジープレビューから一般提供に移行されました。
2.4.2.1. JDBC シンクコネクター (開発者プレビューから移行) リンクのコピーリンクがクリップボードにコピーされました!
他のベンダーの実装とは異なり、Debezium JDBC シンクコネクターは、最初にイベントフラット化変換を処理する必要なく、Debezium ソースコネクターによって発行された変更イベントを取り込むことができます。Debezium JDBC コネクターを使用すると、パイプラインの処理フットプリントを削減し、設定を簡素化できます。コネクターは、列タイプの伝播などの Debezium ソースコネクター機能も活用できます。詳細は、Debezium ユーザーガイド を参照してください。
2.4.2.2. マルチレプリカおよびシャード化されたクラスターの MongoDB 増分スナップショット (テクノロジープレビューから移行) リンクのコピーリンクがクリップボードにコピーされました!
MongoDB コネクターを使用して、シャード化されたクラスターの複数のレプリカの増分スナップショットを実行することが、完全にサポートされるようになりました。詳細は、Debezium ユーザーガイド を参照してください。
2.4.2.3. MongoDB のシャード化されたクラスターの改善 (テクノロジープレビューから移行) リンクのコピーリンクがクリップボードにコピーされました!
以前のバージョンでは、シャード化されたクラスターのデプロイメントで MongoDB 用の Debezium コネクターを使用すると、コネクターは各シャードのレプリカセットとの接続を直接開きました。これは推奨されるアプローチではありません。代わりに、MongoDB ではコネクターが mongos インスタンス (ルーター) との接続を開く ことを提案しています。
このリリースは推奨ストラテジーに準拠しています。コネクターを mongos インスタンスに向けるために設定の調整が必要な場合があります。
下位互換性を維持するために、新しい設定プロパティー mongodb.connection.mode が利用可能です。このプロパティーのデフォルト値 replica_set は現在の動作を維持し、これにより、コネクターが各シャードを個別のレプリカセットとして処理します。値を sharded に設定すると、人工的に名前が付けられたクラスターを使用して ReplicaSet の単一インスタンスを内部的に作成するようコネクターに指示が出されます。この設定により、コネクターは最初に指定された接続文字列を使用して、シャードのすべてのメンバーへの接続を処理します。
詳細は、MongoDB のシャード化されたクラスターのサポート を参照してください。
2.4.3. 一般公開機能 リンクのコピーリンクがクリップボードにコピーされました!
Debezium 2.5.4 では、次のコネクターに新しい機能が提供されます。
- 「アドホックブロッキングスナップショット (すべてのソースコネクター) (DBZ-6566)」
- 「コネクターメトリクスのカスタムタグ (すべてのソースコネクター) DBZ-6603」
- 「初期スナップショットの進行状況通知 (すべてのコネクター) (DBZ-6416、DBZ-6878)」
- 「増分スナップショットウォーターマークの INSERT/DELETE (すべてのコネクター) (DBZ-6834)」
- 「Reselect columns post processor を使用して足りないラージオブジェクト (LOB) を入力する (DBZ-7602)」
- 「タイムゾーン変換 SMT (すべてのソースコネクター) (DBZ-6567)」
- 「MongoDB の大規模メッセージのサポート (DBZ-6726)」
- 「MongoDB でのポストイメージのサポート (DBZ-7299、DBZ-7647)」
2.4.3.1. アドホックブロッキングスナップショット (すべてのソースコネクター) (DBZ-6566) リンクのコピーリンクがクリップボードにコピーされました!
増分スナップショットは、さまざまな再スナップショットのユースケースを処理するための一般的な方法です。ただし、スナップショット読み取りイベントがストリーミングイベント (作成、更新、削除) と絡み合っている場合、増分スナップショットの使用は、使用するアプリケーションによって示されなかったり、サポートされなかったりすることがあります。このような場合は、アドホックブロッキングスナップショットを実行できます。
アドホックブロッキングスナップショットとアドホック増分スナップショットの両方を Debezium にシグナルを送信してトリガーしますが、コネクターがブロッキングスナップショットシグナルを処理すると、スナップショット処理の間ストリーミングが保留になります。その結果、スナップショットは、スナップショット読み取りイベントとストリーミング作成、更新、および削除イベント間の分離を維持します。つまり、ブロッキングスナップショットプロセスは、従来のスナップショットが実行するプロセスと似ています。その結果、スループットは一般に増分スナップショットよりも高くなります。
アドホックブロッキングスナップショットでは、スナップショット中はトランザクションログの読み取りが保留になります。従来のスナップショットと同様に、アドホックスナップショットモードを使用する場合は、トランザクションログが利用可能である必要があります。ストリーミングが再開されたときに、必要なトランザクションログが削除されている場合、コネクターはエラーを発生させて停止します。
アドホックブロッキングスナップショットを開始するためのシグナルは、アドホック増分スナップショットを開始するために使用するシグナルに似ています。次の例は、条件付きで特定のテーブルのブロッキングスナップショットを開始するためのシグナルのペイロードを示しています。このシグナルと増分スナップショットのシグナルとの唯一の違いは、シグナルの type が INCREMENTAL ではなく BLOCKING に設定されていることです。
コネクタータイプの詳細は、Debezium ユーザーガイドの スナップショットのブロック を参照してください。
2.4.3.2. タイムゾーン変換 SMT (すべてのソースコネクター) (DBZ-6567) リンクのコピーリンクがクリップボードにコピーされました!
多くの場合、お客様から、タイムゾーンが UTC 以外の値に設定された時間列を発行する機能のリクエストが寄せられます。過去のリリースでは、CustomConverter を作成したり、独自の単一メッセージ変換を記述して、コネクターが時間列を出力する方法を指定したりできました。
このリリースでは、Debezium は、コネクターが発行するイベント内の時間列のタイムゾーンを変更できる新しいタイムゾーン変換を提供します。パイプラインのニーズに応じて、列をデフォルトの UTC タイムゾーンから他のタイムゾーンに変換できます。この新しい変換を使い始めるには、コネクターに次の基本設定を追加します。
{
"transforms": "tz",
"transforms.tz.type": "io.debezium.transforms.TimezoneConverter",
"transforms.tz.converted.timezone": "America/New_York"
}
{
"transforms": "tz",
"transforms.tz.type": "io.debezium.transforms.TimezoneConverter",
"transforms.tz.converted.timezone": "America/New_York"
}
上記の設定を追加した後、コネクターがイベントを発行すると、UTC のすべての時間列が `America/New_York` タイムゾーンに変換されます。
次の例に示すように、include.fields プロパティーを使用して、時間フィールドのタイムゾーンを変更できるだけでなく、他のフィールドのタイムゾーン設定を変更することもできます。
上記の例では、include.fields の最初の値は、customers という名前の source テーブルにある created_at フィールドのタイムゾーンを変換します。次の値は、customers という名前のトピックの updated_at フィールドを変換します。
または、フィールドのサブセットを除くすべてに変換を適用する場合は、次の例のように exclude.fields プロパティーを設定できます。
前の例では、source テーブル名が customers で、フィールドが updated_at である場合を除き、変換によってすべての時間フィールドが America/New_York タイムゾーンに変換されます。詳細は、Debezium ユーザーガイドの Debezium イベントレコードのタイムゾーン値の変換 を参照してください。
2.4.3.3. コネクターメトリクスのカスタムタグ (すべてのソースコネクター) DBZ-6603 リンクのコピーリンクがクリップボードにコピーされました!
コネクター MBean オブジェクト名に追加するカスタムタグを指定できるようになりました。カスタムタグを使用すると、より信頼性の高いコネクターのモニタリングを設定できます。
Debezium コネクターは、スナップショット、ストリーミング、スキーマ履歴プロセスの動作に関するデータを提供するメトリクスを公開します。これらのメトリクスは各コネクターで使用可能であり、コネクターの MBean 名を介して公開されます。
デフォルトでは、正しく設定されたコネクターをデプロイすると、Debezium はコネクター用の一意の MBean を生成します。その MBean に関連付けられたメトリクスを監視するように、可観測性スタックを設定できます。後でコネクター設定を変更すると、これらの変更によって元の MBean 名が変更される可能性があります。MBean 名が変更されると、コネクターインスタンスと MBean 間のリンクが切断され、新しい MBean 名を使用するように可観測性スタックを再設定しない限り、モニタリングツールはコネクターのメトリクスデータを取得できなくなります。
MBean 名の変更によって生じる潜在的な混乱を回避するには、コネクター設定に custom.metric.tags プロパティーを追加して、カスタムメトリクスタグを使用するようにコネクターを設定できます。custom.metric.tags プロパティーはキーと値のペアを受け入れます。各キーは MBean オブジェクト名のタグを表し、対応する値はそのタグの値を表します。たとえば、k1=v1,k2=v2 です。
コネクターの custom.metric.tags プロパティーを設定した後、指定したタグに関連付けられたメトリクスを取得するように可観測性スタックを設定します。可観測性スタックは、変更可能な MBean 名ではなく、指定されたタグを使用してコネクターを一意に識別します。その後、Debezium が MBean 名の構築方法を再定義したり、コネクター設定の topic.prefix が変更されたりしても、メトリクススクレイプタスクは指定されたタグパターンを使用してコネクターを識別するため、メトリクスの収集は中断されません。
カスタムタグを使用するさらなる利点は、データパイプラインのアーキテクチャーを反映するタグを使用できるため、運用上のニーズに合った方法でメトリクスを整理できることです。たとえば、コネクターアクティビティーのタイプ、アプリケーションコンテキスト、またはデータソースを宣言する値を持つタグを指定できます (例: db1-streaming-for-application-abc)。複数のキーと値のペアを指定すると、指定されたすべてのペアがコネクターの MBean 名に追加されます。
次の例は、タグがデフォルトの MBean 名を変更する方法を示しています。
例2.1 カスタムタグがコネクター MBean 名を変更する方法
デフォルトでは、Oracle コネクターはストリーミングメトリクスに次の MBean 名を使用します。
debezium.oracle:type=connector-metrics,context=streaming,server=<topic.prefix>
debezium.oracle:type=connector-metrics,context=streaming,server=<topic.prefix>
custom.metric.tags の値を database=salesdb-streaming,table=inventory に設定すると、Debezium は次のカスタム MBean 名を生成します。
debezium.oracle:type=connector-metrics,context=streaming,server=<topic.prefix>,database=salesdb-streaming,table=inventory
debezium.oracle:type=connector-metrics,context=streaming,server=<topic.prefix>,database=salesdb-streaming,table=inventory
2.4.3.4. MongoDB の大規模メッセージのサポート (DBZ-6726) リンクのコピーリンクがクリップボードにコピーされました!
Debezium MongoDB コネクターは、MongoDB 6 の大規模ドキュメント処理をサポートするようになりました。この変更により、コネクターが 16 MB を超えるドキュメントをキャプチャーしようとしたときに BSONObjectTooLarge 例外を返さなくなります。この機能を活用するようにコネクターを設定するには、oversize.handling.mode オプションを設定します。
MongoDB の大規模メッセージのサポートは、MongoDB データベースの基盤となる機能に依存します。データベースでは、大規模なドキュメントの処理に制限が課せられているため、コネクターが大規模なドキュメントを分割するためのルールに準拠していないドキュメントをキャプチャーしようとする場合、引き続き例外を返す可能性があります。詳細は MongoDB のドキュメント を参照してください。
2.4.3.5. 初期スナップショットの進行状況通知 (すべてのコネクター) (DBZ-6416、DBZ-6878) リンクのコピーリンクがクリップボードにコピーされました!
Debezium 通知サブシステムは、従来の JMX アプローチを超えて、進行中の変更データキャプチャープロセスに関する洞察を得るために、サードパーティーのツールやアプリケーションを Debezium と簡単に統合する方法を提供します。以前のリリースでは、Debezium 通知サブシステムは、スナップショットの開始時刻、各テーブルの開始時刻と終了時刻、スナップショットの終了時刻など、初期スナップショットに関する基本的な情報のみを提供していました。現在は、初期スナップショットの進行中のステータスについて通知する機能が通知サブシステムに追加されました。
初期スナップショット通知は、Initial Snapshot の aggregatetType で発行され、スナップショットの現在のステータスを公開する type フィールドが含まれます。可能な値には、STARTED、ABORTED、PAUSED、RESUMED、IN_PROGRESS、TABLE_SCAN_COMPLETED、COMPLETED などがあります。
DBZ-6878 は基本機能を拡張し、スナップショットに関する詳細情報を提供します。たとえば、IN_PROGRESS 通知では、次の例のように、キャプチャーされているテーブルと現在進行中のテーブルに関する追加の詳細が提供されるようになりました。
上記の例の一部のフィールド (data_collection など) は、現在 MongoDB スナップショットでは使用できず、SQL ベースのリレーショナルコネクターでのみ使用できます。詳細は、Debezium ユーザーガイドの 初期スナップショットのステータスを報告する Debezium 通知 を参照してください。
2.4.3.6. 増分スナップショットウォーターマークの INSERT/DELETE (すべてのコネクター) (DBZ-6834) リンクのコピーリンクがクリップボードにコピーされました!
このリリースにより、増分スナップショット中に使用するウォーターマークストラテジーを指定できるプロパティー incremental.snapshot.watermarking.strategy が導入されました。過去のリリースでは、insert_insert アプローチが使用されており、Debezium は各チャンクのスナップショット中にシグナリングデータコレクションに 2 つのエントリーを作成しました。最初のエントリーはスナップショット期間の開始を通知し、次のエントリーはスナップショット期間の終了を通知します。
新しい insert_delete オプションは、スナップショット期間の開始時に、各チャンクのシグナリングデータコレクションに 1 つのエントリーを書き込みます。スナップショットが完了すると、エントリーは削除され、スナップショット期間の終了を示す対応するエントリーは追加されません。この方法により、シグナリングデータコレクションをより効率的に管理できるようになります。
2.4.3.7. Reselect columns post processor を使用して足りないラージオブジェクト (LOB) を入力する (DBZ-7602) リンクのコピーリンクがクリップボードにコピーされました!
特定のソースデータベースの機能により、Debezium コネクターが変更イベントを発行すると、大量のデータを格納する列タイプの値がイベントによって除外される可能性があります。たとえば、PostgreSQL の TOAST 列、Oracle の LOB 列、または Oracle Exadata の Extended String 列の値はすべて、変更イベントから除外される可能性があります。
Debezium 2.5.4 では、コネクターがデータベーステーブルからキャプチャーした 1 つ以上の列を再選択し、それらの列の現在の状態を取得するメカニズムを提供する Reselect columns post processor が導入されました。次の列タイプを再選択するように post processor を設定できます。
-
null列 -
unavailable.value.placeholdersentinel 値を含む列。
PostProcessor の設定は、カスタムコンバーターまたは単一メッセージ変換の設定と似ていますが、SourceRecord ではなく、変更可能なペイロードの Struct で機能する点が異なります。詳細は、Debezium ユーザーガイドの using-the-reselect-columns-post-processor-to-add-source-fields-to-change-event-records を参照してください。
2.4.3.8. MongoDB でのポストイメージのサポート (DBZ-7299、DBZ-7647) リンクのコピーリンクがクリップボードにコピーされました!
MongoDB 用の Debezium コネクターが変更イベントを発行する場合、イベントペイロードに更新で変更された完全なソースドキュメントが含まれるようにコネクターを設定できます。過去のリリースでは、コネクターによるイベントペイロード内の完全なドキュメントのストリーミングに一貫性がありませんでした。
コネクターが変更ストリーム内の完全なドキュメントを検索する方法を明示的に制御するには、設定オプション capture.mode.full.update.type を設定します。このオプションのデフォルト値は完全なドキュメントを検索するため、完全なドキュメントを取得するにはデータベースで別の検索を実行する必要があります。MongoDB 6 以降でコネクターを使用する場合は、コネクターを設定して post_image を使用し、MongoDB 変更ストリームのポストイメージサポートに依存できます。
詳細は、Debezium ユーザーガイドの MongoDB コネクターに関する章の capture.mode.full.update.type を参照してください。
2.4.4. テクノロジープレビュー機能 リンクのコピーリンクがクリップボードにコピーされました!
Debezium 2.5.4 では、次のテクノロジープレビュー機能を利用できます。
以前に利用可能だったテクノロジープレビュー機能
以前のリリースで導入された次の機能はテクノロジープレビューのままです。
テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でのテクノロジープレビュー機能の実装は推奨しません。テクノロジープレビュー機能は、近々発表予定の製品イノベーションをリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。サポート範囲の詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
2.4.4.1. MariaDB での MySQL 用 Debezium コネクターの使用 リンクのコピーリンクがクリップボードにコピーされました!
Debezium 2.5.4 以降では、単一の MariaDB データベースデプロイメントに対して MySQL コネクターを実行できます。MySQL と MariaDB はどちらも、レプリケーションに グローバルトランザクション識別子 (GTID) を使用できます。GTID は、クラスター内のトランザクションを一意に識別する際に役立ちます。
MySQL コネクターを MariaDB GTID で動作させるには、コネクターに追加の設定を適用する必要があります。詳細は、Debezium ユーザーガイド を参照してください。
2.4.4.2. PostgreSQL 16 スタンバイからのストリーミング (DBZ-7181) リンクのコピーリンクがクリップボードにコピーされました!
PostgreSQL 16 では、スタンバイインスタンスでレプリケーションスロットを定義できるようになりました。このデータベースの変更に基づいて、Debezium ではスタンバイ PostgreSQL 16 サーバーに接続し、そこから変更をストリーミングできるようになりました。運用システムからではなく、レプリカから変更データキャプチャーを実行すると、特に非常にアクティブなデータベースで、サーバーの負荷をより適切に分散できます。
以前に利用可能だったテクノロジープレビュー機能
以前のリリースで導入された次の機能はテクノロジープレビューのままです。
2.4.4.3. CloudEvents コンバーター リンクのコピーリンクがクリップボードにコピーされました!
CloudEvents コンバーターは、CloudEvents 仕様に準拠する変更イベントレコードを発行します。CloudEvents の変更イベントのエンベロープは、JSON または Avro であり、各エンベロープタイプは data フォーマットとして JSON または Avro をサポートしています。詳細は、CloudEvents コンバーター を参照してください。
2.4.4.4. カスタムコンバーター リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのデータ型変換がニーズを満たさない場合は、コネクターで使用するカスタムコンバーターを作成できます。詳細は、カスタム開発されたコンバーター を参照してください。
2.4.4.5. Oracle コネクターでの BLOB、CLOB、および NCLOB データ型の使用 リンクのコピーリンクがクリップボードにコピーされました!
詳細は、Debezium ユーザーガイドの Oracle バイナリー文字 LOB タイプ を参照してください。
2.4.4.6. SQL コネクターの並列初期スナップショット リンクのコピーリンクがクリップボードにコピーされました!
複数の並列スレッドを使用して初期スナップショットを実行する機能は、MySQL を除くすべての Debezium SQL コネクターのテクノロジープレビュー機能として利用できます。Debezium MySQL コネクターの並列初期スナップショットは、開発者プレビュー機能として利用できます。
並列初期スナップショットを使用するようにコネクターを設定するには、コネクター設定の snapshot.max.threads プロパティーを 1 より大きい値に設定します。
コネクターの詳細は、Debezium ユーザーガイドの snapshot.max.threads を参照してください。
2.4.5. 開発者プレビュー機能 リンクのコピーリンクがクリップボードにコピーされました!
Debezium 2.5.4 には、次の開発者プレビュー機能が含まれています。
開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。開発者プレビューのソフトウェアを実稼働ワークロードまたはビジネスクリティカルなワークロードには使用しないでください。開発者プレビューソフトウェアは、今後 Red Hat 製品サービスとして追加される可能性のある製品ソフトウェアを前もって早期に利用できます。お客様はこのソフトウェアを使用して機能をテストし、開発プロセス中にフィードバックを提供できます。このソフトウェアにはドキュメントが存在しない可能性があり、変更または削除される可能性があります。また、限定的なテストしか行われていません。Red Hat は、関連する SLA なしに、開発者プレビューソフトウェアに対するフィードバックを送信する手段を提供する場合があります。
Red Hat 開発者プレビューソフトウェアのサポート範囲の詳細は、開発者プレビューのサポート範囲 を参照してください。
2.4.5.1. MySQL 並列スキーマスナップショット (DBZ-6472) リンクのコピーリンクがクリップボードにコピーされました!
スナップショットのパフォーマンスを向上させるために、MySQL コネクターは並列化を実装し、変更イベントのスナップショットを同時に作成して、テーブルのスキーマイベントを生成します。
これにより、データベース内の多数のテーブルのスキーマをキャプチャーする際のスナップショット時間が短縮されます。
このプロパティーを設定すると、コネクターはメトリクスを収集する際に、これらのキーと値のペアに基づく名前パターンを使用します。これにより、topic.prefix を変更するか、MBean 名が変更されるかに関係なく、コネクターが常に同じメトリクスセットを収集するように、安定した名前が確立されます。各コネクターインスタンスの MBean オブジェクト名をカスタマイズします。これらのカスタムメトリクスタグを追加することで、各コネクターに一意の MBean 名が付けられ、複数のインスタンス間の競合を防ぐことができます。
2.4.5.2. MySQL 並列初期スナップショット リンクのコピーリンクがクリップボードにコピーされました!
MySQL の Debezium 初期スナップショットは常にシングルスレッドでした。この制限は主に、複数のトランザクション間でデータの一貫性を確保するのが複雑であることに起因します。
このリリースでは、複数のスレッドを使用してテーブルレベルのスナップショットを並列に実行するように MySQL コネクターを設定できます。
この新しい機能を活用するには、コネクター設定に snapshot.max.threads プロパティーを追加し、そのプロパティーを 1 より大きい値に設定します。
並列スナップショットを使用した設定の例
snapshot.max.threads=4
snapshot.max.threads=4
前の例では、コネクターが 4 つ以上のテーブルをスナップショットする必要がある場合、最大 4 つのテーブルを並列でスナップショットできます。1 つのスレッドがテーブルの処理を終了すると、キュー内の次のテーブルを見つけてスナップショットの実行を開始します。コネクターが指定されたすべてのテーブルでスナップショットの実行を完了するまで、プロセスは続行されます。
詳細は、Debezium ユーザーガイドの snapshot.max.threads を参照してください。
2.4.5.3. 論理スタンバイからの変更の取り込み リンクのコピーリンクがクリップボードにコピーされました!
Oracle 用の Debezium コネクターは、実稼働データベースまたはプライマリーデータベースに接続するときに、内部フラッシュテーブルを使用して Oracle Log Writer Buffer (LGWR) プロセスのフラッシュサイクルを管理します。フラッシュプロセスでは、コネクターがデータベースにアクセスするために使用するユーザーアカウントに、このフラッシュテーブルの作成と書き込みの権限が必要です。ただし、論理スタンバイデータベースには制限的なデータ操作ルールが設定されていることが多く、読み取り専用の場合もあります。その結果、データベースへの書き込みが実行できなくなる可能性があります。
Oracle の読み取り専用論理スタンバイデータベースをサポートするために、Debezium はフラッシュテーブルの作成と管理を無効にするプロパティーを導入しています。この機能は、Oracle スタンドアロンインストールと Oracle RAC インストールの両方で使用できます。
Oracle コネクターが読み取り専用論理スタンバイを使用できるようにするには、次のコネクターオプションを追加します。
internal.log.mining.read.only=true
internal.log.mining.read.only=true
詳細は、Debezium ユーザーガイドの Oracle コネクターのドキュメント を参照してください。
2.4.5.4. PostgreSQL ストリーミングの 1 回限りの配信 リンクのコピーリンクがクリップボードにコピーされました!
このリリースでは、Debezium は PostgreSQL コネクターに対して 1 回限りのセマンティクスのサポートを提供します。PostgreSQL の 1 回限りの配信はストリーミングフェーズにのみ適用され、スナップショットには適用されません。
Debezium は、監視対象ソースで発生するすべての変更イベントをコネクターが確実にキャプチャーできるようにすることを目的として、少なくとも 1 回の配信を提供するように設計されています。KIP-618 では、Apache Kafka コミュニティーが、プロデューサーがメッセージを再試行するときに発生する問題に対処するためのソリューションを提案しています。ソースコネクターは、ブローカーが以前にバッチをコミットした後でも、イベントのバッチを Kafka ブローカーに再送信することがあります。この状況では、重複したイベントがコンシューマー (シンクコネクター) に送信され、重複を簡単に処理できないコンシューマーに問題が発生する可能性があります。
1 回限りの配信を有効にするためにコネクター設定を変更する必要はありません。ただし、Kafka Connect ワーカー設定で 1 回限りの配信を設定する必要があります。必要な Kafka Connect 設定プロパティーの設定に関する詳細は、KIP-618 を参照してください。
Kafka ワーカー設定で exactly.once.support を required に設定するには、Kafka Connect クラスター内のすべてのコネクターが 1 回限りの配信をサポートしている必要があります。ワーカーによる 1 回限りの配信へのサポートに一貫性がないクラスターでこのオプションを設定しようとすると、この機能をサポートしていないコネクターは起動時に検証に失敗します。
2.4.6. このリリースのその他の更新 リンクのコピーリンクがクリップボードにコピーされました!
この Debezium 2.5.4 リリースでは、次のリストの項目を含む、その他の複数の機能更新と修正が提供されます。
- DBZ-3605 Oracle (LogMiner) 用の Debezium コネクターに XML_TYPE 列型へのサポートの追加
- DBZ-3642 Debezium 送信ボックスが CloudEventsConverter で動作しない
- DBZ-3925 MySQL コネクターがステートメント FLUSH FIREWALL_RULES の解析に失敗する
- DBZ-4321 再選択で Blob サポートを調べる
- DBZ-5350 Oracle RAC が ORA-00310: archive log sequence required をスローする
- DBZ-5359 実行中のコネクターメトリクスを公開するための API エンドポイントの追加
- DBZ-5464 LAST レコードが除外されている場合、スナップショットの結果は保存されない
- DBZ-5518 スキーマ履歴トピックメッセージスキーマの定義とドキュメント化
- DBZ-5656 Oracle の CDC データが見つからない
-
DBZ-5676 コネクター間で
query.fetch.sizeを調整する - DBZ-5750 Oracle CDC レコードが見つからない
- DBZ-6182 単一のデータベース/コレクションを監視する際にクラスター全体の権限を必要としない
- DBZ-6236 データベースにアクセスできない場合、PostgreSQL コネクターは適切に再起動しない
- DBZ-6240 DDL タイプスキーマイベントフィルタリングによる提供
- DBZ-6317 JDBC シンクコネクター - バッチ操作のサポート
- DBZ-6416 初期スナップショットの進行状況の通知
- DBZ-6417 シグナルアクションを拡張可能にする
- DBZ-6434 MongoDB コネクターでの NullPointerException
- DBZ-6458 同期イベントメッセージのサイズを削減するために、完全なスナップショットではなく差分のみを公開する
- DBZ-6468 MongoDB クライアントで Readpreference タグを設定する
- DBZ-6472 MySqlSnapshotChangeEventSource 並列が createSchemaEventsForTables を実行する
- DBZ-6481 PostgreSQL 増分スナップショットがプライマリーキーに列挙型を持つテーブルで失敗する
-
DBZ-6484 JDBC スキーマ履歴: テーブル名が
dbName.tableNameとして渡されると、コネクターが起動しない - DBZ-6518 MongoDB 増分スナップショットを更新し、複数のスレッドがチャンクを読み取りできるようにする
-
DBZ-6521 MongoDB 変更ストリームパイプラインがハードコードされた
readPreference=secondaryPreferredに従わない - DBZ-6566 アドホックスナップショットのブロックのサポート
- DBZ-6567 タイムゾーン変換を処理するための SMT
-
DBZ-6577
all_tablesからfilteredに切り替えるときに既存のパブリケーション更新の失敗を説明する - DBZ-6578 Debezium は接続文字列からの読み取り設定に従う必要がある
-
DBZ-6595
table.format.nameのトピックのソースフィールドを使用する - DBZ-6602 ヘッダーからプライマリーキーを取得するためのサポート
- DBZ-6603 コネクターメトリクスでのカスタムタグのサポート
- DBZ-6615 Oracle コネクターの最大トランザクション期間
- DBZ-6617 イベントへのシャードフィールドの追加
-
DBZ-6635 Debezium
heartbeat.action.queryは WAL への書き込み前に開始されない - DBZ-6636 JDBC シンクコネクターに特定の列のみを含める
- DBZ-6637 ' 'after' Debezium ブロックを持たない予期しないメッセージタイプを受信する
- DBZ-6641 カスタムトピック命名ストラテジーによりスキーマ名が変更される
- DBZ-6653 初期化手順への設定可能なタイムアウトの追加
- DBZ-6654 CloudEvents コンバーターが JSON メッセージのデシリアライズで機能しない
- DBZ-6658 パーティションクエリーが終了したら tombstone イベントを送信する
-
DBZ-6669
signal.data.collectionがtable.include.listなしで存在する場合、スナップショットはデータをキャプチャーしない - DBZ-6679 LogMiner クエリーが行を返さない場合、Log Mining Processor は SCN を誤って進める
-
DBZ-6682 JdbcSinkConnector の
quote.identifiersの誤った動作 - DBZ-6684 ソース列名を伝播し、シンクがそれを使用できる
- DBZ-6685 単一リーダータスクによる再バランス後のパーティションの重複
- DBZ-6686 JDBC シンクコネクターが、Kafka から構造体型フィールドを含むフラットデータをロードするときに失敗する
- DBZ-6687 Debezium JDBC シンクコネクターを使用した SQLSyntaxErrorException
- DBZ-6689 PostgreSQL コネクターの Kafka チャネルコンシューマーグループ ID を設定可能にする
-
DBZ-6700 Atlas に対して ping コマンドを実行すると、
operationTimeフィールドがない -
DBZ-6712 スキーマを履歴トピックにスナップショットする際に
schema.history.internal.store.only.captured.databases.ddlフラグが考慮されない - DBZ-6714 正確モードでの MySQL 符号なし BIGINT のスキーマで 10 進数の精度を指定する
- DBZ-6720 Toast 化された UUID 配列が適切に処理されない
- DBZ-6726 $changeStreamSplitLargeEvent を利用して、ポストイメージとプレイメージを含む大規模な変更イベントを処理する
- DBZ-6727 MySQL コネクターでの代替 JDBC ドライバーのサポート
- DBZ-6731 ブロッキングスナップショットはシグナルからスナップショット設定を取得する必要がある
- DBZ-6741 MongoDB コネクターでのカスタム認証のサポート
- DBZ-6742 JMX 通知 userData に JSON 形式を使用する
- DBZ-6745 SingleProcessor は冗長なフィルターロジックを削除する
- DBZ-6748 Debezium は _bin collate varchar 列をバイト配列ではなく文字列に変換する必要がある
- DBZ-6775 テーブルスキーマは各シャードごとに個別に更新する必要がある
- DBZ-6778 ElapsedTimeStrategy のリファクタリング
- DBZ-6782 ストリーミング中に XMLTYPE 列を追加する場合、Oracle XML 列タイプが適切に解決されない
- DBZ-6786 binlog 圧縮の場合はカスタム RowDeserializers を使用する
- DBZ-6787 増分スナップショットデータコレクションが重複排除されない
- DBZ-6793 通知へのタイムスタンプの追加
- DBZ-6801 JDBC シンクでは SQL Server アイデンティティー挿入はサポート対象外
- DBZ-6811 SQL Server コネクターは、データベースに変更がない場合にハートビートを送信する
- DBZ-6814 完了パーティション削除の遅延を設定可能にする
- DBZ-6820 getsnapshottingtask のバグを修正する
- DBZ-6828 アドホックブロッキングスナップショットトリガーがすべてのテーブルのスキーマ変更を発行する
- DBZ-6831 伝播ソース列名にエラーがある
- DBZ-6834 増分スナップショットウォーターマークに INSERT/DELETE セマンティクスを提供する
-
DBZ-6843
skip.messages.without.change=trueを使用すると、各レコードに対して WARN ログメッセージが報告される - DBZ-6844 大きな列の切り捨てのサポート
- DBZ-6853 Kafka オフセットストアが NPE で失敗する
- DBZ-6855 JDBC オフセットストレージ - テーブル名の設定が機能しない
- DBZ-6857 セミコロンが原因で、Oracle ターゲットデータベースで JDBC シンクの挿入が失敗する
- DBZ-6862 tombstone イベントにより JDBC コネクターで NPE が発生する
- DBZ-6864 MySQL コネクターが AWS RDS 内部イベントをフィルタリングしない
- DBZ-6865 ExecuteSnapshot で到着したメソッドを実行する際に NPE を回避する
- DBZ-6869 Oracle コネクターの初期起動時にトランザクションの start_scn が 0 の場合、ログマイニングが最も古い scn から開始する
- DBZ-6870 コネクターが再バランスイベントを確実に処理できることを確認する
- DBZ-6871 除外すべき大規模なドキュメントで ChangeStream 集計パイプラインが失敗する
- DBZ-6878 初期スナップショット用に通知情報を強化し、通知数を増やす
-
DBZ-6893 すべての例を mongodb.hosts から
mongodb.connection.stringに移行する - DBZ-6899 Oracle ストリーミングメトリクス Bean のリファクタリング
-
DBZ-6907
delete.handle.modeにnoneを設定することが推奨される - DBZ-6935 ロガーを修正する
- DBZ-6940 タイムゾーン変換が機能しない
- DBZ-6941 MySQL Kafka シグナリングのドキュメントが正しくない
- DBZ-6945 ドロップイベントに誤ったテーブル変更情報が含まれている
- DBZ-6956 追加条件で OR 条件を使用すると無限ループが発生する
- DBZ-6958 シンクコネクター内の非 Avro 列名の大文字と小文字の動作が間違っている
- DBZ-6966 指定された DDL イベントロジックの除外が元に戻される
- DBZ-6967 JDBC シンクによる PostgreSQL への bytea フィールドを適切に処理する
-
DBZ-6968
cursor.oversize.skip.thresholdのドキュメントに単位がない - DBZ-6970 Debezium JDBC シンクプロセス切り捨てイベントが失敗する
- DBZ-6971 DDL パーサーが NOCOPY キーワードをサポートしない
-
DBZ-6973 MongoDB コネクターに
filtering.match.mode=regex|literalプロパティーのサポートを追加する - DBZ-6974 リバランスイベントの処理にかかる時間を短縮する
- DBZ-6975 単一引用符のレプリケーションに N(CHAR/VARCHAR) 列のエスケープされた引用符が含まれる
- DBZ-6982 CloudEvent からエクステンション属性を除外する設定オプションを提供する
- DBZ-6983 JSON スキーマを推論する際にフィールド名をサニタイズする機能を追加する
- DBZ-6990 Debezium JDBC シンクは、スキーマ変更トピックをサポートしていない例外をスローする必要がある
- DBZ-7015 レプリケーションスロットの事前チェックを有効にする
- DBZ-7016 設定オプションを CloudEventsConverter に追加してヘッダーから ID とタイプを取得する
- DBZ-7030 DDL ステートメントを解析できない
- DBZ-7035 アドホックスナップショットをブロックしても、MySQL では実際にはブロックされない
- DBZ-7037 接続再開時の偽の ROTATE イベントによりメタデータが消去される
- DBZ-7043 キャプチャーインスタンスからの読み取りが完了したら通知を発行する
- DBZ-7050 自動再試行によるスナップショットのサポート
- DBZ-7058 フィールド除外は、削除されたフィールドのイベントで機能しない
-
DBZ-7060
metadata.locationの名前をmetadata.sourceに変更する - DBZ-7065 JDBC シンクコネクターが CloudEvent で動作しない
- DBZ-7066 DefaultDeleteHandlingStrategy が非構造体値に書き換え "__deleted" フィールドを追加できない
- DBZ-7067 コミットイベントの DEBUG レベルでのロギングの改善
- DBZ-7069 処理中にエラーが発生すると、JDBC 接続がリークする
- DBZ-7071 SYS/SYSTEM ユーザーのスキーマ追跡制限を設定可能なオプションに置き換える
- DBZ-7083 MariaDB と MySQL の違いに対するストラテジーパターンの実装
- DBZ-7093 SQL_BIN_LOG=OFF によって失われた DDL を見つけるために値を作成する際にスキーマの長さをチェックする
- DBZ-7095 MySQL パーサーが算術演算の優先順位に準拠していない
- DBZ-7105 RelationalBaseSourceConnector#validateConnection が無効な設定 (Connector#validate() 内) で呼び出されると、例外が発生する可能性がある
- DBZ-7108 シャード化されたクラスターのデフォルトの接続モードを shared に切り替える
- DBZ-7119 MySQL DDL ステートメント (特定の INSERT) の解析時に Debezium がクラッシュする
- DBZ-7132 スナップショット後の MySQL データベースへの認証に失敗する
- DBZ-7139 MongoDB データコレクションフィルターでは、ブロック/初期スナップショット実行時にレプリカセットの指定が必要
- DBZ-7140 MySQL DDL ステートメント (特定の UNION) の解析時に Debezium DDL パーサーがクラッシュする
-
DBZ-7142
fields.additional.placement値に空白がある場合にアウトボックスイベントルーター SMT が NullPointerException をスローする - DBZ-7146 MongoDB コネクターの非アクティブ一時停止は設定可能でなければならない
- DBZ-7152 MySQL DDL ステートメント (特定の UPDATE) の解析時に Debezium DDL パーサーがクラッシュする
- DBZ-7157 JsonSerialisation が複合シャーディングキーを持つシャード化されたコレクションからの変更を処理できない
- DBZ-7159 値が CloudEvent でない場合、デシリアライズ中にフェイルファストを実行する
- DBZ-7162 MongoDb コネクターに最後のイベント処理時間、イベント数、ハートビートイベント数のメトリクスを追加する
- DBZ-7164 Kafka シグナルトピックのスナップショットリクエストの永続的な履歴をサポートする
- DBZ-7177 Connect REST Extensions のメトリクスエンドポイントを変更して、Jolokia エンドポイントへの HTTP 呼び出しの代わりに MBeanServerv を直接使用する
- DBZ-7178 メトリクスエンドポイントは複数のタスクを持つコネクターを処理する必要がある (SQL Server)
- DBZ-7179 さまざまな MySQL フレーバーをサポートするために新しい MySQL アダプター構造を使用していない DebeziumMySqlConnectorResource を修正する
- DBZ-7181 Postgres 16 スタンバイからの論理デコードのサポート
- DBZ-7183 GTID イベントからの MySQL 8 高解像度レプリケーションタイムスタンプをサポートする
- DBZ-7184 MongoDB 変更ストリームイベントの読み取り時にバッファーキューを使用する
- DBZ-7186 MongoDB コネクターのストリーミングイベントソースのイベント処理ループをクリーンアップする
- DBZ-7189 double 型および float 型でキャストを使用すると、JSON フィールドの MySQL インデックスの解析が失敗する
- DBZ-7191 オプションフィールドの値が NULL の場合、JDBC コネクターが誤ってデフォルト値を使用する
-
DBZ-7193 REPLICA IDENTITY FULL が設定されている場合でも、変更されていない Toast 化された配列の列は
unavailable.value.placeholderに置き換えられる - DBZ-7194 LogMiner の Oracle 23c に対して変更をストリーミングする機能を有効にする
- DBZ-7196 PL/SQL の解析で、modify_table_partition ルールに modify range_partitions を追加する
- DBZ-7197 追加フィールドが欠落している場合に例外のスローを回避する機能を追加する
- DBZ-7206 MongoDB ストリーミングは、イベントがない場合にのみスナップショットをブロックして一時停止する
- DBZ-7208 PL/SQL で Drop Tablespace を処理する
- DBZ-7213 DDL GRANT ステートメントを解析できない
-
DBZ-7216 メタデータがヘッダーにある場合、CE
dataフィールド内の構造体のスキーマ名が正しくない - DBZ-7217 Debezium JDBC コネクターの実行時間を追跡するためのトレースログを追加する
- DBZ-7218 Oracle の複数のアーカイブログの保存先要件を検証して明確にする
- DBZ-7230 MySQL BIT 型のデフォルトの長さは 1 である必要がある
- DBZ-7235 スキーマタイプ名をカスタマイズするための設定オプションを CloudEventsConverter に追加する
- DBZ-7236 Oracle の破棄されたトランザクション実装のバグによりメモリーエラーが発生する
-
DBZ-7237
lob.enabled=falseの場合、Oracle LOB が適切に無視される - DBZ-7242 Oracle truncate cluster の文法を追加する
- DBZ-7251 列の型を変更する場合に長さの値が削除されない
- DBZ-7252 MongoDB コレクションスナップショット通知に誤ったオフセットが含まれている
- DBZ-7259 MySQL DDL ステートメント (UNION を含むサブクエリー) の解析時に Debezium DDL パーサーがクラッシュする
- DBZ-7266 PARTITION REFERENCE での Oracle DDL 解析エラー
- DBZ-7268 Alter Table Memoptimize 用の PL/SQL パーサーの追加
- DBZ-7264 複数のスナップショットスレッドでスナップショット中にエラーが発生した場合、スナップショットが適切に中止されない
- DBZ-7271 MySQL RDS UPDATE クエリーが無視されない
- DBZ-7272 デフォルト接続モードの切り替えによる暗黙的なオフセット無効化を防ぐ
- DBZ-7275 JDBC 接続のリーク
- DBZ-7277 Debezium MySQL は特定の付与権限を解析できない
- DBZ-7279 Create Table Memoptimize 用の PL/SQL パーサーの追加
- DBZ-7283 EDITIONABLE または NONEDITIONABLE パッケージの作成のサポート
- DBZ-7299 MongoDb コネクターはポストイメージを使用しない
-
DBZ-7311 PostgreSQL のアドホックブロッキングスナップショットは、スナップショットモードが
neverに設定されている場合に失敗する - DBZ-7312 アドホックブロッキングスナップショットは、コネクターの作成直後に "invalid snapshot identifier" を表示して失敗する
- DBZ-7315 要素間にスペースを含むテーブルインクルードリストを指定すると、LogMiner クエリーで一致が失われる
-
DBZ-7316 Debezium
heartbeat.action.queryは WAL への書き込み前に開始されない: パート 2 - DBZ-7347 初期スナップショット通知では完全な識別子を使用する必要がある
- DBZ-7358 列の再選択では、イベントのキーではなくテーブルのプライマリーを使用する必要がある
- DBZ-7359 SQL Server テーブルの完全な増分スナップショットで 36 レコードのブロックがスキップされる
- DBZ-7360 テーブル分割操作後に Debezium が失敗する
- DBZ-7374 SQL Server のデータベーススキーマの varchar、nvarchar、char 列のデフォルト値が間違っている
- DBZ-7379 MongoDB のコネクターでスコープ指定されたトラストストア/キーストアのサポート
- DBZ-7420 ParsingException (MariaDB のみ): alterSpec が 'tablename.' 接頭辞を持つ外部キーを削除する
- DBZ-7421 テーブルのリストが長い場合の増分スナップショットのパフォーマンスが低下する
- DBZ-7425 Oracle スナップショットが誤ってデフォルトで LogMiner Offset Loader を使用する
- DBZ-7429 イベントキーソースを使用しない場合、再選択列は構造体の後のキー値を取得する必要がある
- DBZ-7431 C3P0ConnectionProvider を設定経由でカスタマイズできるようにする
- DBZ-7436 統計情報なしで toString が呼び出されると、ストップウォッチは NPE をスローする
- DBZ-7437 ReselectColumnsPostProcessor フィルターは除外述語を使用しない
- DBZ-7441 アプリケーションの起動前に送信された場合、アドホックスナップショットは File チャネルシグナルによってトリガーされない
- DBZ-7445 LogMiner バッチサイズが自動的に増加しない
- DBZ-7456 Oracle コネクターは除外された CLOB/Blob 列の再選択を無視しない
-
DBZ-7460
table.include.listの期待値パターンがドキュメントと一致しない - DBZ-7467 SQL Server のシグナルアクションがロードされていない
- DBZ-7468 MySQL コネクターは、WITH SYSTEM VERSIONING PARTITION BY SYSTEM_TIME を含むテーブルを解析できない
- DBZ-7479 Oracle ReselectColumnsProcessor での PreparedStatement リーク
- DBZ-7488 新しい reselect post processor によるスナップショットのパフォーマンスの低下
-
DBZ-7489
lob.enabled=trueの XMLTYPE での Debezium Oracle Connector ParsingException - DBZ-7500 非 GTID イベントで秒単位へのフォールバックが誤って発生する MySQL 8 イベントタイムスタンプ解決ロジックエラーを修正する
- DBZ-7562 数値のデフォルト値の 10 進法の不一致
- DBZ-7567 MySqlStreamingChangeEventSource::setEventTimestamp の FORMAT_DESCRIPTION および PREVIOUS_GTIDS イベントから発生すると考えられる null イベントタイムスタンプを修正する
- DBZ-7581 PostgreSQL 障害時に備えたロギングの改善
- DBZ-7582 利用できない Toast 化された HSTORE Json Storage Mode 列によりシリアル化が失敗する
- DBZ-7593 Debezium を初めてデプロイすると、データベース内のすべてのテーブルのスキーマのキャプチャーに失敗する
- DBZ-7594 元の値が負の場合、MySQL から複製される TIME(n) の値が正しくない
- DBZ-7596 複合型では reselect post processor が機能しない
- DBZ-7599 "hex" モードが設定されている場合に、バイナリータイプに対してトーストプレースホルダーの代わりに Null が書き込まれる
- DBZ-7608 スキーマスナップショット DDL 処理中のスナップショットパフォーマンスの低下
-
DBZ-7617 増分スナップショットクエリーは
message.key.columnsの順序に従わない - DBZ-7619 メトリクス ScnFreezeCount が増加しない
- DBZ-7643 仮数部のない数値は解析できない
- DBZ-7666 MySQL コネクターが RETURNING キーワードを含む DDL の解析に失敗する
- DBZ-7690 スキーマ履歴コンパレーターが SERVER_ID_KEY と TIMESTAMP_KEY を適切に処理しない
2.5. 非推奨の機能 リンクのコピーリンクがクリップボードにコピーされました!
以下の機能は非推奨となり、今後のリリースで削除される予定です。
- Oracle 12 のサポート
2.6. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
次の既知の問題は Debezium 2.5.4 に影響を及ぼします。