全部產品
Search
文件中心

ApsaraDB for ClickHouse:雲資料庫 ClickHouse 企業版叢集間的資料移轉

更新時間:Jan 21, 2026

本文介紹在雲資料庫 ClickHouse 企業版叢集之間進行資料移轉的方法。該方法利用remote函數,通過執行一個帶有嵌套SELECTINSERT INTO語句,即可實現高效、直接的資料複製,完成資料移轉。

適用情境

  • 從還原的備份中遷移資料。

  • 從開發服務複製資料到預發服務(或從預發到生產)。

操作步驟

步驟一:配置源叢集許可權並擷取表結構

  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'

步驟二:在目的地組群上建立表結構

  1. 建立資料庫。

    CREATE DATABASE test_db
  2. 使用步驟一中擷取的源表結構(CREATE TABLE語句),在目標資料庫上建立表。

    CREATE TABLE test_db.test_tb ...

步驟三:設定白名單

資料移轉過程中,源叢集和目的地組群必須允許互相串連,需完成以下設定:

  • 將源叢集的IP地址添加到目的地組群的白名單中。

  • 將目的地組群的IP地址添加到源叢集的白名單中。

說明

您可以通過SELECT * FROM system.clusters;查看雲資料庫 ClickHouse 企業版叢集的IP地址。

步驟四:執行資料移轉

執行以下SQL,通過remote函數從源叢集中讀取資料並插入到目標表中。

INSERT INTO test_db.test_tb 
SELECT * 
FROM remote(
  'source-hostname:9000', -- 源叢集的訪問地址和連接埠
  'test_db',              -- 來源資料庫名稱
  'test_tb',              -- 源表名稱
  'exporter',             -- 使用者名稱
  'password-here'         -- 使用者密碼
);

步驟五:(可選)安全配置與環境清理

  1. 為目的地組群建立IP訪問列表。

    資料移轉完成後,如需將目的地組群作為新的生產環境對外提供服務,需設定白名單

  2. 刪除源叢集的唯讀使用者。

    DROP USER exporter;
  3. 在源叢集的白名單設定中,刪除本次遷移添加的目的地組群IP地址。