tencent cloud

Data Transfer Service

TDSQL MySQLデータ購読の作成

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-11-02 12:17:09
AI翻訳
本シナリオでは、DTSを使用してTencentDB for TDSQL MySQLのデータ購読タスクを作成する操作手順について説明します。

前提条件

購読対象のTencentDB for MongoDBデータベースを準備し、データベースのバージョンが要件を満たしていることを確認してください。詳細はデータ購読がサポートするデータベースを参照してください。
ソースインスタンスでbinlogを有効にしました。
ソースインスタンスに購読アカウントを作成しました。必要なアカウント権限は以下の通りです:REPLICATION CLIENT、REPLICATION SLAVE、PROCESS、および全オブジェクトのSELECT権限。 具体的な権限付与ステートメントは以下の通りです:
create user '移行アカウント' IDENTIFIED BY 'アカウントパスワード';
grant SELECT, REPLICATION CLIENT,REPLICATION SLAVE,PROCESS on *.* to '移行アカウント'@'%';
flush privileges;

制約事項

購読したメッセージ内容の現在のデフォルト保存期間は直近1日です。保存期間を過ぎたデータは削除されます。データが消費される前に削除されないよう、ユーザーは速やかに消費してください。
データ消費の地域は、購読インスタンスの地域と同じである必要があります。
現在、geometry関連のデータ型はサポートされていません。
データ購読ソースがTDSQL for MySQLの場合、権限付与ステートメントを直接実行して権限を付与することはサポートされていません。そのため、購読アカウントの権限はTDSQLコンソールでインスタンスIDをクリックし、アカウント管理ページで追加する必要があります。 購読アカウントに必要な権限は、上記の権限付与ステートメントに示された権限です。購読アカウントに__tencentdb__の権限を付与する操作では、コンソールの権限変更ポップアップでオブジェクトレベルの権限を選択し、すべての権限にチェックを入れます。
データ購読ソースがTDSQL for MySQLの場合、セカンダリパーティションテーブルの購読はサポートされていません。
購読タスクの開始前にソースデータベースでセカンダリパーティションテーブルが作成された場合、検証タスクは失敗します。
購読タスクの実行中にソースデータベースでセカンダリパーティションテーブルが作成された場合、購読されるセカンダリパーティションテーブルのデータは子テーブルのデータです(購読対象としてデータベース全体またはインスタンス全体を選択している場合、購読タスクの開始後にソースデータベースで作成されたセカンダリパーティションテーブルも購読されるため、最終的にセカンダリパーティションテーブルが購読される結果となります)。セカンダリパーティションテーブルの基盤は子テーブルによって実装されているため、購読タスクの進行中にセカンダリパーティションテーブルを作成することはお勧めしません。作成した場合、以下の例のような購読データの差異が生じます。 例:ソースデータベースのテーブル名「test_a」がセカンダリパーティションテーブルである場合、DTSがこのテーブルに対して購読するDMLのテーブル名は「test_a_tdsql_subp0/test_a_tdsql_subp1」となります。
購読タスクの進行中に購読対象の変更などの操作を行うと、タスクが再起動されます。再起動後、ユーザーがKafkaクライアントでデータを消費する際に重複が発生する可能性があります。
DTSは最小データユニット単位で伝送を行います。増分データは、checkpointの位置を1つマークするごとに1つのデータユニットとなります。再起動時に、ちょうど1つのデータユニットの伝送が完了している場合は、データの重複は発生しません。再起動時に、1つのデータユニットがまだ伝送中である場合は、再度起動した後にこのデータユニットを再取得して、データの整合性を保証する必要があります。これにより、データの重複が発生します。
ユーザーが重複データを比較的気にする場合は、データを消費する際に重複排除ロジックを設定してください。

注意事項

データ購読ソースがTDSQL for MySQLの購読タスクである場合、各シャードのDDL操作はすべて購読され、Kafkaに配信されます。そのため、1つのシャーディングテーブルに対するDDL操作では、重複したDDLステートメントが発生します。例えば、インスタンスAに3つのシャードがあり、1つのシャーディングテーブルtableAを購読している場合、テーブルtableAに対するDDLステートメントは3件購読されます。
Kafka内の各メッセージのメッセージヘッダーにはシャード情報が含まれており、key/valueの形式でメッセージヘッダーに存在します。keyはShardId、valueはSQLパススルーIDです。SQLパススルーIDに基づいて、そのメッセージがどのシャードからのものかを区別できます。ユーザーはTDSQLコンソール > インスタンスリスト > シャード管理でSQLパススルーIDを確認できます。


購読可能なSQL操作

操作タイプ
サポートされる SQL 操作
DML
INSERT、UPDATE、DELETE
DDL
CREATE DATABASE、DROP DATABASE、CREATE TABLE、ALTER TABLE、DROP TABLE、RENAME TABLE

操作手順

1. DTSコンソールにログインし、左側のナビゲーションでデータ購読を選択し、データ購読を新規作成をクリックします。
2. 新しいデータ購読ページで、対応する設定を選択し、今すぐ購入をクリックします。
課金モード:月額・年額プランと従量課金をサポートします。
地域:地域は、購読対象のデータベースインスタンスの購読と一致している必要があります。
データベース:具体的なデータベースタイプに応じて選択してください。
バージョン:Kafka版を選択します。Kafkaクライアントから直接消費できます。
購読インスタンス名:現在のデータ購読インスタンスの名前を編集します。
3. 購入が完了したら、データ購読リストに戻り、操作列の購読を設定をクリックして、先ほど購入した購読を設定します。設定が完了してから使用できます。
4. データベース購読の設定ページで、対応する設定を選択し、保存して次へをクリックします。
インスタンス:対応するデータベースインスタンスを選択します。読み取り専用/災害復旧インスタンスの選択をサポートしますが、プライマリインスタンスの選択を推奨します。購読サービスによるソースデータベースへの負荷は非常に小さいです。
データベースアカウント:購読インスタンスのアカウントとパスワードを追加します。アカウントには購読タスクに必要な権限があり、REPLICATION CLIENT、REPLICATION SLAVE、PROCESS、および全オブジェクトのSELECT権限が含まれます。
Kafkaパーティション数:kafkaパーティション数を設定します。パーティション数を増やすと、データの書き込みと消費の速度を向上できます。シングルパーティションはメッセージの順序を保証できますが、マルチパーティションではメッセージの順序を保証できません。消費したメッセージの順序に厳密な要件がある場合は、kafkaパーティション数を1に選択してください。
5. 購読タイプとオブジェクト選択ページで、購読タイプを選択し、保存して次へをクリックします。 購読タイプには、データ更新、構造更新、全インスタンスが含まれます。
データ更新:購読対象として選択したオブジェクトのデータ更新であり、データのINSERT、UPDATE、DELETE操作が含まれます。
構造更新:購読インスタンス内の全オブジェクトの構造の作成、変更、削除です。
全インスタンス:この購読インスタンスの全オブジェクトのデータ更新と構造更新が含まれます。
6. 事前検証ページでは、事前検証タスクの実行に2分~3分かかる見込みです。事前検証に合格した後、開始をクリックしてデータ購読タスクの設定を完了します。
説明
検証に失敗した場合、検証不通過の処理方法を参照して修正し、再度検証を行ってください。
7. 開始をクリックすると、購読タスクは初期化されます。所要時間は3分~4分の見込みです。初期化が成功すると、実行中状態になります。
8. 消費グループを追加、データ購読Kafka版はユーザーが複数のコンシューマグループを作成し、マルチポイント消費を行うことをサポートします。データ購読Kafka版の消費はKafkaのコンシューマグループに依存するため、データを消費する前にコンシューマグループを作成する必要があります。
9. 購読インスタンスが実行中状態になると、データの消費を開始できます。Kafkaの消費にはパスワード認証が必要です。具体的な例については、データ消費Demoを参照してください。複数言語のDemoコードを提供しており、消費の主な流れと重要なデータ構造についても説明しています。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック