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

ApsaraDB for ClickHouse:ApsaraDB for ClickHouse Enterprise Edition クラスター間のデータ移行

最終更新日:Jan 22, 2026

このトピックでは、ApsaraDB for ClickHouse Enterprise Edition クラスター間でデータを移行する方法について説明します。この方法では、remote 関数を使用して、ネストされた SELECT を含む INSERT INTO 文を実行します。このプロセスにより、移行のための効率的かつ直接的なデータレプリケーションが可能になります。

利用シーン

  • 復元されたバックアップからのデータ移行。

  • 開発サービスから準本番サービスへ、または準本番サービスから本番サービスへのデータコピー。

操作手順

ステップ 1:ソースクラスターの権限設定とテーブルスキーマの取得

  1. データ移行中にソースクラスターからデータをクエリするための読み取り専用ユーザーを作成します。

    CREATE USER exporter
    IDENTIFIED WITH SHA256_PASSWORD BY 'password-here'
    SETTINGS readonly = 1;
  2. 特定のデータベーステーブルに対するクエリ権限を付与します。

    GRANT SELECT ON test_db.test_tb TO exporter;
  3. ソーステーブルのスキーマを取得します。

    SELECT create_table_query
    FROM system.tables
    WHERE database = 'test_db' AND TABLE = 'test_tb'

ステップ 2:ターゲットクラスターでのテーブルスキーマの作成

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

    CREATE DATABASE test_db
  2. ステップ 1 で取得したソーステーブルのスキーマ (CREATE TABLE 文) を使用して、ターゲットデータベースにテーブルを作成します。

    CREATE TABLE test_db.test_tb ...

ステップ 3:ホワイトリストの設定

データ移行中、ソースクラスターとターゲットクラスターは相互に接続できる必要があります。この接続を有効にするには、次の設定を行います:

  • ソースクラスターの IP アドレスをターゲットクラスターのホワイトリストに追加します。

  • ターゲットクラスターの IP アドレスをソースクラスターのホワイトリストに追加します。

説明

SELECT * FROM system.clusters; を実行すると、ApsaraDB for ClickHouse Enterprise Edition クラスターの IP アドレスを表示できます。

ステップ 4:データ移行の実行

次の SQL 文を実行して、remote 関数を使用し、ソースクラスターからデータを読み取り、ターゲットテーブルに挿入できます。

INSERT INTO test_db.test_tb 
SELECT * 
FROM remote(
  'source-hostname:9000', -- ソースクラスターのエンドポイントとポート
  'test_db',              -- ソースデータベース名
  'test_tb',              -- ソーステーブル名
  'exporter',             -- ユーザー名
  'password-here'         -- ユーザーパスワード
);

ステップ 5:(オプション) セキュアな構成と環境のクリーンアップ

  1. ターゲットクラスターの IP アドレスアクセスリストを作成します。

    データ移行が完了した後、ターゲットクラスターが新しい本番環境として機能する場合は、ホワイトリストを設定します。

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

    DROP USER exporter;
  3. ソースクラスターのホワイトリストからターゲットクラスターの IP アドレスを削除します。