機能概要
データ購読とは、データベース内の主要ビジネスにおけるデータ変更情報を取得し、これらの情報をメッセージオブジェクトにパッケージ化してKafkaにプッシュすることで、下流ビジネスが購読、取得、消費しやすくすることを指します。Tencent Cloud DTSは、Kafka/Flink Clientを通じてデータを直接消費することをサポートしており、ユーザーがクラウドデータベースと異種システム間のデータ同期を構築しやすくします。例えば、キャッシュ更新、ETL(データウェアハウス技術)リアルタイム同期、ビジネスの非同期デカップリングなどです。
実装原理
以下では、MySQLを例に説明します。データ購読は、ソースインスタンスのBinlog増分ログをリアルタイムに取得し、増分データをKafka messageに解析してから、Kafka Serverに保存します。ユーザーはKafka Clientを通じてデータを消費できます。Kafkaはオープンソースのメッセージミドルウェアとして、複数データチャネルでの消費と複数のSDK言語をサポートしており、ユーザーの利用コストを削減します。
代表的なユースケース
例示シナリオ1:データリアルタイム分析
DTSデータ購読を使用して、ビジネスを非同期にデカップリングし、ソースデータベースの業務に影響を与えることなく、ソースデータベースのデータを分析システムにリアルタイムで同期し、企業ユーザーのリアルタイムデータ分析を支援します。
例示シナリオ2:データアーカイブストレージ
DTSデータ購読を使用して、ソースデータベースの増分更新データをリアルタイムにストリーミング方式でアーカイブデータベースまたはデータウェアハウスにプッシュできます。
制約事項
購読したメッセージ内容の現在のデフォルト保存期間は直近1日間です。保存期間を過ぎたデータは削除されます。データが消費される前に削除されないよう、ユーザーは速やかに消費してください。
データ消費の地域は、購読インスタンスの地域と同じである必要があります。
MySQL、MariaDB、TDSQL MySQLのデータ購読では、現在geometry関連のデータ型はサポートされていません。
性能説明
購読リンクでは、ソースデータベースで解析されたデータはまずDTS内蔵Kafkaに書き込まれ、その後クライアントを通じて消費されます。書き込みと消費のパフォーマンスは以下の通りです:
|
データを内置Kafkaに書き込む(MySQL/MariaDB/Percona/TDSQL-C MySQL/TDSQL MySQL単一シャード) | 10MB/s |
データを内置Kafkaに書き込む(TDSQL MySQLマルチシャード) | 10MB/s * シャード数 |
内置Kafkaからデータを消費します。 | 20MB/s(単一コンシューマグループ) |
| 50MB/s(複数コンシューマグループ) |
上記のパフォーマンスデータは参考としてのみ提供されています。実際の使用過程では、ソースデータベースの過大な負荷やネットワーク遅延の増加などの要因により、パフォーマンスが制限される可能性があります。
サポートされる購読タイプ
DTSは、購読対象の選択粒度としてデータベースとテーブルをサポートしています。具体的には、以下の3種類の購読タイプをサポートしています。
データ更新:DML操作の購読を指します。
構造更新:DDL操作の購読を指します。
全インスタンス:すべてのデータベース・テーブルのDMLおよびDDL操作を購読することを指します。
消費でサポートされるデータ形式
ユーザーが購読データを消費する際、ProtoBuf、Avro、JSONの3つの形式がサポートされています。ProtoBufとAvroはバイナリ形式で、より効率的です。JSONは軽量なテキスト形式で、より簡単に使用できます。
サポートされる機能一覧
|
| データ購読はKafkaプロトコルを使用し、さまざまな言語のKafka Client SDKをサポートしています。 | |
メトリクス監視とデフォルトのアラートポリシーをサポートしています。 | データ購読の各指標の監視をサポートしています。 データ購読イベントの監視に対するデフォルト設定をサポートしています。イベント異常時には自動的にユーザーへ通知します。 | |
| 単一インスタンスで複数のデータチャネルを作成できます。コンシューマグループを作成することで、複数チャネルの同時消費を実現します。 | |
| 単一Topicのデータはパーティションストレージをサポートしています。複数パーティションのデータは並行して消費され、消費効率が向上します。 | |
カスタムルーティングポリシーをサポートしています。 | データフィールドをカスタムルールに従ってKafkaパーティションにルーティングすることをサポートしています。 | |
| 消費場所(Offset)の変更をサポートしています。 | |
SSLセキュア接続 | DTSとソースデータベース間の伝送チャネルはSSL安全接続をサポートし、伝送チャネルを暗号化します。 | - |
XAトランザクションをサポートします。 | DTSはソースデータベースで実行されたXAトランザクション操作を識別でき、コンシューマー側で取得したデータはXAトランザクションのロジックに従って解析されます。
ソースデータベースでXAトランザクションのロールバックが発生した場合、DTSはロールバックを識別でき、ソースデータベース上のロールバックおよびロールバック前のSQL文はコンシューマー側に伝送されません。 | - |