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

ApsaraDB for ClickHouse:自社運用 ClickHouse クラスターから ApsaraDB for ClickHouse Enterprise Edition へのデータ移行

最終更新日:Feb 11, 2026

このトピックでは、コンソールまたは手動移行を使用して、自社運用 ClickHouse クラスターから ApsaraDB for ClickHouse Enterprise Edition クラスターにデータを移行する方法について説明します。

前提条件

  • 自社運用クラスター:データベースアカウントとパスワードが作成済みであること。このアカウントには、データベースとテーブルに対する読み取り権限および SYSTEM コマンドの実行権限が必要です。アカウントのパスワードを含む外部テーブルを移行する場合、アカウントには displaySecretsInShowAndSelect 権限も必要です。

  • 移行先クラスターすべての権限を持つデータベースアカウントとパスワードが作成済みであること。

  • ネットワーク接続

    • 自社運用クラスターと移行先クラスターが同じ VPC 内にある場合、移行先クラスターのすべてのノードの IP アドレスとその vSwitch の IPv4 CIDR ブロックを、自社運用クラスターのホワイトリストに追加します。

      • ApsaraDB for ClickHouse でのホワイトリストの設定方法については、「ホワイトリストの設定」をご参照ください。

      • 自社運用クラスターでのホワイトリストの設定方法については、ご利用のプロダクトのドキュメントをご参照ください。

      • SELECT * FROM system.clusters WHERE internal_replication = 1; コマンドを実行すると、ApsaraDB for ClickHouse クラスター内のすべてのノードの IP アドレスを確認できます。

    • 自社運用クラスターと移行先クラスターが異なる VPC 内にある場合、または自社運用クラスターがオンプレミスのデータセンターや他のクラウドプロバイダーでホストされている場合は、まずネットワーク接続の問題を解決してください。詳細については、「移行先クラスターとデータソース間のネットワーク接続を確立する方法」をご参照ください。

      説明

      この場合、異なる VPC 間の CIDR ブロックの競合を避けるために IP マッピングが必要になることがあります。IP マッピングを実行する場合は、マッピングされた IP アドレスを両方のクラスターのホワイトリストに追加してください。

移行の検証

データ移行を開始する前に、ステージング環境を作成して、ビジネスの互換性、パフォーマンス、および移行が正常に完了できるかどうかを検証します。検証が成功した後、本番環境での移行を進めてください。このステップは、潜在的な問題を早期に特定して解決し、スムーズな移行を保証し、本番環境への不要な影響を避けるために非常に重要です。

  1. 移行タスクを作成してデータを移行します。

  2. パフォーマンスボトルネック分析を実行して、移行が完了できるかどうかを判断します。

  3. 互換性は、次のいずれかの方法で検証できます:

    1. 手動検証。詳細については、「互換性分析と解決策」をご参照ください。

    2. コンソールベースの検証。詳細については、「(オプション) SQL 互換性のチェック」をご参照ください。

ソリューションの選択

移行ソリューション

メリット

デメリット

シナリオ

コンソールベースの移行

視覚的なインターフェイスを提供し、手動でのメタデータ移行が不要です。

クラスター全体の完全移行と増分移行のみをサポートします。特定のデータベース、テーブル、または履歴データのサブセットは移行できません。

クラスター全体の移行。

手動移行

どのデータベースやテーブルを移行するかを完全に制御できます。

複雑な操作と手動でのメタデータ移行が必要です。

  • 特定のデータベースまたはテーブルの移行。

  • シングルノードのコールドデータが 1 TB を超える場合。

  • シングルノードのホットデータが 10 TB を超える場合。

  • コンソールベースの移行の要件を満たさないクラスター全体の移行。

操作手順

コンソールベースの移行

注意事項

移行中

  • 移行先クラスターでは移行中のテーブルに対するマージ操作が一時停止されますが、自社運用クラスターでは一時停止されません。

    説明

    移行に時間がかかりすぎると、移行先クラスターにメタデータが過剰に蓄積されます。移行タスクは5日以内に完了することを推奨します。この期間を超えたタスクは自動的にキャンセルされます。

  • 移行先クラスターはデフォルトのクラスターを使用する必要があります。自社運用クラスターが異なる名前を使用している場合、分散テーブルのクラスター定義は自動的に default に変換されます。

サポートされる移行内容

説明

一部のテーブルエンジンは移行中に変換されます。移行後のエンジン変換の詳細については、以下の表をご参照ください。

  • データベーススキーマ:以下の表は、サポートされるデータベースエンジンとその変換ルールを示しています。

    エンジン名

    エンジン変換の説明

    Atomic

    Replicated データベースに置き換えられます

    Replicated

    変更なし

    Ordinary

    Replicated データベースに置き換えられます

  • テーブルスキーマ:以下の表は、移行をサポートするテーブルエンジンを示しています。

    エンジン名

    エンジン変換の説明

    MaterializedView

    変更なし

    View

    GenerateRandom

    Buffer

    URL

    Null

    Merge

    SharedMergeTree

    SharedVersionedCollapsingMergeTree

    SharedSummingMergeTree

    SharedReplacingMergeTree

    SharedAggregatingMergeTree

    SharedCollapsingMergeTree

    SharedGraphiteMergeTree

    MergeTree

    SharedMergeTree に置き換えられます

    ReplicatedMergeTree

    VersionedCollapsingMergeTree

    SharedVersionedCollapsingMergeTree に置き換えられます

    ReplicatedVersionedCollapsingMergeTree

    SummingMergeTree

    SharedSummingMergeTree に置き換えられます

    ReplicatedSummingMergeTree

    ReplacingMergeTree

    SharedReplacingMergeTree に置き換えられます

    ReplicatedReplacingMergeTree

    AggregatingMergeTree

    SharedAggregatingMergeTree に置き換えられます

    ReplicatedAggregatingMergeTree

    ReplicatedCollapsingMergeTree

    SharedCollapsingMergeTree に置き換えられます

    CollapsingMergeTree

    GraphiteMergeTree

    SharedGraphiteMergeTree に置き換えられます

    ReplicatedGraphiteMergeTree

  • データ:MergeTree ファミリーのテーブルからデータを増分移行します。

重要
  • 上記のデータベースおよびテーブルスキーマは正常に移行できます。その他のスキーマについては、移行中の警告またはエラーメッセージに基づいて手動で対処してください。

  • データが上記の条件を満たさない場合は、手動移行を選択してください。

クラスターへの影響

  • 自社運用クラスター

    • 自社運用クラスターからデータを読み取る間、CPU とメモリの使用量が増加します。

    • DDL 操作は許可されません。

  • 移行先クラスター

    • 移行先クラスターにデータを書き込む間、CPU とメモリの使用量が増加します。

    • 移行中のテーブルに対する DDL 操作は許可されません。移行に関与しないテーブルは影響を受けません。

    • 移行中のテーブルのマージ操作は一時停止されます。移行に関与しないテーブルはマージを続行します。

    • 移行終了後、クラスターはしばらくの間、頻繁にマージ操作を実行するため、I/O 使用量が増加し、ビジネスリクエストのレイテンシーが増加する可能性があります。潜在的なレイテンシーの影響を軽減するために、移行後のマージ時間を計算し、それに応じて計画することを推奨します。

ステップ1:自社運用クラスターのチェックとシステムテーブルの有効化

データ移行の前に、増分移行をサポートするために、自社運用クラスターで system.part_log と system.query_log が有効になっているかどうかに基づいて config.xml ファイルを変更します。

system.part_log と system.query_log が有効になっていない場合

system.part_logsystem.query_log を有効にしていない場合は、config.xml ファイルに以下の構成を追加してください。

system.part_log
<part_log>
    <database>system</database>
    <table>part_log</table>
    <partition_by>event_date</partition_by>
    <order_by>event_time</order_by>
    <ttl>event_date + INTERVAL 15 DAY DELETE</ttl>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</part_log>
system.query_log
<query_log>
    <database>system</database>
    <table>query_log</table>
    <partition_by>event_date</partition_by>
    <order_by>event_time</order_by>
    <ttl>event_date + INTERVAL 15 DAY DELETE</ttl>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>

system.part_log と system.query_log が有効になっている場合

  1. config.xml ファイル内の system.part_logsystem.query_log の構成を以下の内容と比較します。不一致がある場合は、構成を一致するように変更してください。そうしないと、移行が失敗したり、遅延したりする可能性があります。

    system.part_log
    <part_log>
        <database>system</database>
        <table>part_log</table>
        <partition_by>event_date</partition_by>
        <order_by>event_time</order_by>
        <ttl>event_date + INTERVAL 15 DAY DELETE</ttl>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    </part_log>
    system.query_log
    <query_log>
        <database>system</database>
        <table>query_log</table>
        <partition_by>event_date</partition_by>
        <order_by>event_time</order_by>
        <ttl>event_date + INTERVAL 15 DAY DELETE</ttl>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    </query_log>
  2. 構成を変更した後、drop table system.part_logdrop table system.query_log 文を実行します。ビジネス テーブルにデータを挿入すると、system.part_logsystem.query_log テーブルは自動的に再作成されます。

ステップ2:移行先クラスターを自社運用クラスターのバージョンに合わせて設定

移行先クラスターが自社運用クラスターと可能な限り同様に動作するように、移行先クラスターに接続し、compatibility パラメーターを自社運用クラスターのバージョンに一致するように設定します。

重要

互換性を低いバージョンに設定すると、ParallelReplica などの一部の新機能が無効になります。

例:

SELECT currentProfiles(); // ユーザーが使用しているプロファイルを取得
SELECT
    profile_name,
    setting_name,
    value
FROM system.settings_profile_elements
WHERE (setting_name = 'compatibility') AND (profile_name = 'xxxx'); // 互換性設定をクエリ
ALTER PROFILE XXXX SETTINGS compatibility = '23.8'; // プロファイルを変更

ステップ3:移行タスクの作成

  1. ApsaraDB for ClickHouse コンソールにログインします。クラスターリスト ページで、Enterprise Edition インスタンスのリスト を選択し、移行先クラスターの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、データの移行と同期 > インスタンスの移行 を選択します。

  3. 移行タスクの作成 をクリックします。

  4. ソースインスタンスと移行先インスタンスの選択

    設定項目

    説明

    タスク名

    タスク名には英字および数字のみを使用できます。名前は大文字と小文字を区別しない(case-insensitive)ものであり、一意である必要があります

    MigrationTask1229

    配信元インスタンスクラスター名

    自己管理型インスタンスのクラスター名を取得するには、SELECT * FROM system.clusters; を実行します。

    default

    VPC IP アドレス

    クラスター内の各シャードの IP アドレスとポートをカンマで区切って指定します。形式: IP:PORT,IP:PORT,....

    自己管理型クラスターの IP アドレスおよびポートを取得するには、以下の SQL 文を実行します:

    SELECT shard_num, replica_num, host_address as ip, port FROM system.clusters WHERE cluster = '<cluster_name>' and replica_num = 1;

    パラメーター:

    • cluster_name:宛先クラスターの名前。

    • replica_num=1 は最初のレプリカを選択します。他のレプリカを選択することも、シャードごとに手動で 1 つのレプリカを選択することも可能です。

    重要
    • ClickHouse の VPC ドメイン名または SLB アドレスは使用しないでください。

    • Alibaba Cloud で IP およびポートのマッピングが適用されている場合は、ネットワーク接続状況に応じてマップされた IP アドレスおよびポートを設定してください。

    192.168.0.5:9000,192.168.0.6:9000

    データベースアカウント

    自己管理型クラスターのデータベースアカウントです。

    test

    データベースパスワード

    自己管理型クラスターのデータベースアカウントのパスワードです。

    test******

    ソースインスタンスのカーネルバージョン

    バージョン取得 をクリックします。

    22.8.5.29

  5. ソースインスタンスのバージョンに基づいて、対応する操作を実行します:

    • ソースインスタンスのバージョンが 22.10 以降の場合は、次のステップ をクリックします。

    • ソースインスタンスのバージョンが 22.10 より前の場合は、プロンプトに従って ターゲットインスタンス情報 を入力し、次のステップ をクリックします。

    • バージョンの取得に失敗した場合は、ソースインスタンス情報が間違っている、ネットワーク接続に問題があるなどのエラーを確認します。問題を修正し、再度 バージョン取得 をクリックします。

    説明

    古いコミュニティ版と Enterprise Edition の間のパラメーター非互換性のため、ソースインスタンスのバージョンが 22.10 より前の場合、ソースから移行先へのプッシュベースの同期を使用する必要があります。この場合、移行先の IP を自社運用ネットワークにマッピングする必要があります。自社運用ネットワークと Enterprise Edition インスタンスが同じ VPC 内にあるか、VPC ピアリングで接続されている場合は、元の IP アドレスを直接使用できます。

  6. 接続性と構成のチェック

    1. [チェック開始] をクリックします。

      クリックしてチェック項目を表示します。

      • 接続性検証:自社運用インスタンスと移行先インスタンス間の完全なネットワーク接続性、およびすべてのノード間の相互アクセス。

      • アカウント権限検証ソースアカウントとパスワードが正しく、ソースインスタンスに接続できること。

      • ソースインスタンスのシステムテーブルチェック:自社運用インスタンスには、system.query_logsystem.partssystem.part_log の3つのシステムテーブルが必要です。

      • 構成チェック:自社運用インスタンスと移行先インスタンスのタイムゾーンが同じであること、および移行先インスタンスの compatibility 設定がソースのバージョンと一致していること。

    2. チェック中に、右上隅の image アイコンをクリックしてリアルタイムの進捗状況を確認します。

    3. チェックが完了したら、結果に基づいて進めます。

      [結果レベル] とチェック項目を選択し、image ボタンをクリックして詳細を表示します。結果は次のように解釈されます:

      • 成功:すべてのチェックに合格した場合、次のステップ をクリックして続行します。

      • 警告:これらはブロッキングではない問題です。ビジネスや移行に影響があるかどうかを確認してください。警告を無視するか、問題を修正して再度 [チェック開始] をクリックして再チェックできます。

      • エラー:これらはブロッキングの問題です。エラーを修正し、再度 [チェック開始] をクリックして再チェックしてください。

        エラーメッセージと解決策については、「よくある質問」をご参照ください。

  7. データベースとテーブルスキーマのチェック

    1. [チェック開始] をクリックします。

    2. チェック中に、右上隅の image アイコンをクリックしてリアルタイムの進捗状況を確認します。

    3. チェックが完了したら、結果に基づいて進めます。

      結果の解釈については、ステップ5をご参照ください。

  8. データベースとテーブルスキーマの移行

    1. [移行開始] をクリックします。

    2. 移行中に、右上隅の image アイコンをクリックしてリアルタイムの進捗状況を確認します。

    3. 検査が完了したら、検査結果に基づいて次のステップに進むことができます。

      結果の解釈については、ステップ5をご参照ください。

  9. (オプション) SQL 互換性のチェック

    SQL 互換性チェックは、自社運用インスタンスの SQL 文を移行先インスタンスで再生し、カーネルバージョン間の構文の互換性を検証します。必要に応じてこのステップを実行するかどうかを決定してください。

    • スキップする場合は、[スキップ] をクリックします。

    • チェックを実行する場合は、[リクエスト再生時間] を選択し、[チェック開始] をクリックします。チェックが成功したら、次のステップ をクリックします。チェックに失敗した場合は、ステップ5の解決策をご参照ください。

      重要
      • このチェックは構文の互換性のみを検証し、データは必要ありません。データを使用してテストするには、次のステップで部分的なデータを先に移行してください。

      • クライアントのバージョンが移行先インスタンスと一致しないために、誤検知が発生する可能性があります。必要に応じて SQL 文を手動で検証してください。

  10. 同期の開始

    1. [同期開始] をクリックします。

    2. 同期中に、右上隅の image アイコンをクリックしてリアルタイムの進捗状況を確認します。

      移行プロセスは、[停止][再起動][移行をキャンセル] の操作で制御できます。クリックして操作の意味と影響を確認してください。

      操作

      機能定義

      影響

      シナリオ

      停止

      データ移行を直ちに停止しますが、残りのテーブルスキーマの移行は続行します。

      • 一部のデータが完全に移行されない可能性があります。

      • 移行を再開する前に、重複を避けるために移行先クラスターの移行済みデータをクリーンアップしてください。

      • 完全なデータ移行後に移行タスクを停止する。

      • 自社運用クラスターへの書き込みを停止せずに、部分的なデータ移行後にテストする。

      再起動

      スキーマまたはデータ移行中に発生したエラーを解決した後、現在のステップを再試行します。

      なし

      エラーを修正した後、ブレークポイントから移行を再開する。

      移行をキャンセル

      タスクを強制的にキャンセルし、後続のステップをスキップします。

      重要

      キャンセル後、移行タスクはロックされ、変更できなくなります。前のステップ次のステップ、または リフレッシュ ボタンを使用してステップの結果を表示します。

      • 移行は終了します。移行先インスタンスには不完全なスキーマや構成が残る可能性があり、ビジネスには使用できません。

      • 移行を再開する前に、重複を避けるために移行先クラスターの移行済みデータをクリーンアップしてください。

      自社運用クラスターへの書き込みを再開するために、移行を迅速に終了する。

    3. プロセスが [データ移行] に達したら、[データ移行] タブに切り替え、image ボタンをクリックして 移行の進行状況[推定残り時間] を表示します。

      クリックして移行が完了できるかどうかを評価する方法を学びます。

      移行の成功は、移行速度と自社運用クラスターの書き込み速度の関係に依存します。

      • テスト移行速度は次のとおりです

        平均 part サイズ

        ソースインスタンスタイプ

        ソースディスクタイプ

        移行先インスタンスタイプ

        宛先記憶媒体

        クラスターノード数

        ノードあたりの移行速度

        全体の移行速度

        402.54MB

        8C32G

        PL1

        16CCU

        OSS

        16

        47MB/s

        752.34MB/s

        402.54MB

        80C384G

        PL3

        48CCU

        ESSD_L2

        8

        197.74MB/s

        1581.95MB/s

      • 移行先クラスターと自社運用クラスターの書き込み速度を比較します:

        移行速度は、part サイズ (テストでは、平均 part サイズが 100 MB から 10 GB の間で高速を維持)、インスタンスタイプディスクタイプデータ特性などの要因に依存します。したがって、テストデータは参考用です。移行先クラスターの実際の書き込み速度は、そのディスクスループットを監視して判断してください。詳細については、「クラスターの監視情報の表示」をご参照ください。

        • 移行先クラスターの書き込み速度が自社運用クラスターの書き込み速度より低い場合、移行の失敗率が高くなります。移行タスクをキャンセルし、手動移行を使用してください。

        • 移行先クラスターの書き込み速度が自社運用クラスターの書き込み速度より高い場合は、続行します。成功率を高めるために、データ量 / (移行速度 - 自社運用書き込み速度) として計算される移行期間が5日以下であることを確認してください。

      重要

      移行の進行状況 を注視します。[推定残り時間] に基づいて、セルフマネージドクラスターへの書き込みを停止し、Kafka および RabbitMQ エンジンテーブルを処理します。

      クリックして、自社運用クラスターへの書き込みを停止するタイミングを推定する方法を学びます。

      移行後のデータの完全性を確保するために、トラフィックの切り替え前にビジネスの書き込みを停止し、Kafka および RabbitMQ テーブルを削除します。次の手順を実行してください:

      1. 自社運用クラスターにログインし、次の文を実行して処理するテーブルをクエリします:

        SELECT * FROM system.tables WHERE engine IN ('RabbitMQ', 'Kafka');
      2. 対象テーブルの CREATE TABLE 文を表示します:

        SHOW CREATE TABLE <aim_table_name>;
      3. 移行先クラスターに接続し、前のステップで取得した CREATE TABLE 文を実行します。

      4. 自社運用クラスターにログインし、移行済みの Kafka および RabbitMQ エンジンテーブルを削除します。

        重要

        Kafka テーブルを削除する際は、それらを参照するマテリアライズドビューも削除してください。そうしないと、マテリアライズドビューの移行が失敗し、移行全体が失敗する原因となります。

    4. 移行の進行状況 が 100% に達し、ソースインスタンスが書き込みを停止したことを確認したら、[停止] をクリックして移行を終了し、次に進みます。

      image

    5. 同期が完了したら、終了 をクリックします。

      重要

      「同期の開始」ステップが完了すると、移行タスクはロックされ、変更できなくなります。前のステップ次のステップ、または リフレッシュ ボタンを使用してステップの結果を表示します。

ステップ4:MergeTree 以外のテーブルのビジネスデータ移行

移行中、MergeTree 以外のテーブルはスキーマ移行のみをサポートする (MySQL テーブルなど) か、まったく移行をサポートしない (Log テーブルなど) 場合があります。移行後、移行先クラスターの一部のテーブルにはスキーマがあってもデータがない場合があります。次のように手動でデータ移行を完了してください:

  1. 自社運用クラスターにログインし、次の文を実行してデータ移行が必要な MergeTree 以外のテーブルを特定します:

    SELECT
        `database` AS database_name,
        `name` AS table_name,
        `engine`
    FROM `system`.`tables`
    WHERE (`engine` NOT LIKE '%MergeTree%') AND (`engine` != 'Distributed') AND (`engine` != 'MaterializedView') AND (`engine` NOT IN ('Kafka', 'RabbitMQ')) AND (`database` NOT IN ('system', 'INFORMATION_SCHEMA', 'information_schema')) AND (`database` NOT IN (
        SELECT `name`
        FROM `system`.`databases`
        WHERE `engine` IN ('MySQL', 'MaterializedMySQL', 'MaterializeMySQL', 'Lazy', 'PostgreSQL', 'MaterializedPostgreSQL', 'SQLite')
    ))
  2. 移行先クラスターにログインし、remote 関数を使用してデータを移行します。

手動移行

自己管理型 ClickHouse クラスターから ApsaraDB for ClickHouse Enterprise Edition へのデータ移行

image.png

説明

ApsaraDB for ClickHouse Enterprise Edition では、ソーステーブルがシャーディングされているかレプリケートされているかに関わらず、対応する移行先テーブルを作成するだけです (システムが自動的に SharedMergeTree テーブルエンジンを使用するため、Engine パラメーターは省略します)。ApsaraDB for ClickHouse Enterprise Edition クラスターは、垂直および水平スケーリングを自動的に処理します。レプリケーションやシャーディングの実装を管理する必要はありません。

概要

自社運用 ClickHouse クラスターから ApsaraDB for ClickHouse Enterprise Edition クラスターへのデータ移行手順は次のとおりです。

  1. ソースクラスターに読み取り専用ユーザーを追加します。

  2. ソーステーブルのスキーマを移行先クラスターにコピーします。

  3. ソースクラスターが外部ネットワークアクセスをサポートしている場合は、ソースクラスターから移行先クラスターにデータをプルします。そうでない場合は、ソースクラスターから移行先クラスターにデータをプッシュします。

  4. (オプション) 移行先クラスターからソースクラスターの IP アドレスを削除できます。

  5. ソースクラスターから読み取り専用ユーザーを削除します。

手順

  1. ソースクラスターで次の操作を実行します (ソーステーブルにはデータが含まれています):

    1. テーブル db.table に読み取り専用ユーザーを追加します。

      CREATE USER exporter
      IDENTIFIED WITH SHA256_PASSWORD BY 'password-here'
      SETTINGS readonly = 1;
      GRANT SELECT ON db.table TO exporter;
    2. ソーステーブルのスキーマをコピーします。

      SELECT create_table_query
      FROM system.tables
      WHERE database = 'db' and table = 'table'
  2. 移行先クラスターで次の操作を実行します。

    1. データベースを作成します。

      CREATE DATABASE db
    2. ソーステーブルの CREATE TABLE 文を使用して移行先テーブルを作成します。

      説明

      CREATE TABLE 文を実行する際、ENGINE を SharedMergeTree に変更しますが、ApsaraDB for ClickHouse Enterprise Edition クラスターは常にテーブルをレプリケートし、正しいパラメーターを提供するため、パラメーターは含めないでください。ORDER BYPRIMARY KEYPARTITION BYSAMPLE BYTTL、および SETTINGS 句は、移行先の ApsaraDB for ClickHouse Enterprise Edition クラスターでテーブルが正しく作成されるように保持してください。

      CREATE TABLE db.table ...
    3. Remote 関数を使用してデータをプルまたはプッシュします。

      説明

      ソースの ClickHouse サーバーが外部ネットワークからアクセスできない場合は、データをプルする代わりにプッシュします。なぜなら、Remote 関数は SELECT と INSERT の両方の操作で機能するためです。

      • 移行先クラスターで、Remote 関数を使用してソースクラスターのソーステーブルからデータをプルします。

        image.png

        INSERT INTO db.table SELECT * FROM
        remote('source-hostname:9000', db, table, 'exporter', 'password-here')
      • ソースクラスターで、Remote 関数を使用して移行先クラスターにデータをプッシュします。

        image.png

        説明

        Remote 関数がご利用の ApsaraDB for ClickHouse Enterprise Edition クラスターに接続できるようにするには、ソースクラスターの IP アドレスを移行先クラスターのホワイトリストに追加する必要があります。詳細については、「ホワイトリストの設定」をご参照ください。

        INSERT INTO FUNCTION
        remote('target-hostname:9000', 'db.table',
        'default', 'PASS') SELECT * FROM db.table

よくある質問

接続性と構成チェック中のエラーメッセージと解決策

エラーメッセージ

意味

解決策

Tcp connectivity check failed for '{host}:{port}':{error}.

自社運用クラスターへのネットワーク接続がタイムアウトしました。

エラーメッセージに基づいてネットワークの問題をトラブルシューティングします。

No such cluster: {cluster}, please run 'SELECT DISTINCT(cluster) FROM system.clusters;' to check

移行タスク作成時に設定されたクラスターが自社運用クラスターに存在しません。

SQL を使用して自社運用クラスターで利用可能なクラスターをクエリし、移行タスクの構成を更新します。

not exists

自社運用クラスターに次のシステムテーブルのいずれかまたは複数がありません:system.query_logsystem.partssystem.part_log

自社運用クラスターに不足しているシステムテーブルを作成します。

Timezone mismatch with source, which may cause time data anomalies.

自社運用クラスターと移行先クラスターのタイムゾーンが一致しません。

タイムゾーンを一致するように変更します。

Compatibility mismatch with source version, which may cause incompatibility.

移行先クラスターの互換性設定が自社運用クラスターのバージョンと一致しません。

移行先クラスターの互換性設定を自社運用クラスターのバージョンに一致するように調整します。

重要

互換性を低いバージョンに設定すると、ParallelReplica などの一部の新機能が無効になります。

スキーマチェック中のエラーメッセージと解決策

エラーメッセージ

意味

解決策

ERROR: Not consistent across nodes.

自社運用クラスター内のノード間でデータベーステーブルに一貫性がありません。

自社運用クラスター内のノード間での不整合を確認し、解決します。

ERROR: Cannot get secrets (shown as [HIDDEN]), please set display_secrets_in_show_and_select=1 (restart required).

テーブルのパスワードが非表示になっています。

display_secrets_in_show_and_select=1 を設定して再起動します。

注:これには、アカウントに displaySecretsInShowAndSelect 権限が必要です。

ERROR: Unsupported engine.

自社運用クラスターのデータベースエンジンは移行をサポートしていません。

移行先でサポートされているデータベースエンジンへの切り替えを検討してください。

WARN:Unsupported engine, it will be automatically replaced with a Replicated database to bypass migration exceptions.

自社運用クラスターのデータベースエンジンは移行をサポートしていません。

システムは移行例外を回避するために、自動的に Replicated データベースに置き換えます。

WARN:Unsupported engine, please replace the data synchronization capability with DTS, or create a same-name database to bypass migration exceptions.

自社運用クラスターのデータベースエンジンは移行をサポートしていません。

同期には DTS (Data Transmission Service) を使用するか、同名のデータベースを作成して移行例外を回避します。

WARN:Unsupported engine, it will be automatically ignored during migration.

自社運用クラスターのデータベースエンジンは移行をサポートしていません。

移行中に自動的に無視されます。

WARN:It's not recommended to use the Distributed engine as it will cause scaling issues in enterprise instances. Please drop this table and query the underlying MergeTree table directly。

ApsaraDB for ClickHouse Enterprise Edition では、分散テーブルの使用は推奨されません。

自社運用クラスターの分散テーブルを削除し、移行後に基になる MergeTree テーブルを直接クエリします。

WARN:Please confirm referenced IP addresses are accessible.

外部エンジンが参照されています。アクセスに問題が発生する可能性がありますが、保証はされません

参照されている IP アドレスが移行先インスタンスからアクセス可能かどうかを確認します。アクセスできない場合は、ネットワーク接続を確立し、IP をホワイトリストに追加します。

WARN:Only structure, does not support data migration.

一部のエンジンでは、テーブルスキーマのみが移行され、データ移行はサポートされていません。

remote 関数や他の方法を使用して手動でデータを移行します。

WARN:Unsupported engine, please create a same-name MergeTree table manually to bypass migration exceptions.

一部のエンジンではデータ移行がサポートされていません。

移行先クラスターに同名の MergeTree テーブルを作成し、手動でデータを移行します。

WARN:Ignored engine, please create table manually.

一部のエンジンではデータ移行がサポートされていません。

手順のステップ4をご参照ください。

ERROR: Table has data in destination cluster.

スキーマチェック中、移行先インスタンスの対応するテーブルは空である必要があります。

移行先インスタンスの対応するテーブルからデータを削除します。

ERROR: Unsupported function origin.

ユーザー定義関数 (Function(function.origin="SQLUserDefined")) のみが移行をサポートしています。

移行先インスタンスに対応する関数を手動で作成します。

その他

移行中のその他の問題とその解決策については、「よくある質問」をご参照ください。