全部產品
Search
文件中心

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

更新時間:Sep 11, 2024

當您計劃切換雲資料庫 ClickHouse 社區相容版叢集的版本時,可以使用雲資料庫ClickHouse控制台的執行個體遷移功能進行資料移轉。該功能支援資料的全量遷移和增量遷移,從而保證了您資料的完整性。

前提條件

  • 源叢集和目的地組群均需具備的條件:

    • 均為社區相容版叢集。

    • 均處於運行中狀態。

    • 均已具有資料庫帳號和密碼。

    • 二者冷熱分層狀態一致。

    • 二者使用相同的VPC且在同一地區,並已將彼此的IP添加到了對方白名單中。如果不滿足此條件,請先解決網路問題。具體操作,請參見如何解決目的地組群與資料來源網路互連問題

      說明

      您可以通過SELECT * FROM system.clusters;查看雲資料庫ClickHouse執行個體的IP地址。如何設定白名單,請參見設定白名單

  • 目的地組群需額外滿足如下條件:

    • 版本高於或等於源叢集版本。

    • 未使用儲存空間需大於或等於源叢集已使用儲存空間的1.2倍。

  • 源叢集的所有本地表都需要具有唯一的分布式表。

注意事項

  • 遷移過程中,目的地組群會暫停合并(Merge),但源叢集不會。

  • 遷移內容:

    • 支援遷移的內容包含叢集、庫、表、資料字典、物化視圖、使用者權限和叢集配置。

    • 不支援遷移Kafka和RabbitMQ引擎表。

      重要

      為保證Kafka和RabbitMQ資料不分流,請先清理源叢集的Kafka和RabbitMQ引擎表後,再在目的地組群建立,或者使用不同的消費者組。

    • 非MergeTree類型的表(例如外表、Log表等)僅支援遷移表結構。

      說明

      當源叢集存在非MergeTree類型的表時,資料移轉後,目的地組群此類表只有表結構,沒有具體的業務資料。具體業務資料移轉可以使用remote函數進行遷移。具體操作,請參見通過remote函數進行資料移轉

叢集影響

  • 遷移過程中,支援對源叢集的表進行讀取與寫入資料操作,但不支援DDL操作(增、刪、改庫表的中繼資料操作)。

    重要
    • 為了保證遷移任務正常完成,當遷移任務達到99%進度時,且此時在源叢集預設的停寫時間範圍內,源叢集會主動停止寫入。

    • 當資料全部遷移完成或超出源叢集預設的停寫時間範圍,源叢集會自動回復資料寫入。

  • 遷移過程中,不支援對目的地組群進行中遷移資料的表進行寫操作。

操作步驟

步驟一:建立遷移任務

  1. 登入雲資料庫ClickHouse控制台

  2. 叢集列表頁面,選擇社區版執行個體列表,單擊目的地組群ID。

  3. 在左側導覽列,單擊執行個體遷移

  4. 執行個體遷移頁面,單擊建立遷移任務

    1. 配置源執行個體與目標執行個體。

      配置以下資訊,單擊測試連接進行下一步

      說明

      測試連接成功後,進入下一個步驟。如果測試連接失敗,請根據提示,重新設定源執行個體和目標執行個體。

      image

    2. 確認遷移內容。

      仔細閱讀頁面中資料移轉的包含內容提示資訊,單擊下一步:預檢測並啟動同步

    3. 後台遷移鏈路預檢測並啟動任務。

      後台會對目標執行個體和源執行個體進行執行個體狀態檢測儲存空間檢測本地表和分布式表檢測

      • 檢測成功:

        1. 仔細閱讀頁面遷移過程中對執行個體的影響提示內容。

        2. 設定停寫時間

          說明
          • 為了保證遷移的成功率,建議您停寫時間至少設定30分鐘。

          • 遷移任務必須在任務啟動(即任務建立完成)後的5天內結束,因此,源叢集停寫時間的結束日期必須小於或等於當前日期+5

          • 為了降低遷移對您業務的影響,建議您設定的停寫時間範圍處於您的業務低峰時段。

        3. 單擊完成

          說明

          單擊完成後,任務建立完成且啟動任務。

      • 檢測失敗:您需要按照提示資訊進行操作,重新進行資料移轉。檢測內容及要求如下。

        檢測專案

        檢測要求

        執行個體狀態檢測

        遷移發起時,源叢集和目的地組群不能有正在啟動並執行管控任務(包含擴容,升降配等)。如果當前源叢集和目的地組群有管控任務正在運行,則不能發起遷移任務。

        儲存空間檢測

        遷移進行前,進行儲存空間校正。保證目的地組群的儲存空間大於等於源叢集的儲存空間的1.2倍。

        本地表和分布式表檢測

        如果源叢集存在本地表沒有建立分布式表或者分布式表不唯一,則校正失敗。請刪除多餘的分布式表或建立唯一分布式表。

步驟二:查看遷移任務

  1. 叢集列表頁面,選擇社區版執行個體列表,單擊目的地組群ID。

  2. 在左側導覽列,單擊執行個體遷移

    在執行個體遷移列表頁面,查看遷移任務的遷移狀態遷移進度停寫視窗

    說明

    當遷移任務達到99%進度時,且遷移狀態為遷移進行中時,會觸發源叢集停寫。停寫規則如下:

    • 觸發時間源叢集預設的停寫時間範圍內,源叢集停寫。

    • 觸發時間不在源叢集預設的停寫時間範圍內,且小於或等於任務啟動(即任務建立)日期+5,您可通過修改停寫視窗時間,繼續遷移任務。

    • 觸發時間不在源叢集預設的停寫時間範圍內,且大於任務啟動(即任務建立)日期+5,遷移失敗。您需取消遷移任務,並清理目的地組群中已遷移的資料,重新建立遷移任務,發起遷移。

步驟三:(可選)取消遷移任務

  1. 叢集列表頁面,選擇社區版執行個體列表,單擊目的地組群ID。

  2. 在左側導覽列,單擊執行個體遷移

  3. 在目標遷移任務的操作列,單擊取消遷移

  4. 取消遷移對話方塊,單擊確定

    說明
    • 取消遷移後,工作清單不會立即更新,建議您,通過間隔重新整理查看任務狀態。

    • 任務取消後,任務的遷移狀態會變成已完成。

    • 在您重新發起遷移之前,必須先清理目的地組群中已遷移的資料,避免出現資料重複的情況。

步驟四:(可選)修改停寫視窗時間

  1. 叢集列表頁面,選擇社區版執行個體列表,單擊目的地組群ID。

  2. 在左側導覽列,單擊執行個體遷移

  3. 在目標遷移任務的操作列,單擊修改停寫視窗

  4. 修改停寫視窗對話方塊,選擇停寫時間

    說明

    停寫時間設定規則,與建立遷移任務中停寫時間的設定一致。

  5. 單擊確定

相關文檔

如何從自建的ClickHouse將資料移轉至雲資料庫ClickHouse,請參見將自建ClickHouse資料移轉到雲ClickHouse中