Debezium 1.9.7 の Red Hat ビルドのリリースノート
Red Hat ビルドの Debezium の新機能
概要
第1章 Red Hat ビルドの Debezium 1.9.7 リリースノート
Debezium は、分散型変更データキャプチャープラットフォームで、データベーステーブルで発生する行レベルの変更をキャプチャーし、対応する変更イベントレコードを Apache Kafka トピックに渡します。アプリケーションはこれらの 変更イベントストリーム を読み取りでき、変更イベントが発生した順にアクセスできます。Debezium は Apache Kafka 上に構築され、OpenShift Container Platform または Red Hat Enterprise Linux 上の AMQ Streams とデプロイおよび統合されます。
リリースの詳細は以下を参照してください。
1.1. Debezium データベースコネクター
Debezium は、以下の共通データベースの Kafka Connect をベースとしたコネクターを提供します。
- Db2
- MongoDB
- MySQL
- Oracle
- PostgreSQL
- SQL Server
1.1.1. コネクターの使用上の注意
Db2
-
Debezium Db2 コネクターには、Db2 JDBC ドライバー (
jcc-11.5.0.0.jar
) は含まれていません。必要な JDBC ドライバーをデプロイする方法については、デプロイメントの説明 を参照してください。 - Db2 コネクターには、Linux 用の Db2 の標準部分として利用できる抽象構文表記 (ASN) ライブラリーを使用する必要があります。
- ASN ライブラリーを使用するには、IBM InfoSphere Data Replication (IIDR) のライセンスが必要です。ライブラリーを使用するために IIDR をインストールする必要はありません。
-
Debezium Db2 コネクターには、Db2 JDBC ドライバー (
MongoDB
- 現在、MongoDB 4.2 で Debezium MongoDB コネクターのトランザクションメタデータ機能を使用することはできません。
Oracle
-
Debezium Oracle コネクターには、Oracle JDBC ドライバー (
ojdbc8.jar
) は含まれていません。必要な JDBC ドライバーをデプロイする方法については、デプロイメントの説明 を参照してください。
-
Debezium Oracle コネクターには、Oracle JDBC ドライバー (
PostgreSQL
-
Debezium PostgreSQL コネクターでは、PostgreSQL バージョン 10 以降のデフォルトである
pgoutput
論理デコーディング出力プラグインを使用する必要があります。
-
Debezium PostgreSQL コネクターでは、PostgreSQL バージョン 10 以降のデフォルトである
1.2. Debezium でサポートされる設定
サポートされるデータベースバージョンなどの、Debezium でサポートされる設定の詳細は Debezium 1.9.7 Supported Configurations page を参照してください。
1.2.1. AMQ Streams API バージョン
Debezium は AMQ Streams 2.2 で実行されます。
AMQ Streams は、AMQ Streams カスタムリソースのスキーマを更新する v1beta2
API バージョンをサポートします。古い API バージョンは非推奨になりました。AMQ Streams 1.7 にアップグレードした後、AMQ Streams 1.8 以降にアップグレードする前に、API バージョン v1beta2
を使用するようにカスタムリソースをアップグレードする必要があります。
詳細は、Debezium ユーザーガイド を参照してください。
1.3. Debezium のインストールオプション
Debezium と AMQ Streams を OpenShift または Red Hat Enterprise Linux にインストールできます。
1.4. Debezium の新機能
Debezium 1.9.7 には、以下の更新が含まれています。
1.4.1. 一般公開 (GA) にプロモートした機能
以下の機能は、2022.Q3 リリースの今回の更新でテクノロジープレビューから一般提供(GA)に昇格されています。
- Oracle Real Application Clusters のサポート
- Oracle 用の Debezium コネクターは、Oracle Real Application Clusters (RAC) での使用がサポートされるようになりました。
1.4.1.1. 以前の Debezium リリースで一般公開 (GA) に昇格した機能
以下の機能は、2022.Q3 リリースでテクノロジープレビューから一般提供(GA)にプロモートされています。
- アドホックおよびインクリメンタルおよびスナップショット
- 以前にスナップショットをキャプチャしたテーブルのスナップショットを再実行するためのメカニズムを提供します。
- Debezium Oracle コネクター
Oracle Database のコネクターは、LogMiner を使用するように設定されたデータベースで完全にサポートされるようになりました。Debezium Oracle コネクターのこのリリースには、次の更新が含まれています。
-
DBZ-3317
decimal.handling.mode
プロパティーを説明するドキュメントは、他の Debezium コネクターの同様のドキュメントと一致するようになりました。 - DBZ-4404 コネクターは、12c より前のバージョンの Oracle でアドホックスナップショットをトリガーするためのシグナルの使用をサポートするようになりました。
- DBZ-4436/ DBZ-4883 デプロイメントのドキュメントに、Oracle JDBC ドライバーを Maven アーティファクトとして取得する方法が記載されています。
- DBZ-4494 ドキュメントには、Oracle コネクター LogMiner ユーザーのデータベース権限を設定する方法が記載されています。
- DBZ-4536 マイニングセッション中に発生したエラーを再試行するための Oracle コネクターエラーハンドラーの柔軟性が向上します。
- DBZ-4595 Oracle コネクターが ROWID データ型をサポートするようになりました
- DBZ-4963 Oracle コネクターの log.mining.session.max.ms 設定オプションを導入します。
- DBZ-5005 LogMiner バッチサイズを調整するとき、新しいサイズは、デフォルトサイズではなく、現在のバッチサイズに基づくようになりました。
- DBZ-5119 ユーザーは、ハートビートイベントを発行するようにコネクターを設定して、変更が長期間発生しないテーブルでコネクターオフセットが同期されたままになるようにすることができます。
- DBZ-5225 LogMiner イベント SCN が Oracle 変更イベントレコードに含まれるようになり、コネクターが間隔中に発行するすべてのイベントが、最も古い進行中のトランザクションと同じ最低水準の SCN 値を使用する状況を防ぎます。
- DBZ-5256 コネクターの起動時に不適切に削除されたアーカイブログが見つからない場合の障害を防ぐために、スナップショットフェーズ中に、Oracle コネクターがデフォルトで不完全なトランザクションの進行状況をチェックすることはなくなりました。
-
DBZ-5399
signal.data.collection
プロパティーのドキュメントを更新して、プラグ可能なデータベース環境では、プロパティーの値をルートデータベースの名前に設定する必要があることを指定します。
テクノロジープレビュー中に導入された Oracle コネクター機能のリストについては、2022.Q1 リリースノート を参照してください。
-
DBZ-3317
- 送信トレイ (Outbox) イベントルーター
- 複数の (マイクロ) サービス間でデータを安全かつ確実に交換するための送信トレイパターンをサポートする単一メッセージ変換 (SMT)。
- Debezium コネクターへのシグナル送信
- Debezium シグナリングメカニズムは、コネクターの動作を変更したり、コネクターをトリガーしてテーブルのアドホック増分スナップショットを開始するなどの 1 回限りのアクションを実行する方法を提供します。
1.4.2. Debezium 機能の更新
Debezium の 2022.Q3 リリースの今回の更新では、機能の更新と修正が複数追加されました。以下のリストは、最近の重要な変更点を示しています。
- DBZ-5235 Debezium Server Consumer から Debezium メトリクスを読み取ります。
- DBZ-5292 Broken pipe (Write failed) 例外メッセージを含む SQLServerException を再試行可能な例外として扱います。
- DBZ-5429 DB2 スナップショットモードに INITIAL_ONLY を追加します。
- DBZ-5441 サポートされていない非リレーショナルテーブルは、ストリーミング中にコネクターによって適切にスキップされる必要があります。
- DBZ-5478 Socket closed 例外で SQL Server タスクを再起動します。
- DBZ-5591 従来のスナップショットプロセス設定 source.ts_ms。
- DBZ-5631 テーブル変更ステートメントでの stats_sample_pages=default の設定のサポート。
- DBZ-5636 kill ステートメントで任意の式を使用できるようになりました。
1.4.2.1. 以前のリリースでの Debezium の更新
- Debezium 2022.Q3 の更新
以下の一覧には、元の 2022.Q3 Debezium リリースに含まれる変更に関する情報が含まれています。
- DBZ-3762 デフォルトでは、MySQL コネクターはイベント DDL のインラインコメントをデータベース履歴に伝播しなくなりました
- DBZ-4351 最後の開始以降にコネクターが発行する DML 作成/更新/削除イベントの数をモニターするためのメトリックを追加します
- DBZ-4415 oplog モードで MongoDB 5 以降で MongoDB コネクターを使用するためのサポートを削除します
- DBZ-4451 コネクターは、名前が変更されたテーブルの履歴を正しく回復できるようになりました。
- DBZ-4472 コネクターログに、イベントのソースパーティションに関する情報が記録されるようになりました
- DBZ-4478 コネクターのメトリックを複数のパーティションから取得できるようになりました
-
DBZ-4518
database.history.kafka.query.timeout.ms
プロパティーを設定することにより、KAFKA_QUERY_TIMEOUT を設定できるようになりました。 - DBZ-4541 MySQL および Oracle コネクターは、開始する前に JMX メトリックを正常に登録する必要があります
- DBZ-4547 MySQL コネクターは、SaaS 環境で履歴トピックを正常に作成できるようになりました
- DBZ-4600 MongoDB コネクターを送信トレイイベントルーターで使用する場合、バイナリーペイロードをデコードするように設定できるようになりました
- DBZ-4730 コネクターが 10 進法文字列モードに設定されている場合、科学的な指数表記ではなくプレーンな文字列値を期待するようになりました
- DBZ-4809 マルチパーティションコネクターのロギングコンテキストにタスク ID とパーティションを追加します
- DBZ-4823 MySQL コネクターは、除外されたテーブルの tableId の null 値をログに記録しなくなりました
- DBZ-4832 MySQL コネクターは、システム変数からトラストストアとキーストアのパラメーターを取得するようになりました
-
DBZ-4834 増分スナップショットに、
include
リストに追加されたテーブルが正しく含まれるようになりました - DBZ-4861 PostgreSQL コネクターは、スナップショットイベントをログに記録するときにスキーマ情報を提供するようになりました
- DBZ-4948 PostgreSQL コネクターは、ネットワーク例外の結果として閉じた接続を再試行するようになりました
- Debezium 2022.Q1 の更新
- 以前の Debezium リリースに含まれていた機能のリストについては、2022.Q1 リリースノート を参照してください。
1.5. テクノロジープレビューの機能
テクノロジープレビュー機能は、Red Hat の実稼働サービスレベルアグリーメント (SLA) でサポートされておらず、機能的に完全でない可能性があります。Red Hat は、本番環境でのテクノロジープレビュー機能の実装は推奨しません。テクノロジープレビュー機能は、近々発表予定の製品イノベーションをリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。サポート範囲の詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Debezium には、次のテクノロジープレビュー機能が含まれています。
- MongoDB コネクターのアドホックおよび増分スナップショット
- 以前にスナップショットをキャプチャしたテーブルのスナップショットを再実行するためのメカニズムを提供します。
- CloudEvents コンバーター
-
CloudEvents 仕様に準拠する変更イベントレコードが出力されます。Cloud Events の変更イベントのエンベロープは、JSON または Avro であり、各エンベロープタイプは
data
フォーマットとして JSON または Avro をサポートしています。CloudEvents の変更イベントエンベロープは Avro エンコーディングをサポートしています。変更イベントエンベロープは JSON または Avro を使用でき、各エンベロープタイプはdata
形式として JSON または Avro をサポートしています。 - コンテンツベースルーティング
- イベントの内容に基づいて、選択したイベントを特定のトピックに再ルーティングするためのメカニズムを提供します。
- カスタム開発コンバーター
- デフォルトのデータ型変換がニーズを満たさない場合は、コネクターで使用するカスタムコンバータを作成できます。
- フィルター SMT
- コネクターがブローカに送信するレコードのサブセットを指定できます。
- MongoDB コネクターの シグナリング
- コネクターの動作を変更したり、テーブルの アドホックスナップショット を開始するなどの 1 回限りのアクションをトリガーしたりするためのメカニズムを提供します。
- Oracle コネクターでの
BLOB
、CLOB
、およびNCLOB
データ型 の使用 - Oracle コネクターは、Oracle のラージオブジェクトタイプを使用できます。
1.6. 非推奨の Debezium 機能
- PostgreSQL の
truncate.handling.mode
プロパティー -
Debezium PostgreSQL コネクターの
truncate.handling.mode
プロパティーは、このリリースでは非推奨であり、将来のリリース (DBZ-4419) で削除される予定です。代わりにskipped.operations
プロパティーを使用します。 - コネクタースナップショットおよびストリーミングメトリックの MonitoredTables オプション
-
Debezium コネクターメトリクスの
MonitoredTables
オプションは、このリリースでは非推奨であり、将来のリリースで削除される予定です。代わりにCapturedTables
メトリックを使用します。