Red Hat build of Debezium 3.0.8 のリリースノート


Red Hat build of Debezium 3.0.8

Red Hat build of Debezium の新機能

Red Hat build of Debezium Documentation Team

概要

Red Hat build of Debezium 製品を説明し、このリリースの新機能に関する最新情報を提供します。

第1章 Debezium 3.0.8 リリースノート

Debezium は、分散型変更データキャプチャープラットフォームで、データベーステーブルで発生する行レベルの変更をキャプチャーし、対応する変更イベントレコードを Apache Kafka トピックに渡します。アプリケーションはこれらの 変更イベントストリーム を読み取りでき、変更イベントが発生した順にアクセスできます。Debezium は Apache Kafka 上に構築されており、Streams for Apache Kafka を使用して OpenShift Container Platform または Red Hat Enterprise Linux 上にデプロイおよび統合されています。

リリースの詳細は以下を参照してください。

1.1. Debezium データベースコネクター

Debezium は、Kafka Connect に基づいたソースコネクターとシンクコネクターを提供します。コネクターは、次の一般的なデータベースで使用できます。

ソースコネクター
  • Db2
  • Informix (開発者プレビュー)
  • MariaDB
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • SQL Server
シンクコネクター
  • JDBC sink コネクター
  • MongoDB シンクコネクター (開発者プレビュー)

1.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 をインストールする必要はありません。
Oracle
  • Debezium Oracle コネクターには、Oracle JDBC ドライバー (21.6.0.0) が含まれていません。必要な JDBC ドライバーのデプロイ方法の詳細は、Oracle コネクターのデプロイメント手順 を参照してください。
PostgreSQL
  • Debezium PostgreSQL コネクターでは、PostgreSQL バージョン 10 以降のデフォルトである pgoutput 論理デコーディング出力プラグインを使用する必要があります。

1.2. Debezium でサポートされる設定

サポートされるデータベースバージョンの情報を含む Debezium でサポートされる構成の詳細は、Red Hat build of Debezium でサポートされる構成 のページを参照してください。

1.3. Debezium のインストールオプション

Streams for Apache Kafka を使用して OpenShift または Red Hat Enterprise Linux 上に Debezium をインストールできます。

1.4. Debezium 3.0.8 の機能と改善点

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

重大な変更とは、コネクターの動作に大きな違いが生じる変更や、以前の Debezium バージョンと互換性のない設定変更を必要とするものを指します。

Debezium 3.0.8 では、次のコンポーネントに影響する重大な変更が導入されています。

以前の Debezium リリースにおける重大な変更は、Debezium 2.7.3 リリースノート を参照してください。

1.4.1.1. すべてのコネクターに関連する重大な変更

次の重大な変更はすべてのコネクターに適用されます。

1.4.1.1.1. Java 17 が必要です

Debezium を実行するための Java 要件が変更されました。このリリース以降、すべての Debezium コネクターには Java 17 のランタイムベースラインが必要です。

新しいコネクターで Java 11 を使用すると、Kafka Connect はコネクターを見つけられずにサイレントに失敗します。コネクターはバイトコードエラーを報告しません。

Debezium Server を実行するには、Java 21 のランタイムベースラインが必要です。

1.4.1.1.2. Kafka シグナルが再起動後に自動的に再処理されなくなる (DBZ-7856)

以前のリリースでは、コネクターの再起動後、Debezium は Kafka ベースのシグナルを自動的に再処理していたため、意図しない副次的な影響が出てくる可能性がありました。このリリース以降、コネクターが停止した場合に Kafka ベースのシグナルを処理する際は、シグナルを再送信する必要があります。

1.4.1.1.3. 非推奨の増分 additional-condition シグナルフィールドが削除される (DBZ-8278)

増分スナップショットシグナルの非推奨の additional-condition フィールドは削除され、サポートされなくなりました。このフィールドは、テーブルごとに条件を指定できる新しい additional-conditions プロパティーに置き換えられました。古いフィールドを参照するスクリプトまたはワークフローがある場合は、新しいプロパティーを使用するようにそれらを更新します。

1.4.1.2. MariaDB/MySQL コネクターの重大な変更
1.4.1.2.1. MariaDB および MySQL スキーマ履歴プロパティーに関するデフォルト値の記載が正しくない (DBZ-8558)

以前のバージョンの MariaDB および MysSQL ドキュメントでは、schema.history.internal.store.only.captured.databases.ddl プロパティーのデフォルト値が正しくありませんでした。正しいデフォルト値は false です。

この変更はコードには影響しませんが、以前にこのプロパティーを設定していた場合は、現在の設定を確認して、環境に最適な値が含まれていることを確認してください。詳細は、Debezium ユーザーガイドを参照してください。

1.4.1.3. Oracle コネクターの重大な変更
1.4.1.3.1. 新しいデフォルトのマイニングストラテジー (DBZ-3656)

Oracle コネクターのデフォルトのマイニングストラテジーは online_catalog になりました。以前にデフォルトの redo_log_catalog ストラテジーに依存していて、そのストラテジーを引き続き使用する場合は、コネクター設定で明示的に指定する必要があります。

詳細は、「新しいデフォルトのマイニングストラテジー (DBZ-3656)」 を参照してください。

1.4.1.3.2. 非推奨の設定プロパティーの削除 (DBZ-8181)。

以前のリリースで非推奨となった次の Oracle コネクター設定プロパティーは、Debezium 3.0.8 では削除されました。

  • log.mining.transaction.retention.hours は、log.mining.transaction.retention.ms に置き換えられました。
  • log.mining.archive.destination.name は、archive.destination.name に置き換えられました。
  • log.mining.archive.log.hours は、archive.log.hours に置き換えられました。

    以前にコネクターに上記のいずれかのプロパティーを設定していた場合は、アップグレード後に、新しい同等のプロパティーを使用するようにコネクター設定を更新します。

1.4.1.3.3. Oracle の再選択列ポストプロセッサーの動作が変更される (DBZ-8653)

ReselectColumnsPostProcessor の動作が変更されました。このリリースでは、ポストプロセッサーは、lob.enabled 設定プロパティーの値に関係なく、Oracle LOB 列を再選択するようになりました。この変更により、列再選択ポストプロセッサーを使用して、ストリーミング中に LOB 列をマイニングせずに LOB 列にデータを入力できるようになりました。

1.4.2. 一般公開機能

Debezium 3.0.8 では、次のコネクターに新しい機能が提供されます。

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

Debezium 3.0.8 リリースでは、以下の機能がテクノロジープレビューから一般提供にプロモートされました。

1.4.2.1.1. MariaDB 用 Debezium コネクター (DBZ-7693)

MariaDB のスタンドアロンコネクター実装が完全にサポートされるようになりました。

1.4.2.1.2. Oracle コネクターでの大きなデータ型 (BLOBCLOB、および NCLOB) の使用

Oracle コネクターは、BLOBCLOB、および NCLOB データ型の処理を完全にサポートするようになりました。詳細は、Debezium ユーザーガイドの Oracle バイナリーと文字 LOB タイプ を参照してください。

1.4.2.1.3. SQL ベースのコネクターの並列初期スナップショット

複数の並列スレッドを使用して初期スナップショットを実行する機能が一般提供され、MySQL と MariaDB を除くすべての Debezium SQL コネクターで利用可能となりました。Debezium MariaDB および MySQL コネクターの並列初期スナップショット は、開発者プレビュー機能として利用できます。

並列初期スナップショットを使用するようにコネクターを設定するには、コネクター設定の snapshot.max.threads プロパティーを 1 より大きい値に設定します。

コネクターの詳細は、Debezium ユーザーガイドの snapshot.max.threads を参照してください。

重要

環境によっては、snapshot.max.threads の値を増やすと、スナップショットが失敗する可能性があります。
詳細は、「既知の問題」 を参照してください。

1.4.2.2. JDBC シンクコネクター GA 機能
1.4.2.2.1. 特定の障害時に JDBC がフラッシュを再試行する (DBZ-7291)

JDBC シンクコネクターは、バッファーセットを使用して、ターゲットデータベースへの書き込みのスループットを向上させます。場合によっては、他のアプリケーションが特定の行またはテーブルをロックすると、これらのバッファーのフラッシュ操作で特定の例外が発生することがあります。ユーザーエクスペリエンスを向上させるために、コネクター用に次の 2 つの設定プロパティーが利用できるようになりました。

flush.max.retries
フラッシュに失敗した場合の再試行回数を定義します。
flush.retry.delay.ms
次の再試行まで待機するミリ秒数を定義します。

再試行機能はデフォルトで有効になっています。コネクターは、フラッシュ操作の再試行を最大 5 回試行します。再試行間の遅延は 1 秒です。コネクターがフラッシュ操作を再試行しないようにするには、flush.max.retries0 に設定してこの機能を無効にします。

1.4.2.3. Oracle コネクター GA 機能
1.4.2.3.1. 新しいデフォルトのマイニングストラテジー (DBZ-3656)

Debezium 3.0.8 では、Oracle コネクターの log.mining.strategy プロパティーのデフォルト値が redo_log_catalog から、一般的にパフォーマンスの高い online_catalog オプションに変更されました。以前にデフォルトの redo_log_catalog ストラテジーを使用していて、その設定を保持する場合は、現行バージョンにアップグレードした後、log.mining.strategy プロパティーの値を redo_log_catalog に明示的に設定する必要があります。

関連情報

1.4.2.3.2. Oracle オフライン RAC ノードフラッシュの改善 (DBZ-8177)

以前のリリースでは、Oracle RAC ノードのフラッシュストラテジーが変更され、データベース管理者が Oracle RAC ノードをオフラインにするたびに 3 秒の遅延が強制されるようになりました。この一時停止中に、コネクターはログライター (LGWR) プロセスをフラッシュしようとします。ただし、LGWR バッファーがフラッシュされない場合でも一時停止が実装されます。RAC ノードはオフラインのときは redo ログに書き込むことができないため、この遅延によって不要な待機時間が発生しました。

Debezium 3.0.8 では、安定性を向上させるために、Oracle RAC ノードへのアクティブな接続に対してのみ 3 秒の遅延が課されるようになりました。その結果、管理者が RAC ノードをオフラインにすると、コネクターによる遅延が発生しなくなります。

1.4.2.3.3. Oracle CLOB/Blob デフォルト値のサポート (DBZ-8248)

Oracle では、LOB 列が NULL でないことを確認するために、EMPTY_CLOB() or EMPTY_BLOB() 関数 を使用して、テーブル内の CLOB または BLOB フィールドにデフォルト値を指定できます。以前の Debezium リリースでは、これらの特殊関数は評価されず、これらの列に null 値が含まれる可能性があるため、コネクターはこれらの列をオプションとしてマークしていました。

Debezium 3.0.8 以降、EMPTY_BLOB() または EMPTY_CLOB() 関数を使用して Oracle BLOB 列のデフォルト値を定義すると、コネクターはフィールドをオプションではないものとして発行するようになりました。結果の変更イベントのフィールドには、適切なデフォルト値 (空のバイト配列または空の文字列) が含まれます。

1.4.2.4. PostgreSQL コネクター GA 機能
1.4.2.4.1. PostgreSQL のスナップショット分離 (DBZ-1252)

この機能は、新しいコネクター設定プロパティー snapshot.isolation.mode を追加することで、PostgreSQL のスナップショット分離サポートを提供するという長年の要望に対応します。4 つのスナップショット分離レベルのいずれかを指定することにより、初期およびアドホックブロッキングスナップショットを実行するときに、一貫性とパフォーマンスの必要性のバランスをとる方法を指定できるようになりました。

  • serializable (デフォルト)
  • repeatable_read
  • read_committed
  • read_uncommitted

これらの分離レベルは、スナップショットの 整合性 と、スナップショット中にコネクターがソースデータを読み取るときにソースデータに適用するロックの種類 (存在する場合) を指定します。

たとえば、snapshot.isolation.modeserializable に設定して厳密な分離とロックを強制し、スナップショットの実行中に管理者やユーザーがテーブルインデックスの作成などの操作を実行できないようにすることができます。または、最も制限の少ない read_uncommitted 設定を適用して、スナップショットがまだコミットされていないユーザートランザクションからデータを読み取ることを許可することもできます。このような「ダーティーリード」を許可すると、データの不整合が発生する可能性がありますが、同時に、データはロックされないため、スナップショットはデータベースのパフォーマンスに影響を与えません。

詳細は、PostgreSQL コネクターのドキュメントの snapshot.isolation.mode を参照してください。

1.4.2.4.2. PostgreSQL pgvector データ型のサポート (DBZ-8121)

PostgreSQL 15 では、次のデータ型を提供する pgvector エクステンションが導入されました。

  • vector
  • halfvec
  • sparsevec

Debezium 3.0.8 以降、PostgreSQL コネクターはこれらの pgvector データ型を使用するイベントのストリーミングをサポートします。コネクターは、これらのデータ型のいずれかに関係する操作の変更イベントレコードを発行するときに、次のリストのマッピングに従って、ソース内の各 vector 型をセマンティック型に変換します。

  • vector: 数値の ARRAY にマッピングされます。
  • halfvec: 数値の ARRAY にマッピングされます。
  • sparsevec: 次のメンバーを含む Struct にマッピングされます。

    • vector の次元数
    • vector 要素の位置を表すインデックス

データベースで pgvector エクステンションを有効にした後は、Debezium が vector 値を変換するための追加の設定は必要ありません。詳細は、PostgreSQL コネクターのドキュメントの pgvector 型 を参照してください。

1.4.2.5. SQL Server コネクター GA 機能
1.4.2.5.1. TDE で暗号化された SQL Server データベースからのデータのキャプチャーのサポート (DBZ-4590)

透過的データ暗号化 (TDE) は、SQL Server 2017 Enterprise Edition と、SQL Server 2019 および 2022 の Standard Edition と Enterprise Edition の両方で利用できます。その名前が示すように、TDE は自動的かつ透過的に動作し、データベースとトランザクションログに保存されているデータを暗号化します。データベースで TDE が有効になっている場合、権限のないユーザーはデータを読み取ることができません。同時に、適切に設定された Debezium SQL Server コネクターによるアクセスを含め、認可されたユーザーによるアクセスは影響を受けません。Debezium が TDE が有効になっている SQL Server データベースから変更をストリーミングできるようにするための特別な設定は必要ありません。つまり、TDE が有効になっていないデータベースにコネクターが接続でき、後でデータベースで TDE が有効になった場合でも、元のコネクター設定は引き続き機能します。

1.4.2.5.2. SQL Server コネクター JMX シグナリングおよび通知チャネルの MBean 名に taskId が含まれるようになる (DBZ-8137)

複数の SQL Server データベースからの変更をストリーミングするために単一のコネクターをデプロイするときに、各データベースタスクのシグナルチャネルを一意に識別できるようになりました。

Debezium SQL Server コネクターがシグナリングおよび通知操作で使用する MBean 名の形式が、タスクごとに一意性を保証するために変更されました。SQL Server はデータベースマッピングごとに一意のタスクの生成をサポートしているため、通常の JMX メトリクスは taskId 属性を使用して登録されます。過去のリリースでは、JMX シグナルチャネルはこれを反映しなかったため、コネクターが各タスクのチャネルを開始できない可能性がありました。MBean 名に taskId を追加すると、これらの操作が複数のデータベースにまたがる場合にコネクターが複数のタスクを使用できるようになります。詳細は、Debezium ユーザーガイドの Debezium SQL Server コネクタースキーマ履歴メトリクス を参照してください。

1.4.2.5.3. SQL Server ドキュメントを更新して、スキーマ履歴 MBean 名を修正する (DBZ-8840)

Debezium SQL Server コネクターのドキュメントに、スキーマ履歴 MBean 名 の形式が正しく記述されるようになりました。更新された説明では、名前にはスナップショットおよびストリーミングメトリクス MBean 名に存在する同じ task 属性が含まれるようになったことが指定されています。

1.4.2.6. ポストプロセッサーと単一メッセージ変換 (SMT) の GA 機能
1.4.2.6.1. PostgreSQL 論理メッセージをデコードするための単一メッセージ変換 (SMT)(DBZ-8103)

PostgreSQL の特長は、送信ボックステーブルを作成せずに送信ボックスパターンを実装できるという点です。代わりに、データベースは pg_logical_emit_message 関数を使用して、論理メッセージを Write-Ahead Logging (WAL) に直接書き込むことができます。ただし、Debezium が WAL からこれらのイベントをキャプチャーすると、Kafka に送信するデータは一連のバイトとしてフォーマットされます。構造化されたメッセージを必要とするアプリケーションでは、この形式のデータを消費できない可能性があります。

新しい論理メッセージデコーダー SMT (DecodeLogicalDecodingMessageContent) は、PostgreSQL 固有の単一メッセージ変換です。この変換は、pg_logical_emit_message イベントバイトを構造化イベント形式に変換し、消費するアプリケーションが処理できるように設計されています。この方法では、物理的な送信ボックステーブルを作成せずに送信ボックスパターンを実装できます。詳細は、Debezium ユーザーガイドの PostgreSQL 論理デコードメッセージのバイナリーコンテンツのデコード を参照してください。

1.4.2.6.2. 再選択列ポストプロセッサーの改善 (DBZ-8212)

列の標準容量を超えるサイズのデータ型を格納するために、一部のデータベースでは、メインテーブル以外の外部の場所にサイズ超過データを格納するための特殊なメカニズムを使用します。たとえば、PostgreSQL では Oversized-Attribute Storage Technique (TOAST) が使用され、Oracle では Large Object (LOB) ストレージ、つまり Oracle Exadata Extended Strings が使用されます。

デフォルトでは、Debezium がサイズが大きすぎるデータフィールドを含むテーブル行の変更に応答してイベントレコードを発行すると、結果のイベントレコードには、SQL 操作によって変更されたサイズが大きすぎるデータフィールドの値のみが含まれます。コネクターは、テーブル操作によってサイズ超過データ列の値が変更された場合にのみ、これらの値を入力します。サイズ超過データ列の値が変更されない場合、コネクターはフィールドにプレースホルダーを挿入します。このプレースホルダーは、フィールドに値が含まれていないことを誤って示します。

変更イベントレコード内のサイズ超過データフィールドの値を入力するために、ReselectColumnsPostProcessor が導入されました。このポストプロセッサーでは、int および bigint 配列データ型の再選択がサポートされるようになりました。これにより、SQL 操作後に値が変更されない場合でも、これらのフィールドは常に入力されるようになります。

1.4.3. テクノロジープレビュー機能

Debezium 3.0.8 では、次のテクノロジープレビュー機能を利用できます。

重要

テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でのテクノロジープレビュー機能の実装は推奨しません。テクノロジープレビュー機能は、近々発表予定の製品イノベーションをリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。サポート範囲の詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

1.4.3.1. MongoDB コレクションスコープストリーミング (テクノロジープレビュー)(DBZ-7760)

この機能は、開発者プレビューからテクノロジープレビューにプロモートされました。

Debezium MongoDB コネクターの以前のイテレーションでは、変更ストリームをデプロイメントおよびデータベーススコープに対して開くことができましたが、権限が制限された環境では必ずしも理想的ではありませんでした。Debezium 3.0.8 では、コネクターが単一のコレクションの範囲内でのみ動作する新しい変更ストリームモードが導入され、このようなきめ細かい permissive 設定が可能になります。

MongoDB コネクターのキャプチャースコープを特定のコレクションに制限するには、コネクター設定の capture.scope プロパティーの値を collection に設定します。この設定は、コネクターが単一の MongoDB コレクションからのみ変更をキャプチャーすることを意図している場合に使用します。

制限

この機能を使用する場合、一定の制限が存在します。capture.scope プロパティーの値を collection に設定すると、コネクターはデフォルトの source シグナリング チャネルを使用できません。Kafka、JMX、または File チャネル経由で送信されるシグナルを含む増分スナップショットシグナルの処理を許可するには、コネクターの source チャネルを有効にする必要があります。したがって、コネクター設定の capture-scope プロパティーの値を collection に設定すると、コネクターは増分スナップショットを実行できません。

1.4.3.2. MySQL vector データ型のサポート (テクノロジープレビュー)(DBZ-8157)

Debezium MySQL 文法は vector 関数を処理するようになりました。この変更により、Debezium MySQL コネクターは、MySQL 9.0 で利用可能な新しい VECTOR(n) データ型 を処理できるようになります。Debezium が Vector 型 を処理する方法の詳細は、MySQL コネクターのドキュメント を参照してください。

1.4.3.3. Oracle Database 23ai との互換性 (テクノロジープレビュー)

この Debezium リリースでは、引き続きテクノロジープレビュー機能として Oracle 23ai とのインテグレーションが提供されます。

1.4.3.4. Oracle EXTENDED 文字列サイズのサポート (テクノロジープレビュー)(DBZ-8039)

Oracle 12c では、データベースパラメーター max_string_sizeEXTENDED に設定すると、文字データ型の最大サイズを 4000 バイトから 32K に増やす拡張文字列の使用が可能になります。拡張文字列の使用を有効にすると、最大 32K の文字データを使用するために CLOB ベースの操作を使用する必要がなくなります。代わりに、4000 バイト以下の文字データで使用するのと同じ構文を使用できます。

Debezium 3.0.8 では、Oracle コネクターは拡張文字列を使用するデータベースのトランザクションログデータから直接変更をキャプチャーできるようになりました。拡張文字列は実質的に CLOB 操作であるため、これらの列タイプをマイニングするには、lob.enabledtrue に設定する必要があります。

拡張文字列サイズのコネクターサポートの詳細は、Debezium ユーザーガイドの Oracle コネクターのドキュメント を参照してください。

重要

Oracle が EXTENDED 文字列サイズを使用するように設定されている場合、LogMiner は拡張文字列フィールド内の一重引用符をエスケープできないことがあります。その結果、これらのフィールドの値が切り捨てられ、無効な SQL ステートメントが生成されますが、Oracle コネクターはこれを解析できません。
詳細は、DBZ-8034 を参照してください。

この問題を軽減するには、
internal.log.mining.sql.relaxed.quote.detection
プロパティーを true に設定して、一重引用符の検出を緩やかにするようコネクターを設定できます。

この内部設定は、問題の一部を解決するのに役立つ可能性がありますが、その使用は現在サポート対象外の機能です。

1.4.3.5. Oracle コネクターでの XML データ型の使用 (テクノロジープレビュー)

Debezium Oracle コネクターは、Oracle がデータベース内の XML データを処理するために使用する XMLType データ型を処理できます。

コネクターが Oracle XMLTYPE に使用するマッピングの詳細は、コネクターのドキュメントの XML タイプ を参照してください。

1.4.3.6. PostgreSQL 17 フェイルオーバーレプリケーションスロットのサポート (テクノロジープレビュー)(DBZ-8412)

PostgreSQL 17 では、スタンバイサーバーに自動的に同期されるレプリケーションスロットである フェイルオーバースロット のサポートが追加されました。

クラスター内のプライマリー PostgreSQL サーバーにレプリケーションスロットを作成する場合、それをフェイルオーバーレプリカにレプリケートするように設定できます。PostgreSQL 管理者は、pg_sync_replication_slots() 関数を呼び出してフェイルオーバーレプリケーションスロットを手動で同期したり、sync_replication_slots パラメーターの値を true に設定して自動同期を設定したりすることができます。自動同期を有効にすると、フェイルオーバーが発生した場合、Debezium はすぐにレプリカのフェイルオーバースロットからイベントの消費に切り替えることができるため、イベントを見逃すことはありません。

Debezium がフェイルオーバースロットからイベントを消費できるようにするには、Debezium PostgreSQL コネクター設定の slot.failover プロパティーの値を true に設定します。この機能は、PostgreSQL 17 以降を実行するクラスター内のプライマリーサーバーに接続するように Debezium を設定している場合にのみ使用できます。以前の PostgreSQL リリースを実行するデータベースでは、フェイルオーバーレプリケーションスロットは作成されません。

詳細は、Debezium PostgreSQL コネクターのドキュメントの サポートされているトポロジーslot.failover を参照してください。

1.4.3.7. CloudEvents コンバーター (テクノロジープレビュー)

CloudEvents コンバーターは、CloudEvents 仕様に準拠した変更イベントレコードを生成します。CloudEvents の変更イベントのエンベロープは、JSON または Avro であり、各エンベロープタイプは data フォーマットとして JSON または Avro をサポートしています。詳細は、CloudEvents コンバーター を参照してください。

1.4.3.8. カスタムコンバーター (テクノロジープレビュー)

デフォルトのデータ型変換がニーズを満たさない場合は、コネクターで使用するカスタムコンバーターを作成できます。詳細は、カスタム開発されたコンバーター を参照してください。

1.4.4. 開発者プレビュー機能

Debezium 3.0.8 では、次の開発者プレビュー機能が利用できます。

重要

開発者プレビュー機能は、Red Hat ではいかなる形でもサポートされていません。また、機能的には完全ではなく、実稼働環境に対応していません。開発者プレビューのソフトウェアを実稼働ワークロードまたはビジネスクリティカルなワークロードには使用しないでください。開発者プレビューソフトウェアは、今後 Red Hat 製品サービスとして追加される可能性のある製品ソフトウェアを前もって早期に利用できます。お客様はこのソフトウェアを使用して機能をテストし、開発プロセス中にフィードバックを提供できます。このソフトウェアにはドキュメントが存在しない可能性があり、変更または削除される可能性があります。また、限定的なテストしか行われていません。Red Hat は、関連する SLA なしに、開発者プレビューソフトウェアに対するフィードバックを送信する手段を提供する場合があります。

Red Hat 開発者プレビューソフトウェアのサポート範囲の詳細は、開発者プレビューのサポート範囲 を参照してください。

1.4.4.1. Debezium Server (開発者プレビュー)

このリリースでは、Debezium Server は引き続き開発者プレビュー機能として利用可能です。Debezium Server は、データソースからの変更イベントを設定済みの Kafka または Redis データシンクに直接ストリーミングする、すぐに使用できるアプリケーションです。一般に利用可能な Debezium コネクターとは異なり、Debezium Server のデプロイメントは Apache Kafka Connect に依存しません。Debezium Server Developer Preview の詳細は、Debezium ユーザーガイド を参照してください。

1.4.4.2. Informix ソースコネクター (開発者プレビュー)

Informix 用の Debezium ソースコネクターが、開発者プレビュー機能として利用できるようになりました。

Debezium Informix ソースコネクターは、IBM Informix データベース内のテーブルから行レベルの変更をキャプチャーします。このコネクターは Debezium Db2 コネクターに基づいており、Informix Change Data Capture API for Java を使用してトランザクションデータをキャプチャーします。この API は、現在の論理ログからデータをキャプチャーし、トランザクションを順番に処理します。

このコネクターは、Informix Database 12 と 14、および Informix JDBC ドライバーのバージョン 4.50.11 と互換性があります。

重要

ライセンス要件により、Debezium Informix コネクターアーカイブには、Debezium が Informix データベースに接続するために必要な Informix JDBC ドライバーまたは Change Stream クライアントは含まれていません。コネクターを使用する前に、ドライバーとクライアントライブラリーを取得し、コネクター環境に追加する必要があります。

前提条件

  • データベース管理者は、データベースに対して完全な行ロギングを有効にし、それ以外の点でも Change Data Capture API を使用するためにデータベースとデータベースサーバーを準備する必要がある。
  • コネクター環境に Informix JDBC ドライバーのコピーがある。ドライバーは Maven Central から入手できます。
  • Informix Change Streams API for Java がインストールされている。
    Change Streams API for Java は、Informix JDBC インストールの一環としてパッケージ化されており、最新の JDBC ドライバーとともに Maven Central でも入手できます。データベースで CDC を有効にするには API が必要です。

関連情報

1.4.4.3. MongoDB コネクター開発者プレビュー機能
1.4.4.3.1. MongoDB シンクコネクター (開発者プレビュー)

このリリースでは、MongoDB シンクコネクターの実装が導入されています。Debezium MongoDB シンクコネクターは、最初にイベントフラット化変換を適用せずに、Debezium コネクターによって発行された未加工の変更イベントを取り込むことができる点で、他のベンダーの実装とは異なります。MongoDB シンクコネクターは、列タイプの伝播などのネイティブ Debezium ソースコネクター機能を利用できるため、データパイプラインの処理フットプリントを削減し、設定を簡素化できる可能性があります。

使用するために追加のプラグインをインストールする必要がある JDBC シンクリレーショナルコネクターとは異なり、MongoDB シンクコネクターは MongoDB ソースコネクターと一緒に同じアーティファクトにバンドルされています。したがって、Debezium 3.0.8 MongoDB ソースコネクターをインストールすると、MongoDB シンクコネクターもインストールされます。

MongoDB シンクコネクターを使い始めるには、次のような最小限の設定が必要です。

Copy to Clipboard Toggle word wrap
{
  "connector.class": "io.debezium.connector.mongodb.MongoDbSinkConnector",
  "connection.string": "...",
  "topics": "topic1,topic2",
  "sink.database": "targetdb"
}

次の設定プロパティーは必須です。

connection.string

MongoDB シンクデータベースに接続するための詳細を提供します。

sink.database

変更が書き込まれるターゲットデータベースの名前を提供します。

topics

シンクコネクターがイベントレコードを読み取るトピックを記述する正規表現のコンマ区切りリストを指定します。

注記

このコネクターのドキュメントは現在作成中です。

1.4.4.4. MariaDB および MySQL コネクターの開発者プレビュー機能
1.4.4.4.1. MySQL 並列スキーマスナップショット (開発者プレビュー)(DBZ-6472)

MySQL コネクターで並列スキーマスナップショットを使用する機能は、引き続き開発者プレビュー機能として提供されます。

スナップショットのパフォーマンスを向上させるために、MySQL コネクターは並列処理を実装しており、変更イベントのスナップショットの作成とテーブルのスキーマイベントの生成を同時に実行します。スナップショットを実行し、スキーマイベントを並行して生成することにより、コネクターはデータベース内の多数のテーブルのスキーマをキャプチャーするために必要な時間を短縮します。

1.4.4.4.2. MariaDB と MySQL の並列初期スナップショット (開発者プレビュー)

MySQL の Debezium 初期スナップショットは常にシングルスレッドでした。この制限は主に、複数のトランザクション間でデータの一貫性を確保するのが複雑であることに起因します。

このリリースでは、複数のスレッドを使用してテーブルレベルのスナップショットを並列に実行するように MySQL コネクターを設定できます。

この新しい機能を活用するには、コネクター設定に snapshot.max.threads プロパティーを追加し、そのプロパティーを 1 より大きい値に設定します。

例1.1 並列スナップショットを使用した設定の例

Copy to Clipboard Toggle word wrap
snapshot.max.threads=4

前の例の設定に基づいて、コネクターは一度に最大 4 つのテーブルのスナップショットを作成できます。スナップショットを作成するテーブルの数が 4 より大きい場合、スレッドは最初の 4 つのテーブルのうち 1 つの処理を完了した後、キュー内の次のテーブルを見つけてスナップショットの作成を実行し始めます。コネクターが指定されたすべてのテーブルでスナップショットの実行を完了するまで、プロセスは続行されます。

詳細は、Debezium ユーザーガイドの snapshot.max.threads を参照してください。

1.4.4.5. Oracle コネクター開発者プレビュー機能
1.4.4.5.1. 論理スタンバイからの変更の取り込み (開発者プレビュー)

Oracle コネクターが論理スタンバイから変更をキャプチャーする機能は、引き続き開発者プレビュー機能として利用できます。Oracle 用の Debezium コネクターは、実稼働データベースまたはプライマリーデータベースに接続するときに、内部フラッシュテーブルを使用して Oracle Log Writer Buffer (LGWR) プロセスのフラッシュサイクルを管理します。フラッシュプロセスでは、コネクターがデータベースにアクセスするために使用するユーザーアカウントに、このフラッシュテーブルの作成と書き込みの権限が必要です。ただし、論理スタンバイデータベースには制限的なデータ操作ルールが設定されていることが多く、読み取り専用の場合もあります。その結果、データベースへの書き込みが実行できなくなる可能性があります。

Oracle の読み取り専用論理スタンバイデータベースをサポートするために、Debezium はフラッシュテーブルの作成と管理を無効にするプロパティーを導入しています。この機能は、Oracle スタンドアロンインストールと Oracle RAC インストールの両方で使用できます。

Oracle コネクターが読み取り専用論理スタンバイを使用できるようにするには、次のコネクターオプションを追加します。

Copy to Clipboard Toggle word wrap
internal.log.mining.read.only=true

詳細は、Debezium ユーザーガイドの Oracle コネクターのドキュメント を参照してください。

1.4.4.6. PostgreSQL コネクター開発者プレビュー機能
1.4.4.6.1. 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.supportrequired に設定するには、Kafka Connect クラスター内のすべてのコネクターが 1 回限りの配信をサポートしている必要があります。ワーカーによる 1 回限りの配信へのサポートに一貫性がないクラスターでこのオプションを設定しようとすると、この機能をサポートしていないコネクターは起動時に検証に失敗します。

1.4.5. このリリースのその他の更新

この Debezium 3.0.8 リリースでは、他の複数の機能の更新と修正が提供されます。完全なリストは、Debezium 3.0.8 機能拡張アドバイザリー (RHEA-2025:147677) を参照してください。

1.5. 非推奨の機能

以下の機能は非推奨となり、今後のリリースで削除される予定です。

schema_only および schema_only_recovery スナップショットモードの非推奨化
  • schema_only_recovery モードは非推奨となり、recovery モードに置き換えられました。
  • schema_only モードは非推奨となり、no_data モードに置き換えられました。
重要

現在のリリースには非推奨のスナップショットモードが引き続き含まれていますが、今後のリリースでは削除される予定です。削除に備えて、これらの非推奨モードに依存するスクリプト、設定、プロセスを調整します。

以前のリリースで非推奨となった機能は、2.7.3 リリースノート を参照してください。

1.6. 既知の問題

Debezium 3.0.8 には次の既知の問題があります。

1 つのテーブルのスナップショットが遅い場合の並列初期スナップショット例外 (DBZ-7932)
一部の環境では、SQL ベースのコネクターが並列初期スナップショットを実行するように設定されている場合に、障害が発生する可能性があります。これは、1 つのテーブルのスナップショットを完了するのに必要な時間が、他のテーブルのスナップショットを完了するのに必要な時間よりも大幅に長いために発生します。その結果、完了したスナップショットのスレッドは長時間アイドル状態のままとなり、コネクターは接続を正常に閉じることができません。接続を閉じることができないと、すべてのデータが正常に送信されたとしても、スナップショットが不完全になる可能性があります。ロードバランサーやファイアウォールなど、データベースへのアイドル接続を終了するネットワークデバイスが含まれる環境では、この問題の影響を受けやすくなります。

この問題が発生した場合は、snapshot.max.threads の値を 1 に戻します。
MariaDB の負の binlog ポジション値 (DBZ-8755)
MariaDB 11.4 では、新しいバイナリーログ形式が導入されました。Debezium は、この新しい形式のイベントを消費できません。Debezium が MariaDB 11.4 以降を実行するデータベースに接続する場合、コネクターが新しい形式のイベントを消費できるように、MariaDB サーバー変数 binlog_legacy_event_pos1 (オン) に設定する必要があります。この変数をデフォルト設定 (0 または OFF) のままにすると、コネクターの再起動後に Debezium が再開ポイントを見つけられない可能性があります。
Kafka での Apicurio レジストリー無限リバランスループ
詳細は、Apicurio registry 2.4.3 and 2.4.4 causes endless rebalance loop on Kafka を参照してください。

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.