全部產品
Search
文件中心

E-MapReduce:StarRocks跨叢集資料移轉工具

更新時間:Feb 11, 2026

本文將指導您如何使用StarRocks跨叢集資料移轉工具。該工具提供全量及增量同步處理功能,旨在為您解決遷移過程中源叢集與目的地組群的資料同步問題,確保資料一致性的同時,最大限度減少對業務營運的影響。

遷移準備

在開始遷移前,請完成以下準備工作,確保遷移過程順利。

適用情境與版本相容性

本工具主要適用於以下情境:

  • 從自建StarRocks或EMR on ECS(半託管)叢集遷移至Serverless StarRocks。

  • 在Serverless StarRocks執行個體之間進行資料移轉。

版本要求

組件

說明

源叢集

版本無特定要求。

目的地組群

  • 不支援遷移至2.x系列的目的地組群;版本須為3.1.9、3.2.4及其後續版本。

  • 若源叢集為存算分離,目的地組群必須為存算分離且版本 ≥ 3.5.7。

  • 建議升級至最新版本以獲得最佳相容性與效能。

使用限制與風險

  • 遷移內容:僅支援同步StarRocks的內表、視圖和物化視圖。不支援外表。依賴外表的視圖或物化視圖在遷移後可能會失效,請提前排查。

  • 自增列(AUTO_INCREMENT):不支援遷移包含自增列的表。

  • 資料寫入:遷移期間,禁止在目的地組群對正在同步的表執行任何寫入或DDL操作,以免資料錯亂或遷移失敗。查詢操作是允許的。

  • 即時寫入源叢集的表:該遷移工具的寫入效能無法保障與即時寫入任務的即時資料同步。建議採用即時任務雙寫方案,以確保雙方叢集的資料一致性。詳情請參見從自建StarRocks叢集向Serverless StarRocks的遷移方案

資源與網路準備

部署環境

您需要準備一台獨立的Elastic Compute Service來部署和運行遷移工具。

  • 規格建議:選擇至少 4 vCPU 8 GiB 或更高配置的執行個體,以保證遷移效率。

  • 建立執行個體:請參見自訂購買執行個體完成ECS建立。

網路連通性

遷移工具、源叢集和目的地組群之間必須網路互連。網路拓撲與流量方向如下:

image
  1. 遷移工具 (ECS) -> 源叢集 (FE/BE)

  2. 遷移工具 (ECS) -> 目的地組群 (FE/BE)

  3. 目的地組群 (BE) -> 源叢集 (BE)

連接埠要求

請確保在相關安全性群組、防火牆或網路ACL中已允許存取以下連接埠:

組件

連接埠名稱

預設連接埠號碼

協議

說明

FE

FE QueryPort

9030

TCP

SQL查詢連接埠

FE

FE RpcPort

9020

TCP

內部RPC連接埠

FE

FE HttpPort

8030

TCP

HTTP服務連接埠

BE

BE BePort

9060

TCP

BE間通訊連接埠

BE

BE HttpPort

8040

TCP

BE的HTTP服務連接埠

說明

如未使用預設連接埠,請通過 SHOW FRONTENDS;SHOW BACKENDS; 命令確認實際連接埠。

連通性檢查

在開始遷移前,務必在部署遷移工具的ECS執行個體上執行以下檢查。

  1. 檢查ECS到各叢集的連通性

    • 目的:驗證ECS到源、目的地組群所有FE和BE節點的網路鏈路。

    • 操作:在ECS上對每個FE和BE節點的IP執行telnet命令。

      # 檢查到源叢集
      telnet <source_fe_ip> 9030
      telnet <source_fe_ip> 9020
      telnet <source_fe_ip> 8030
      
      # 檢查到目的地組群
      telnet <target_fe_ip> 9030
      telnet <target_fe_ip> 9020
      telnet <target_fe_ip> 8030
  2. 檢查目的地組群到源叢集的連通性

    • 同一VPC:源叢集與目的地組群位於同一VPC內,預設情況下網路互連。

    • 不同VPC:源叢集和目的地組群位於不同VPC,需要通過VPC對等串連實現網路互連,詳情請參見VPC對等串連

    • VPC與本機資料中心:源叢集是本機資料中心, 目的地組群是VPC。您可以通過專線串連或VPN串連實現兩者之間的互聯,詳情請參見VPC串連本機資料中心

臨時關閉Compaction

重要

如果您的目的地組群是 3.3.13之前版本的存算分離叢集,您必須在遷移前手動關閉Compaction。而對於3.3.13及之後的版本,則無需關閉Compaction,建議3.3.13之前版本升級至最新版本。

操作步驟

  1. 目的:關閉目的地組群的Compaction功能,以相容舊版本遷移邏輯。

  2. 操作

    1. 登入目標StarRocks執行個體的參數配置頁面。

    2. 搜尋參數 lake_compaction_max_tasks

    3. 將其值修改為 0;若參數值為0,則無需進行調整。

    4. 提交修改並根據提示重啟叢集使配置生效。

遷移完成後,必須立即恢複此配置,詳見步驟六:完成遷移與業務切換

遷移流程

步驟一:配置叢集

源叢集是存算一體

目的地組群配置

  1. 在目標StarRocks執行個體的參數配置頁面,新增或修改以下配置項:

    檔案

    Key

    Value

    說明

    FE

    emr_serveless_replication_enable

    true

    必須配置。啟用資料移轉功能。

    FE

    enable_legacy_compatibility_for_replication

    true

    按需配置。如果源叢集版本為2.4.0及以上,且從未從2.3.18及以下版本升級而來,則無需配置此項。否則,必須配置。

    default_warehouse

    compact_threads

    將預設值修改為當前BE/CN節點CU的兩倍

    遷移完成後,將其恢複為原來的預設值。

  2. 如果目的地組群版本低於3.3.13,需在SQL Editor中執行以下命令:

    SET GLOBAL enable_filter_unused_columns_in_scan_stage=false;

源叢集是存算分離

源叢集配置

為防止在遷移過程中源叢集的自動清理(vacuum)機制刪除正在被遷移的 Tablet 中繼資料,需要臨時調大 lake_autovacuum_grace_period_minutes 參數。遷移完成後,務必恢複該配置的值,否則會導致源叢集儲存空間持續放大。

說明

在遷移期間,由於需要關閉源叢集的多版本Vacuum,不建議長期運行遷移工具。否則,將會導致源叢集版本數量的過度積累、小檔案數量的膨脹,以及OSS儲存的顯著擴大。

-- 在源叢集 FE 上執行
ADMIN SET FRONTEND CONFIG ("lake_autovacuum_grace_period_minutes" = "10000000");

目的地組群配置

  1. 在目標StarRocks執行個體的參數配置頁面,新增或修改以下配置項:

    檔案

    Key

    Value

    說明

    FE

    emr_serveless_replication_enable

    true

    必須配置。啟用資料移轉功能。

    FE

    enable_legacy_compatibility_for_replication

    true

    按需配置。如果源叢集版本為2.4.0及以上,且從未從2.3.18及以下版本升級而來,則無需配置此項。否則,必須配置。

    default_warehouse

    compact_threads

    將預設值修改為當前BE/CN節點CU的兩倍

    遷移完成後,將其恢複為原來的預設值。

  2. 在目標StarRocks執行個體中建立指向源叢集的 Storage Volume。

    1. 擷取源叢集 Storage Volume 定義。

      -- 查看所有 Storage Volume
      SHOW STORAGE VOLUMES;
      
      -- 以 builtin_storage_volume 為例,擷取其詳細定義
      DESCRIBE STORAGE VOLUME builtin_storage_volume;
    2. 在目標StarRocks執行個體中執行 CREATE 語句。

      說明

      Storage Volume的命名必須以src_首碼開頭,後接源叢集對應Storage Volume的名稱。Storage Volume的建立語句應與源叢集保持一致。目前,遷移過程中不支援啟用instance profile(aws.s3.use_instance_profile = true)的Storage Volume。

      CREATE STORAGE VOLUME src_ossOdsEvent2
      TYPE = S3
      LOCATIONS = ("s3://cn-hangzhou")
      PROPERTIES
      (
          "enabled" = "true",
          "aws.s3.region" = "cn-hangzhou",
          "aws.s3.endpoint" = "oss-cn-hangzhou-internal.aliyuncs.com",
          "aws.s3.use_aws_sdk_default_behavior" = "false",
          "aws.s3.use_instance_profile" = "false",
          "aws.s3.access_key" = "xxxx", // 必填
          "aws.s3.secret_key" = "xxxxx", // 必填
          "aws.s3.enable_partitioned_prefix" = "false"
      );

步驟二:擷取源叢集Token

說明

僅源叢集是存算一體,需要擷取源叢集Token。對於存算分離的源叢集,直接跳過此步驟。

  • 自建叢集或EMR on ECS(半託管)叢集

    (推薦)方法一:通過FE節點的中繼資料擷取Token

    登入FE節點所在的伺服器,執行以下命令擷取叢集Token。

    cat fe/meta/image/VERSION | grep token

    如果您使用的是EMR on ECS的叢集,請登入叢集的Master節點,然後執行以下命令擷取叢集token。

    cat /mnt/disk1/starrocks/meta/image/VERSION | grep token

    返回資訊如下所示。其中token欄位即為當前叢集的Token。

    token=wwwwwwww-xxxx-yyyy-zzzz-uuuuuuuuuu

    方法二:通過FE的HTTP連接埠擷取Token

    在源叢集的FE節點上,執行以下命令擷取Token。

    curl -v http://<fe_host>:<fe_http_port>/check

    其中,涉及參數如下:

    • <fe_host>:叢集FE的IP地址或FQDN。

    • <fe_http_port>:叢集FE的HTTP連接埠(預設為8030,EMR半託管環境為18030)。

    如果您使用的是EMR on ECS的叢集,則命令執行後會返回類似以下內容。其中token欄位即為當前叢集的Token。

    * Trying xxx.xx.xxx.xx...
    * TCP_NODELAY set
    * Connected to xxx.xx.xxx.xx (xxx.xx.xxx.xx) port 18030 (#0)
    > GET /check HTTP/1.1
    > Host: xxx.xx.xxx.xx:18030
    > User-Agent: curl/7.29.0
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < content-length: 0
    < cluster_id: yyyyyyyyyyy
    < content-type: text/html
    < token: wwwwwwww-xxxx-yyyy-zzzz-uuuuuuuuuu
    < connection: keep-alive
    <
    * Connection #0 to host xxx.xx.xxx.xx left intact
  • Serverless StarRocks執行個體

    在進行Serverless StarRocks執行個體間的資料移轉時,您可以在StarRocks執行個體的執行個體詳情頁面的基礎資訊地區,單擊擷取遷移Token,以擷取待遷移執行個體所需的Token。

步驟三:部署與配置遷移工具

源叢集是存算一體

  1. 下載並上傳

    1. 單擊starrocks-cluster-sync-3.0.0.tar.gz以擷取EMR Serverless StarRocks遷移工具。

    2. 串連ECS執行個體,並上傳擷取到的遷移工具,詳情請參見串連執行個體使用Workbench上傳或下載檔案

  2. 配置遷移工具

    修改starrocks-cluster-sync-3.0.0/conf/目錄下的sync.properties設定檔。

    必填參數

    以下參數是遷移任務成功運行所必需的,請根據實際環境正確配置。

    參數

    說明

    source_fe_host

    源叢集FE的IP地址或FQDN。

    source_fe_query_port

    源叢集FE的查詢連接埠(query_port)。

    source_cluster_user

    用於登入源叢集的使用者名稱。

    source_cluster_password

    用於登入源叢集的使用者密碼。

    source_cluster_token

    源叢集的Token。

    target_fe_host

    目的地組群FE的IP地址或FQDN。

    target_fe_query_port

    目的地組群FE的查詢連接埠(query_port)。

    target_cluster_user

    用於登入目的地組群的使用者名稱。

    target_cluster_password

    用於登入目的地組群的使用者密碼。

    include_data_list

    需要遷移的資料庫和表,多個對象時使用逗號(,)分隔。例如,db1,db2.tbl2,db3

    說明

    如果您需要遷移叢集中所有資料庫和表,則無須配置該項。

    exclude_data_list

    不需要遷移的資料庫和表,多個對象時使用逗號(,)分隔。例如,db1,db2.tbl2,db3。該參數優先於include_data_list生效。

    說明

    如果您需要遷移叢集中所有資料庫和表,則無須配置該項。

    說明

    在同時配置include_data_listexclude_data_list時,最終需要遷移的資料表是從include_data_list中排除exclude_data_list所指定的表。例如,配置include_data_list=db1.tbl1,db1.tbl2,db1.tbl3以及exclude_data_list=db1.tbl2時,最終生效的資料表為db1.tbl1db1.tbl3

    選擇性參數

    以下參數可以根據需求進行調整,但通常保持預設值即可。

    參數

    說明

    target_cluster_storage_volume

    當目的地組群是存算分離叢集時,用於指定待遷移的表所在的Storage Volume,預設為空白,表示使用目的地組群的預設儲存卷。

    target_cluster_replication_num

    指定目的地組群表的副本數量,預設為 -1,表示目的地組群表的副本數量與源叢集保持一致。

    target_cluster_max_disk_used_percent

    遷移工具對目的地組群 BE 磁碟檢查閾值,當任何一個 BE 的最大磁碟使用率大於這個配置的百分比,遷移工具會自動結束,防止磁碟打滿。預設為90

    max_replication_data_size_per_job_in_gb

    遷移工具觸發資料同步任務的(分區)資料大小閾值。單位:GB。如果要遷移的資料大小超過此值,將產生多個資料同步任務,預設值為 1024

    非必要不調整的參數

    以下參數通常可以使用預設值,無需調整。僅在特殊情境下需要修改時,請根據實際需求進行調整。

    參數

    預設值

    說明

    one_time_run_mode

    false

    選擇是否關閉增量同步處理模式。啟用後,系統將僅執行一次全量資料同步而不進行後續的增量資料更新,即每張表將只同步一次。

    meta_job_interval_seconds

    180

    遷移工具擷取源叢集和目的地組群中繼資料的周期,單位為秒。

    meta_job_threads

    4

    遷移工具擷取源叢集和目的地組群中繼資料的線程數量。

    ddl_job_interval_seconds

    10

    遷移工具在目的地組群執行DDL的周期,單位為秒。

    ddl_job_batch_size

    10

    遷移工具在目的地組群執行DDL的批大小。

    ddl_job_allow_drop_target_only

    false

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的資料庫和資料表。

    ddl_job_allow_drop_partition_target_only

    true

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的分區。

    ddl_job_allow_drop_schema_change_table

    true

    遷移工具是否自動刪除源叢集和目的地組群Schema不一致的表。

    ddl_job_allow_drop_inconsistent_partition

    true

    遷移工具是否自動刪除源叢集和目的地組群資料分布方式不一致的分區。

    ddl_job_allow_drop_materialized_view_target_only

    false

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的物化視圖。

    ddl_job_allow_drop_view_target_only

    false

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的邏輯視圖。

    ddl_job_allow_drop_bitmap_index_target_only

    true

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的bitmap索引。

    replication_job_interval_seconds

    15

    遷移工具觸發資料同步任務的周期,單位為秒。

    replication_job_batch_size

    10

    遷移工具觸發資料同步任務的批大小。

    compaction_job_interval_seconds

    30

    遷移工具在目的地組群對遷移完成的表執行Compaction的周期,單位為秒。

    compaction_job_batch_size

    10

    遷移工具在目的地組群對遷移完成的表執行Compaction的批大小。

源叢集是存算分離

  1. 下載並上傳

    1. 單擊starrocks-cluster-sync-3.0.0.tar.gz以擷取EMR Serverless StarRocks遷移工具。

    2. 串連ECS執行個體,並上傳擷取到的遷移工具,詳情請參見串連執行個體使用Workbench上傳或下載檔案

  2. 配置 sync.properties

    修改starrocks-cluster-sync-3.0.0/conf/目錄下的sync.properties設定檔。

    必填參數

    以下參數是遷移任務成功運行所必需的,請根據實際環境正確配置。

    參數

    說明

    source_fe_host

    源叢集FE的IP地址或FQDN。

    source_fe_query_port

    源叢集FE的查詢連接埠(query_port)。

    source_cluster_user

    用於登入源叢集的使用者名稱。

    source_cluster_password

    用於登入源叢集的使用者密碼。

    target_fe_host

    目的地組群FE的IP地址或FQDN。

    target_fe_query_port

    目的地組群FE的查詢連接埠(query_port)。

    target_cluster_user

    用於登入目的地組群的使用者名稱。

    target_cluster_password

    用於登入目的地組群的使用者密碼。

    target_cluster_use_builtin_storage_volume_only

    配置為true。強制目的地組群表使用其內建的 storage volume,而非繼承源叢集的配置。

    target_cluster_use_cloud_native_pk_index

    配置為true。將主鍵模型(PK)表的索引類型從 LOCAL 轉換為 CLOUD_NATIVE。

    include_data_list

    需要遷移的資料庫和表,多個對象時使用逗號(,)分隔。例如,db1,db2.tbl2,db3

    說明

    如果您需要遷移叢集中所有資料庫和表,則無須配置該項。

    exclude_data_list

    不需要遷移的資料庫和表,多個對象時使用逗號(,)分隔。例如,db1,db2.tbl2,db3。該參數優先於include_data_list生效。

    說明

    如果您需要遷移叢集中所有資料庫和表,則無須配置該項。

    說明

    在同時配置include_data_listexclude_data_list時,最終需要遷移的資料表是從include_data_list中排除exclude_data_list所指定的表。例如,配置include_data_list=db1.tbl1,db1.tbl2,db1.tbl3以及exclude_data_list=db1.tbl2時,最終生效的資料表為db1.tbl1db1.tbl3

    選擇性參數

    以下參數可以根據需求進行調整,但通常保持預設值即可。

    參數

    說明

    target_cluster_storage_volume

    當目的地組群是存算分離叢集時,用於指定待遷移的表所在的Storage Volume,預設為空白,表示使用目的地組群的預設儲存卷。

    target_cluster_replication_num

    指定目的地組群表的副本數量,預設為 -1,表示目的地組群表的副本數量與源叢集保持一致。

    target_cluster_max_disk_used_percent

    遷移工具對目的地組群 BE 磁碟檢查閾值,當任何一個 BE 的最大磁碟使用率大於這個配置的百分比,遷移工具會自動結束,防止磁碟打滿。預設為90

    max_replication_data_size_per_job_in_gb

    遷移工具觸發資料同步任務的(分區)資料大小閾值。單位:GB。如果要遷移的資料大小超過此值,將產生多個資料同步任務,預設值為 1024

    非必要不調整的參數

    以下參數通常可以使用預設值,無需調整。僅在特殊情境下需要修改時,請根據實際需求進行調整。

    參數

    預設值

    說明

    one_time_run_mode

    false

    選擇是否關閉增量同步處理模式。啟用後,系統將僅執行一次全量資料同步而不進行後續的增量資料更新,即每張表將只同步一次。

    meta_job_interval_seconds

    180

    遷移工具擷取源叢集和目的地組群中繼資料的周期,單位為秒。

    meta_job_threads

    4

    遷移工具擷取源叢集和目的地組群中繼資料的線程數量。

    ddl_job_interval_seconds

    10

    遷移工具在目的地組群執行DDL的周期,單位為秒。

    ddl_job_batch_size

    10

    遷移工具在目的地組群執行DDL的批大小。

    ddl_job_allow_drop_target_only

    false

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的資料庫和資料表。

    ddl_job_allow_drop_partition_target_only

    true

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的分區。

    ddl_job_allow_drop_schema_change_table

    true

    遷移工具是否自動刪除源叢集和目的地組群Schema不一致的表。

    ddl_job_allow_drop_inconsistent_partition

    true

    遷移工具是否自動刪除源叢集和目的地組群資料分布方式不一致的分區。

    ddl_job_allow_drop_materialized_view_target_only

    false

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的物化視圖。

    ddl_job_allow_drop_view_target_only

    false

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的邏輯視圖。

    ddl_job_allow_drop_bitmap_index_target_only

    true

    遷移工具是否自動刪除僅在目的地組群存在而源叢集不存在的bitmap索引。

    replication_job_interval_seconds

    15

    遷移工具觸發資料同步任務的周期,單位為秒。

    replication_job_batch_size

    10

    遷移工具觸發資料同步任務的批大小。

    compaction_job_interval_seconds

    30

    遷移工具在目的地組群對遷移完成的表執行Compaction的周期,單位為秒。

    compaction_job_batch_size

    10

    遷移工具在目的地組群對遷移完成的表執行Compaction的批大小。

步驟四:啟動與停止遷移工具

  1. 啟動遷移:進入工具根目錄,執行啟動指令碼。

    ./bin/start.sh
    說明
    • 遷移工具將定期檢查目的地組群的資料狀態,以確認其是否與源叢集同步。如果發現目的地組群資料版本落後,工具將自動啟動新的資料移轉任務。

    • 若源叢集在遷移過程中不斷有新資料加入,資料同步將持續進行直到目的地組群的資料完全與源叢集相匹配。

  2. 停止遷移:遷移工具不會自動停止在確認資料完全同步並完成業務切換後,您必須手動停止工具。

    終止類型

    適用情境

    操作說明

    永久終止

    表進度和任務進度都達到100%,且源叢集無新資料寫入。

    終止任務後進行資料校正。

    臨時終止

    需要中途驗證資料。

    校正完成後可重新啟動,繼續同步增量資料。

步驟五:查看遷移進度與驗證資料

查看遷移進度

您可以通過遷移工具日誌log/sync.INFO.log查看遷移進度,包括同步任務進度和同步表進度。

  • 正在同步的表:搜尋索引鍵Running table detail,會輸出當前正在遷移的表名稱。

    image

  • 同步任務進度:搜尋索引鍵Sync job progress,如果進度顯示100%,則說明本輪檢查周期內的所有遷移任務完成,但不代表所有表資料移轉完成。

    說明

    顯示本輪檢查周期內所有同步任務的完成情況。由於源叢集資料不斷更新,工具會定期檢測新增資料並啟動新的同步任務,因此進度百分比可能會下降(如從100%降至90%),這是正常現象。

    image

    以下是與進度相關的參數詳情。

    參數

    說明

    total

    此次資料移轉中的總作業數。

    ddlPending

    待執行的DDL作業數量。

    ddlRunning

    當前正在執行的DDL作業的數量,該參數值通常為0或1。

    jobPending

    待執行的資料同步作業數量。

    sent

    已發送但尚未開始的資料同步作業數量。

    running

    正在運行中的資料同步作業數量。

    finished

    已成功執行完畢的資料同步作業數量。

    failed

    執行失敗的資料同步作業累積數量。通常,此數值可忽略,因為遷移過程中會周期性地重試失敗的作業。

    unknown

    狀態未知的作業數量。

  • 同步表進度:搜尋索引鍵Sync table progress

    說明

    同步表進度說明

    同步表進度表示已至少成功完成一次同步的表數量占所配置總表數的比例。

    • 表進度為 100%:所有配置的表均已至少完成一次全量同步,該值不會再下降。

      • 任務進度 = 100%:所有表的資料已完全同步,源叢集與目的地組群資料一致。

      • 任務進度 < 100%:所有表已完成至少一次同步,部分表正在同步增量資料。

    • 表進度低於 100%:還有部分表尚未成功同步。

    image

    以下是與進度相關的參數詳情。

    參數

    說明

    finishedTableRatio

    至少有一次成功執行同步任務的資料表所佔比例。

    expiredTableRatio

    資料表到期資料所佔比例。

    total table

    此次資料移轉配置的資料表總數。

    finished table

    至少有一次同步任務執行成功過的資料表數量。

    unfinished table

    還未進行過資料同步的資料表數量。

    unfinished detail

    還未進行過資料同步的資料表名稱列表。

驗證資料

在遷移過程中及遷移完成後,您可以通過以下SQL命令抽樣對比源、目的地組群的資料,作為輔助驗證手段。

  1. 查看遷移事務狀態:遷移工具會為每張表開啟一個事務,您可以通過查看事務的狀態瞭解該表的遷移進度。

    SHOW PROC "/transactions/<db_name>/running";

    其中,<db_name>為該表所在資料庫的名稱。

    返回結果中會顯示當前正在啟動並執行事務及其狀態。如果事務狀態為“完成”,則表示該表的遷移任務已完成;如果長時間處於“運行中”,可能需要排查是否存在異常。

  2. 查看分區資料版本:對比分區版本號碼是最可靠的方式之一。

    SHOW PARTITIONS FROM <table_name>;

    在源和目的地組群上對同一張表執行,比較各分區的Version是否一致。

  3. 查看錶行數:可作為快速概覽,但並非精確驗證。

    -- 在源和目的地組群上分別執行
    SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '<db_name>';

    返回結果中將列出每個表的名稱及其對應的行數。通過對比源叢集與目的地組群中相同表的行數,若行數一致,則表明該表已成功遷移。

  4. 查看資料量:通過對比源叢集和目的地組群的資料量,可以快速瞭解整體遷移進度。

    SHOW DATA;

    返回結果中會顯示每個資料庫和表的資料量(包括磁碟佔用大小)。對比源叢集和目的地組群的資料量,若兩者一致,則表示資料移轉已完成。

步驟六:完成遷移與業務切換

當您通過監控確認資料已完全同步(Sync job progress持續穩定在100%),並且業務處於可切換的視窗期時,請按以下流程完成最終切換。

  1. 停止業務寫入源叢集:暫停向源叢集寫入新資料的應用程式。

  2. 最終確認資料同步:再次檢查遷移工具日誌,確保Sync job progress在業務停止寫入後達到並保持100%。

  3. 停止遷移工具:執行停止命令,終止資料同步。

  4. 恢複目的地組群配置

    • 目的:將遷移期間的臨時配置改回預設值,確保叢集效能和穩定性。

    • 操作清單

      • 參數配置頁面,將 emr_serveless_replication_enable 修改為 false,將compact_threads修改為預設值。

      • 若曾配置,將 enable_legacy_compatibility_for_replication 修改為 false

      • 若曾修改,在SQL Editor中執行 SET GLOBAL enable_filter_unused_columns_in_scan_stage=true;

      • (極其重要)如果曾關閉Compaction,請務必在參數配置頁面將 lake_compaction_max_tasks 恢複為預設值(如-1)或一個正整數,並重啟叢集

  5. 業務切換:將您的應用程式或服務的資料來源配置從源叢集地址修改為目的地組群地址,並啟動業務。

  6. 最終驗證:在新叢集上驗證業務功能是否正常。

效能調優

您可以根據源叢集負載和遷移時效性要求,調整以下參數來最佳化效能。通常預設值即可滿足大部分情境。如果您對效能要求較高,可以適當調整這些參數以加速遷移,但需要注意,增大這些配置項可能會增加源叢集的負載壓力。

  • FE參數(通過ADMIN SET FRONTEND CONFIG命令修改)

    參數

    預設值

    描述

    replication_max_parallel_table_count

    100

    允許同時執行同步任務的表的最大數量。

    replication_max_parallel_data_size_mb

    1048576

    所有並發同步任務允許處理的最巨量資料量(MB)。

    replication_max_parallel_replica_count

    10240

    同時執行的並發副本同步任務總數。

  • BE參數(通過ADMIN SET BACKEND CONFIG命令修改)

    參數

    預設值

    描述

    replication_threads

    0

    每個BE節點上用於執行同步任務的線程數。0表示自動化佈建為CPU核心數。

常見問題

查詢效能下降

  • 原因: 同步過程中產生大量小檔案,未及時合并。

  • 解決方案

    • 檢查 Compaction Score 指標是否過高。

    • 臨時調大合并線程數:

      • 推薦值:8 或 16

      • 可加快檔案合并效率

聯絡我們

如果您在遷移過程中有任何疑問,請提交工單進行諮詢。