MaxCompute資料移轉服務MMS(MaxCompute Migration Service)支援將多種資料來源的資料移轉至MaxCompute。MMS通過與MaxCompute Spark引擎整合,簡化了從自建資料來源到MaxCompute的大規模資料移轉過程,降低了配置複雜度和營運成本。
功能概述
遷移架構
MaxCompute資料移轉服務MMS支援中繼資料和資料移轉。
中繼資料遷移:通過中繼資料API(如Hive Metastore SDK、DataBricks SDK)從資料來源擷取中繼資料,產生MaxCompute DDL語句並在MaxCompute中執行以完成中繼資料遷移。
資料移轉:中繼資料結構同步後,MMS根據遷移作業的配置,產生並提交一個或多個Spark作業在MaxCompute上運行。這些Spark作業從資料來源拉取資料,並寫入MaxCompute的目標表中。該過程由MMS服務託管,無需進行Spark作業的開發和營運。
遷移流程
下圖展示了MaxCompute資料移轉服務(MMS)的內部工作原理,整個流程可以概括為以下幾個核心步驟:
中繼資料載入:使用者建立遷移作業後,MMS首先串連到外部資料源,讀取並載入其中繼資料(如表結構、分區資訊等),並將其儲存在MMS自身的資料庫中以供後續使用。
建立遷移作業:MMS支援單庫整庫遷移、部分遷移(多表)、部分遷移(多分區)三種遷移作業類型。每個遷移作業會拆分多個子任務並發執行資料移轉。
資料與中繼資料傳輸:每個並行的子任務獨立地從資料來源拉取實際資料,先在目標專案建立對應的目標表/分區,再寫入資料。
資料校正(可選):資料寫入完成後,MMS支援執行資料校正步驟。比對源端和目標端的表/分區資料條數,初步驗證資料的完整性。
術語簡介
資料來源
待遷移的對象,例如:Hive的一個或多個Database。不同的資料來源有不同的資料層級,目前MMS會將不同資料來源的資料層級映射為Database、Schema和Table三層,其中Schema作為Table的屬性存在。資料來源層級詳情,如下表所示。
資料來源
資料層級
Hive
Database.TableMaxCompute
Project.Schema.Table或Project.Table不同的資料來源的讀取方式如下表:
資料來源類型
資料存放區服務/API
計算引擎
MaxCompute
開放儲存(Storage API)
Spark
SQL
BigQuery
Storage Read API
Spark
Hive
HDFS
S3
OSS
Databricks
Azure Blob Storage
Databricks JDBC
遷移作業
MMS遷移的對象可以是一個Database、多個Table或多個Partition,遷移作業可用於定義遷移對象。
遷移任務
選定遷移對象並提交遷移作業後,MMS會根據遷移作業的配置,將一個遷移作業拆分為多個獨立的遷移任務,遷移任務是實際的執行單位,作業類型包括Spark和SQL作業。每個任務可對應一個非分區表或一個分區表的多個分區,任務執行過程包含中繼資料遷移、資料移轉和資料校正。
資料校正
資料移轉完成後,MMS執行校正以保證資料一致性。校正方法是在源端和目標端分別執行
SELECT COUNT(*)來對比表或分區的行數,用於驗證資料完整性。校正結果記錄在任務日誌中。
遷移步驟
常見問題
使用MMS進行資料移轉會產生哪些費用?
MaxCompute遷移服務(MMS)本身不收費。資料移轉過程中會產生以下費用:
目標端計算資源費用:MMS通過在MaxCompute專案內提交Spark或SQL作業來執行資料移轉。這些作業會消耗MaxCompute的計算資源(CU),並按照MaxCompute的計費標準(隨用隨付或訂用帳戶)計費。
網路傳輸費用:資料移轉過程中,需要網路打通,會產生相應的網路費用。
源端資料讀取費用:MMS資料移轉過程中,通過調用各類資料來源的取數介面讀取資料,會根據各類資料來源規則在源端產生相應的取數費用。
MMS、DataWorksData Integration在資料移轉情境中應如何選擇?
MMS:MMS適用於整站或大批量資料非持久性搬遷。
DataWorksData Integration:適用於定時是持久性資料同步整合,同時支援豐富的資料來源。