Flink CDC 2.3 Releases New Db2 Support

関連タグ:1.Realtime Compute for Apache Flink
2. Flink Python

1. Flink CDC について



Flink CDC [1] は、データベースベースのログ CDC 技術であり、全量増分一体化読み取りを実現するデータ連携フレームワークです。Flink の優れたパイプライン機能と豊富なアップストリームおよびダウンストリームのエコシステムにより、Flink CDC は大量データのリアルタイム連携を効率的に実現できます。

次世代のリアルタイムデータ連携フレームワークとして、Flink CDC は全量増分連携、無ロック読み取り、並列読み取り、テーブル構造変更の自動同期、分散アーキテクチャなどの技術的な優位性を備えています。同時に、コミュニティから包括的なドキュメントサポートが提供されています [2]。Flink CDC のオープンソース化から 2 年以上を経て、コミュニティは急速に成長しました。現在、Flink CDC コミュニティには 76 名の貢献者と 7 名のメンテナがおり、7,800 名以上の DingTalk ユーザーが参加しています。

2. Flink CDC 2.3 概要



コミュニティユーザーと貢献者の共同努力により、Flink CDC 2.3 が正式にリリースされました。

バージョン 2.3 では、49 名のコミュニティ貢献者が参加し、126 個の課題が解決され、133 個の PR がマージされ、170 件以上のコミットが行われました。コードの配布観点から見ると、MySQL CDC、MongoDB CDC、Flink CDC ベースモジュール、およびドキュメントモジュールのすべてにおいて、ユーザーに多くの機能と改善をもたらしています。

これほど多くの改善と機能を前に、この記事では次の図を通じて Flink CDC バージョン 2.3 の主要な改善とコア機能を 3 分で素早く理解できるように解説します。

Db2 CDC connector を追加し、Db2 データベースの無ロック読み取りを実現し、全量および増分連携同期をサポートします。

MongoDB CDC connector の両方が増分スナップショットフレームワークに接続され、無ロック読み取り、同時読み取り、ブレークポイント再開の機能を提供します。

MySQL CDC connector はバージョン 2.3 でパフォーマンス最適化と安定性が大幅に改善され、本番環境での安定性とパフォーマンスが大きく向上しました。

Flink CDC バージョン 2.2 は Flink 1.13 と Flink 1.14 に互換です。これに基づき、Flink CDC 2.3 はさらに Flink 1.15 および 1.16 との互換性を継続し、Flink の 4 つのメジャーバージョンと互換となりました。これは、CDC の SQL connector がコード変更なしで異なる Flink クラスタ上で実行できることを意味します。DataStream ユーザーの場合、SQL connector のパッケージング方式を参考にして、バージョン間の互換性を実現することもできます。

OceanBase CDC connector はすべてのデータベース型の Flink SQL への接続をサポートし、OceanBase の全タイプのフィールドが同期対象となりました。

MySQL CDC および OceanBase CDC connector に中国語ドキュメントが提供され、中国語ユーザーをよりよくサポートしています。

3. コア機能と重要な改善の解説



Flink CDC バージョン 2.3 は多くの重要な改善と機能をもたらしました。この記事では、最も重要な 4 つを取り上げて詳しく解説します。

3.1 Db2 CDC connector の追加



Db2 は IBM が開発したリレーショナルデータベース管理システムです [3]。Db2 CDC connector は、Db2 データベース内のテーブルの変更を行レベルでキャプチャできます。その実装原理は、ASN Capture/Apply エージェントが提供する SQL レプリケーション機能に基づいており、capture モードが有効なテーブルの変更をデータベース内の指定された変更テーブルに保存します。Db2 CDC connector はまず JDBC 経由でテーブル内の既存データを読み取り、次に変更テーブルから増分変更データを取得して、全量増分同期を実現します。

3.2 MongoDB CDC connector の増分スナップショットアルゴリズムサポート



Flink CDC バージョン 2.3 では、MongoDB CDC connector が Flink CDC 増分スナップショットフレームワークに接続され、増分スナップショットアルゴリズムを実装することで、無ロック読み取り、並列読み取り、ブレークポイント再開の機能を提供するようになりました。

これまで、Flink CDC で増分スナップショットアルゴリズムをサポートするデータソースは拡大を続けています。次のバージョンでは、コミュニティはさらに多くの connector を増分スナップショットフレームワークに接続する計画を進めています。

3.3 MySQL CDC Connector の最適化



コミュニティのユーザーから最も注目されている MySQL CDC connector について、バージョン 2.3 では多くの高度な機能が導入され、パフォーマンスと安定性が大幅に向上しました。主な改善点は以下の通りです。

3.3.1 指定位置からの起動サポート

MySQL CDC Connector は指定位置からのジョブ起動をサポートするようになりました。タイムスタンプ、binlog オフセット、または binlog GTID を指定することで、ジョブ起動時の binlog の具体的な位置を指定できます。また、最初のオフセットを設定して、最も早い binlog 位置からジョブを起動することも可能です。



3.3.2 シャーディングアルゴリズムの最適化

バージョン 2.3 では、フルステージのシャーディングアルゴリズムが最適化されました。従来の同期シャーディングから非同期シャーディングに変更され、ユーザーはプライマリキー内の任意の列をシャーディング列として指定でき、シャーディングプロセスはチェックポイントをサポートします。これにより、全量読み取りフェーズでの同期シャーディングによるブロッキングが解消され、パフォーマンスが向上しました。

3.3.3 安定性の向上

MySQL CDC connector はすべての文字セットと Flink SQL の連携に対応し、より多くのユーザーシナリオを解放しました。デフォルト値の許容、非標準 DDL に対するジョブの耐性向上、データベースのタイムゾーン自動取得によるタイムゾーン問題の解決など、ジョブの堅牢性が強化されています。

3.3.4 パフォーマンスの向上

MySQL CDC バージョン 2.3 はメモリと読み取りパフォーマンスの最適化に注力し、JM でのメタデータ再利用と TM でのストリーミング読み取りにより、JM と TM のメモリ使用量を削減しました。同時に、binlog 解析ロジックの最適化により binlog 読み取りパフォーマンスを向上させました。

3.4 その他の改善



• Flink CDC バージョン 2.3 は Flink 1.13、1.14、1.15、1.16 の 4 つのバージョンと互換となり、ユーザーの connector のアップグレードおよび運用保守コストを大幅に削減しました。

• OceanBase CDC はタイムゾーン問題を修正し、全タイプの Flink SQL への接続をサポートし、より多くの設定項目を提供して柔軟な設定をサポートしました。たとえば、新たに追加された table list 設定項目により、複数の OceanBase データテーブルへのアクセスが可能です。

• MongoDB CDC はより多くのデータ型をサポートし、キャプチャテーブルのフィルタリングプロセスを最適化しました。

• TiDB CDC は全量増分切り替え時のデータ損失問題を修正し、読み取り中の Region 切り替えをサポートしました。

• Postgres CDC は geometry 型をサポートし、より多くの設定項目を公開し、changelog-mode の設定による送信データのフィルタリングをサポートしました。

• SqlServer CDC はより多くのバージョンをサポートし、ドキュメントを改善しました [4]。

• MySQL CDC および OceanBase CDC connector に中国語ドキュメントが提供されています [5] [6]。また、OceanBase CDC connector のビデオチュートリアルも用意されています [7]。

4. 今後の計画



Flink CDC オープンソースコミュニティの発展は、貢献者たちの無償の献身とメンテナメンバーによるオープンソース活動、そして Flink CDC ユーザーグループからの積極的なフィードバックと広報活動によるところが大きいです。Flink CDC コミュニティは引き続きオープンソースコミュニティの構築に取り組んでいきます。現在、Flink CDC コミュニティはバージョン 2.4 の計画を進めており [8]、すべてのユーザーと貢献者のフィードバックへの参加を歓迎します。次のバージョン 2.4 では、コミュニティの主な方向性として以下の 4 つの側面からの拡大を計画しています。

• データソースの拡充

より多くのデータソースをサポートし、より多くの CDC connector を増分スナップショットフレームワークに接続して、無ロック読み取り、同時読み取り、ブレークポイント再開などの機能をサポートします。

• 可観測性の向上

制限機能を提供して、全量フェーズでのデータベースへのクエリ圧力を軽減します。より豊富なモニタリング指標を提供し、タスクの進捗状況に関する指標を取得してタスクの状態をモニターできます。

• パフォーマンスの向上

全量フェーズで Batch モードを使用して全量フェーズデータを同期し、全量フェーズのパフォーマンスを向上させます。フル読み取りフェーズの完了後、アイドル状態のリーダーリソースが自動的に解放されます。

• 使いやすさの向上

connector の使いやすさを改善します。たとえば、すぐに使える設定パラメータの簡素化や、DataStream API プログラムの例の提供などです。

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.