すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:PolarDB for MySQL クラスターから ApsaraDB for ClickHouse クラスターへのデータ同期

最終更新日:Sep 19, 2026

Data Transmission Service (DTS) は、PolarDB for MySQL クラスターと ApsaraDB for ClickHouse クラスターをリアルタイムで同期し、ソースデータベースに影響を与えることなく一元的な分析を可能にします。

同期タイプと課金

同期タイプ

課金

スキーマ同期

無料

完全データ同期

無料

増分データ同期

有料です。 詳細については、「課金の概要」をご参照ください。

前提条件

開始する前に、次のことを確認してください:

重要

ソースクラスターのバイナリログは、少なくとも 7 日間保持する必要があります。 保持期間が短いと、DTS が binlog 内の位置を失い、タスクの失敗やデータ損失につながる可能性があります。 バイナリロギングを有効にすると、PolarDB for MySQL にストレージ料金が発生します。

データベースアカウントに必要な権限

データベース

必要な権限

リファレンス

ソース PolarDB for MySQL クラスター

同期対象のすべてのオブジェクトに対する読み取り権限

データベースアカウントの作成と管理およびデータベースアカウントのパスワード管理

送信先 ApsaraDB for ClickHouse V22.8 以降

送信先データベースに対する読み取りおよび書き込み権限 (特権アカウントを使用できます)

コミュニティ互換エディションクラスターのデータベースアカウントの管理

送信先 ApsaraDB for ClickHouse V21.8

[読み取り、書き込み、権限の設定] と DDL を有効にする

上記と同じ

制限事項

ソースインスタンスの制限

  • ソースサーバーには十分なアウトバウンド帯域幅が必要です。 帯域幅が不足すると、同期が遅くなります。

  • テーブルを同期し、送信先で列の名前変更や変更を行う場合、1 つのタスクでサポートされるテーブルは最大 1,000 です。 1,000 テーブルを超える場合は、複数のタスクに分割するか、データベース全体を同期してください。

  • 完全データ同期中にソースデータベースで DDL 操作を実行しないでください。 実行するとタスクは失敗します。

  • VECTOR 型データの同期はサポートされていません。

その他の制限

  • DTS は、ソースクラスターから読み取り専用ノードや Object Storage Service (OSS) 外部テーブルを同期しません。

  • 標準の MySQL 構文ではない DDL ステートメントは、タスクの失敗やデータ損失の原因となる可能性があります。

  • RENAME TABLE はサポートされていません。

  • ソースの DATETIME 値は、ClickHouse がサポートする時間範囲内である必要があります (「時間範囲」をご参照ください)。

  • パーティションキー として選択されたすべての列は、空でない必要があります。

  • 1 つの ApsaraDB for ClickHouse クラスターに同期できるデータベースは最大 256 個です。

  • データベース名、テーブル名、列名は、ApsaraDB for ClickHouse の命名規則に準拠する必要があります。 「オブジェクト命名規則の制限」をご参照ください。

  • スキーマ同期中に、DTS は送信先テーブルに _sign 、_is_deleted 、_version フィールドを追加します。 [スキーマ同期] を無効にする場合は、送信先テーブルを手動で作成し、これらのフィールドを含める必要があります。

  • 同期中に他のソースから送信先データベースにデータを書き込まないでください。 同時に書き込むと、データの不整合が発生します。

  • テーブルレベルで同期中のテーブルに対して pt-online-schema-change を使用して DDL を実行しないでください。 代わりにData Management (DMS) のロックフリー DDL を使用してください。

  • 可能な限り、オフピーク時に同期を実行してください。 完全データ同期では、両方のクラスターで読み取りおよび書き込みリソースを消費します。

  • タスクが失敗した場合、DTS サポートは 8 時間以内に復元を試み、タスクを再起動したり、タスクパラメーター (データベースパラメーターではない) を変更したりすることがあります。

データ同期をサポートする SQL 操作

DML

INSERT、UPDATE、および DELETE

DDL

DDL 操作

サポート状況

CREATE TABLE

はい

TRUNCATE TABLE

はい

ALTER TABLE

はい

ADD COLUMN

はい

MODIFY COLUMN

はい

DROP TABLE

はい

DROP COLUMN

はい

RENAME TABLE

いいえ

データ型のマッピング

PolarDB for MySQL と ApsaraDB for ClickHouse は異なるデータ型をサポートしています。 初期スキーマ同期中に、DTS はソースの型を互換性のある送信先の型にマッピングします。 「初期スキーマ同期のデータ型マッピング」をご参照ください。

同期タスクの作成

ステップ1:データ同期ページへの移動

DTS コンソール

  1. DTS コンソールにログインします。

  2. 左側メニューで、[データ同期] をクリックします。

  3. 左上隅で、同期インスタンスを配置するリージョンを選択します。

DMS コンソール

注

正確なナビゲーションパスは DMS コンソールモードによって異なります。 「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。

  1. DMS コンソールにログインします。

  2. 上部メニューで、[データ + AI] にポインターを合わせ、[DTS (DTS)] > [データ同期] を選択します。

  3. [データ同期タスク] の横にあるドロップダウンリストから、同期インスタンスを配置するリージョンを選択します。

ステップ2: ソースデータベースと送信先データベースの設定

[タスクの作成] をクリックし、次のパラメーターを入力します。

セクション

パラメーター

説明

N/A

タスク名

DTS タスクの名前。 DTS は自動的に名前を生成します。 タスクを簡単に識別できるよう、識別しやすい名前を使用してください。 名前は一意である必要はありません。

ソースデータベース

既存の接続の選択

ドロップダウンリストから登録済みのデータベースインスタンスを選択するか、インスタンスが登録されていない場合は手動で接続を設定します。

データベースタイプ

[PolarDB for MySQL] を選択します。

アクセス方法

[Alibaba Cloud インスタンス] を選択します。

インスタンスリージョン

ソース PolarDB for MySQL クラスターが存在するリージョン。

Alibaba Cloud アカウント間でのデータ複製

同一アカウントでの同期の場合は [いいえ] を選択します。

PolarDB クラスター ID

ソース PolarDB for MySQL クラスターの ID。

データベースアカウント

ソースクラスターのデータベースアカウント。

データベースパスワード

アカウントのパスワード。

暗号化

ソースデータベースへの接続を暗号化するかどうか。 「SSL 暗号化の設定」をご参照ください。

送信先データベース

既存の接続の選択

登録済みのインスタンスを選択するか、手動で接続を設定します。

データベースタイプ

[ClickHouse] を選択します。

アクセス方法

[Alibaba Cloud インスタンス] を選択します。

インスタンスリージョン

送信先 ApsaraDB for ClickHouse クラスターが存在するリージョン。

Alibaba Cloud アカウント間でのデータ複製

同一アカウントでの同期の場合は [いいえ] を選択します。

クラスタータイプ

送信先 ApsaraDB for ClickHouse クラスターのタイプ。

クラスター ID

送信先 ApsaraDB for ClickHouse クラスターの ID。

データベースアカウント

送信先クラスターのデータベースアカウント。

データベースパスワード

アカウントのパスワード。

[接続性のテストと次へ] をクリックします。

DTS サーバーの CIDR ブロックが、ソースデータベースと送信先データベースの両方のセキュリティグループルールに追加されていることを確認してください。 詳細については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。

ステップ3: 同期するオブジェクトの設定

[オブジェクトの設定] ステップで、次のパラメーターを設定します。

パラメーター

説明

[同期タイプ]

[スキーマ同期] 、[完全データ同期] 、[増分データ同期] を選択します。 完全データ同期は、増分同期が始まる前に履歴データを読み込みます。

[競合するテーブルの処理モード]

[事前チェックとエラー報告] (デフォルト) : 送信先にソースと同じ名前のテーブルが存在する場合、事前チェックは失敗します。 競合を避けるには、オブジェクト名マッピングを使用します。 [エラーを無視して続行]: 競合チェックをスキップします。 完全同期中、送信先の既存レコードは保持されます。増分同期中、それらのレコードは上書きされます。 スキーマが異なる場合、タスクが失敗することがあります。 注意して使用してください。

[送信先インスタンスのオブジェクト名の大文字/小文字]

データベース名、テーブル名、列名の大文字/小文字の処理を制御します。 デフォルト: [DTS のデフォルトポリシー]。 「送信先インスタンスのオブジェクト名の大文字/小文字の指定」をご参照ください。

[ソースオブジェクト]

同期するデータベース、テーブル、または列を選択し、矢印アイコンをクリックして [選択したオブジェクト] に追加します。

[選択したオブジェクト]

オブジェクトを右クリックして名前を変更するか、[一括編集] をクリックして一度に複数のオブジェクトの名前を変更します。 テーブルを右クリックして SQL フィルター条件を追加します。 「オブジェクト名のマッピング」および「フィルター条件の設定」をご参照ください。

    オブジェクト名マッピングを使用すると、名前が変更されたオブジェクトに依存するオブジェクトの同期に失敗する可能性があります。

    [次へ: 詳細設定] をクリックし、次のパラメーターを設定します。

    パラメーター

    説明

    [タスクスケジューリング用の専用クラスター]

    デフォルトでは、DTS は共有クラスターを使用します。 安定性を高めるには、専用クラスターを購入してください。 「DTS 専用クラスターとは」をご参照ください。

    [送信先データベースのタイムゾーン]

    送信先の ClickHouse クラスターに書き込まれる DateTime データに適用されるタイムゾーン。

    [失敗した接続のリトライ期間]

    タスク開始後に DTS が失敗した接続をリトライする期間。 有効な値: 10~1440 分。 デフォルト: 720 分。 少なくとも 30 分に設定してください。 複数のタスクが同じソースまたは送信先を共有する場合、最短のリトライ期間が適用されます。 リトライ中も DTS の料金は発生し続けます。

    [その他の問題のリトライ期間]

    DTS が失敗した DDL または DML 操作をリトライする期間。 有効な値: 1~1440 分。 デフォルト: 10 分。 少なくとも 10 分に設定してください。 この値は [失敗した接続のリトライ期間] より小さくする必要があります。

    [完全データ同期のスロットリングを有効にする]

    完全同期中の読み取りおよび書き込み負荷を制限します。 [ソースデータベースへの 1 秒あたりのクエリ数 (QPS)] 、[完全データ移行の RPS] 、[完全移行のデータ移行速度 (MB/s)] を設定します。 [完全データ同期] が選択されている場合にのみ使用できます。

    [増分データ同期のスロットリングを有効にする]

    増分同期中の負荷を制限します。 [増分データ同期の RPS] と [増分同期のデータ同期速度 (MB/s)] を設定します。

    [順方向および逆方向タスクのハートビートテーブルに対する SQL 操作を削除するかどうか]

    [はい] : DTS はハートビート SQL をソースに書き込まないため、タスクのレイテンシーが表示されることがあります。 [いいえ]: DTS はハートビート SQL を書き込みます。これはソースの物理バックアップとクローン作成に影響を与える可能性があります。

    [環境タグ]

    同期インスタンスを分類するためのオプションのタグ。

    [ETL の設定]

    抽出、変換、ロード (ETL) 機能を有効にするかどうか。 [はい] : コードエディターにデータ処理ステートメントを入力します。 「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。 [いいえ] : ETL をスキップします。

    [モニタリングとアラート]

    [はい] : タスクが失敗したり、同期のレイテンシーがしきい値を超えたりした場合に DTS がアラートを出すように、アラートのしきい値と通知連絡先を設定します。 「モニタリングとアラートの設定」をご参照ください。 [いいえ] : アラートなし。

    [次へ: データベースとテーブルフィールドの設定] をクリックして、ClickHouse の送信先テーブルごとに [タイプ]、[プライマリキー列]、[ソートキー]、[分散キー]、[パーティションキー] を設定します。

    DTS はデフォルトでこれらのフィールドを自動設定します。 変更するには、[定義ステータス] を [すべて] に設定します。
    [プライマリキー列] と [ソートキー] は複数の列を受け入れます。 [分散キー] は 1 つの列のみを受け入れます。
    [パーティションキー] はオプションです。 設定した場合、選択したすべての列は空でない必要があります。
    ClickHouse テーブルパラメーターの詳細については、「CREATE TABLE」をご参照ください。

    ステップ4: 事前チェックの実行

    [次へ: タスク設定の保存と事前チェック] をクリックします。

    このタスクの API パラメーターをプレビューするには、[次へ: タスク設定の保存と事前チェック] にカーソルを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。

    DTS はタスクを開始する前に事前チェックを実行します。 事前チェックが失敗した場合:

    • 失敗した項目の横にある [詳細の表示] をクリックし、問題を修正してから [再事前チェック] をクリックします。

    • 無視できるアラート項目については、[アラート詳細の確認] > [無視] > [OK] をクリックし、次に [再事前チェック] をクリックします。 アラートを無視すると、データの不整合が発生する可能性があります。

    ステップ5: インスタンスの購入

    1. [成功率] が [100%] に達するまで待ってから、[次へ: インスタンスの購入] をクリックします。

    2. [購入] ページで、次のパラメーターを設定します。

    パラメーター

    説明

    [課金方法]

    [サブスクリプション] : 前払いで、長期利用に適しています。 従量課金 : 時間単位で課金され、短期利用に適しています。 課金を停止するには、不要になったインスタンスを解放してください。

    [リソースグループ設定]

    同期インスタンスのリソースグループ。 デフォルト: [デフォルトリソースグループ]。 「リソース管理とは」をご参照ください。

    [インスタンスクラス]

    インスタンスクラスは同期速度を決定します。 「データ同期インスタンスのインスタンスクラス」をご参照ください。

    [サブスクリプション期間]

    [サブスクリプション] 課金のみで利用可能。 オプション: 1~9 か月、または 1、2、3、5 年。

    1. [Data Transmission Service (従量課金) サービス規約] を読んで選択します。

    2. [購入して開始] をクリックし、確認ダイアログボックスで [OK] をクリックします。

    タスクがタスクリストに表示されます。 そこで進行状況を監視します。

    同期されたデータのクエリ

    同期が完了したら、次のステートメントを使用して送信先 ClickHouse クラスターのデータをクエリします:

    SELECT * FROM table_name FINAL WHERE _sign > 0;

    FINAL キーワードは、同じソートキーを持つ行をマージし、最新バージョンを返します。 WHERE _sign > 0 フィルターは、削除対象としてマークされた行を除外します。

    付録

    時間範囲

    データ型

    最小値

    最大値

    Date

    1970-01-01 00:00:00

    2149-06-06 00:00:00

    Date32

    1925-01-01 00:00:00

    2283-11-11 00:00:00

    DateTime

    1970-01-01 08:00:00

    2106-02-07 14:28:15

    DateTime64

    1925-01-01 08:00:00

    2283-11-12 07:59:59

    テーブル

    送信先テーブルを手動で作成する場合 (スキーマ同期なし) 、テーブルは次の要件を満たす必要があります。

    重要

    送信先テーブルに ENGINE パラメーターが含まれている場合、ApsaraDB for ClickHouse Enterprise Edition またはコミュニティ互換エディション (V23.8 以降) では ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted) に設定してください。V23.8 より前のコミュニティ互換エディションでは、ENGINE = ReplicatedReplacingMergeTree(_version) に設定してください。他の値を設定すると、データの不整合が発生します。

    • コミュニティ互換エディション : ローカルテーブルと分散テーブルを作成します。 分散テーブル名はソーステーブル名と一致する必要があります。 ローカルテーブル名は <distributed_table_name>_local 形式に従います。

    • Enterprise Edition : ソーステーブルと同じ名前のテーブルを作成します。

    フィールド

    DTS は、送信先テーブルに次のメタデータフィールドを追加します。

    ApsaraDB for ClickHouse コミュニティ互換エディション (V23.8 以前)

    フィールド

    データ型

    デフォルト値

    説明

    _sign

    Int8

    1

    DML 操作タイプ: INSERT または UPDATE = 1 、DELETE = -1。

    _version

    UInt64

    1

    行が ClickHouse クラスターに書き込まれた時刻。

    ApsaraDB for ClickHouse Enterprise Edition またはコミュニティ互換エディション (V23.8 以降)

    フィールド

    データ型

    デフォルト値

    説明

    _sign

    Int8

    1

    DML 操作タイプ: INSERT または UPDATE = 1 、DELETE = -1。

    _is_deleted

    UInt8

    0

    行が削除されたかどうか: INSERT または UPDATE = 0 、DELETE = 1。

    _version

    UInt64

    1

    行が ClickHouse クラスターに書き込まれたときのタイムスタンプ。