MySQL實時入湖OSS-HDFS
本文以MySQL實時入湖寫入OSS-HDFS場景為例,為您介紹如何通過數(shù)據(jù)集成的方式,實時入湖。
前提條件
如果您是新用戶,需購買通用資源組,以供創(chuàng)建數(shù)據(jù)源與集成任務(wù)使用。詳情請參見:使用Serverless資源組。如果您已擁有獨享集成資源組,則使用獨享集成資源組即可,無需增購新版資源組。詳情請參見:獨享數(shù)據(jù)集成資源組。
已完成MySQL和OSS-HDFS數(shù)據(jù)源配置,以便在同步任務(wù)配置時,可通過選擇數(shù)據(jù)源名稱來控制同步讀取和寫入的數(shù)據(jù)庫。
重要配置數(shù)據(jù)源時,需要同步完成資源組與MySQL數(shù)據(jù)源、OSS-HDFS數(shù)據(jù)源的網(wǎng)絡(luò)連通測試。不同網(wǎng)絡(luò)環(huán)境下的網(wǎng)絡(luò)連通方案可參見:網(wǎng)絡(luò)連通方案。
數(shù)據(jù)源相關(guān)能力介紹詳情請參見:數(shù)據(jù)源概述。
已完成數(shù)據(jù)源環(huán)境準備。來源數(shù)據(jù)源為MySQL時,需要開啟Binlog相關(guān)功能,詳情請參見:MySQL環(huán)境準備。
使用限制
源端主鍵列值,不允許為空(null或空字符串均不支持),否則會導(dǎo)致同步任務(wù)報錯。
能力簡介
支持將源端數(shù)據(jù)源MySQL的數(shù)據(jù)結(jié)構(gòu)遷移到OSS-HDFS數(shù)據(jù)湖,且支持選擇將歷史存量數(shù)據(jù)(整庫或部分表)一次性同步至OSS數(shù)據(jù)湖,增量數(shù)據(jù)實時同步至OSS數(shù)據(jù)湖。
支持源端新增列的DDL操作,同步過程中可根據(jù)源端數(shù)據(jù)庫表數(shù)量的變化自動添加表。
重要暫不支持源端其他DDL(刪除表、重命名表等)操作,會導(dǎo)致同步任務(wù)失敗。
如果您當前賬號下開通了DLF產(chǎn)品,則會自動在DLF中構(gòu)建對應(yīng)的元數(shù)據(jù)庫和元數(shù)據(jù)表信息。
步驟一:創(chuàng)建同步任務(wù)
新建同步任務(wù)。
進入數(shù)據(jù)集成頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側(cè)導(dǎo)航欄的 ,在下拉框中選擇對應(yīng)工作空間后單擊進入數(shù)據(jù)集成。
單擊同步任務(wù),進入數(shù)據(jù)集成頁面,在創(chuàng)建同步任務(wù)來源側(cè)選擇MySQL,在去向側(cè)選擇OSS-HDFS后,單擊新建同步任務(wù),進入同步任務(wù)編輯頁面。
編輯同步任務(wù)
基本配置:
數(shù)據(jù)來源與去向:來源側(cè)選擇MySQL,在去向側(cè)選擇OSS-HDFS。
新任務(wù)名稱:自定義命名。
同步類型:整庫實時。
同步步驟:結(jié)構(gòu)遷移、全量同步以及增量同步。
網(wǎng)絡(luò)與資源配置:
資源組:選擇前提條件中購買的資源組。
來源數(shù)據(jù)源:選擇對應(yīng)的MySQL數(shù)據(jù)源,以及編碼格式和時區(qū)。
去向數(shù)據(jù)源:選擇對應(yīng)的OSS-HDFS數(shù)據(jù)源。
配置完以上模塊后,單擊測試所有連通性,測試數(shù)據(jù)源與資源組中的連通性。
配置完成后,單擊下一步,繼續(xù)進行集成配置。
入湖配置。
寫入格式的修改將影響整個任務(wù)的配置,共分為Hudi、Paimon、以及Iceberg格式。
Hudi
當寫入格式配置為Hudi時可參考以下配置:
目標側(cè)配置
存儲路徑選擇:選擇要存放入湖文件的warehouse存儲路徑,最終將會以
oss://bucket/pointed_path/pre_database/object_name
的形式建立目錄和文件。選擇元數(shù)據(jù)庫自動構(gòu)建位置:如果您當前賬號下開通了DLF產(chǎn)品,選擇構(gòu)建DLF1.0后,則會自動在DLF中構(gòu)建對應(yīng)的元數(shù)據(jù)庫和元數(shù)據(jù)表信息。
分區(qū)信息:
設(shè)置數(shù)據(jù)入湖存儲時的分區(qū),后續(xù)入湖同步寫入數(shù)據(jù)時,根據(jù)來源端數(shù)據(jù)的寫入時間落入相應(yīng)的分區(qū)里。分區(qū)設(shè)置注意事項如下:
支持使用${yyyy}(年)、${MM}(月)、${dd}(日)、${HH}(時)這些變量,最小粒度到小時,不支持分鐘、秒的時間粒度。
支持將變量結(jié)合字符串拼接組合。例如將變量與下劃線拼接組合:${yyyy}_${MM}_${dd}_${HH}。
支持設(shè)置多個分區(qū)使寫入的數(shù)據(jù)表為多級分區(qū)表,分區(qū)級別與此處設(shè)置的分區(qū)順序一致。
選擇要同步的庫表
源庫選擇限定條件:根據(jù)個例或正則來添加或排除數(shù)據(jù)庫。
源表選擇限定條件。根據(jù)個例或正則來添加或排除數(shù)據(jù)表。
選庫預(yù)覽:根據(jù)待選擇數(shù)據(jù)源、待選擇數(shù)據(jù)庫以及待選擇表來圈定需要同步至OSS-HDFS數(shù)據(jù)湖的數(shù)據(jù)。
Paimon
當寫入格式配置為Paimon時可參考以下配置:
目標側(cè)配置
存儲路徑選擇:選擇要存放入湖文件的warehouse存儲路徑,最終將會以
oss://bucket/pointed_path/pre_database/object_name
的形式建立目錄和文件。選擇元數(shù)據(jù)庫自動構(gòu)建位置:如果您當前賬號下開通了DLF產(chǎn)品,選擇構(gòu)建DLF1.0后,則會自動在DLF中構(gòu)建對應(yīng)的元數(shù)據(jù)庫和元數(shù)據(jù)表信息。
選擇需要同步的庫表:源端庫表區(qū)域選擇源端數(shù)據(jù)源下需要同步的表,并單擊,將其移動至右側(cè)已選庫表。
目標表映射
在目標表映射區(qū)域,全選目標表映射框中的表信息,單擊批量刷新映射按鈕。
說明在上一步驟選擇完需要同步的表后,將自動在此界面展示當前待同步的表,但目標表的相關(guān)屬性默認為待映射狀態(tài),需要您定義并確認源表與目標表映射關(guān)系,即數(shù)據(jù)的讀取與寫入關(guān)系,然后單擊刷新映射后才可進入下一步操作。您可以直接刷新映射,或自定義目標表規(guī)則后,再刷新映射。
您還可以選中列表中的表信息,單擊批量修改,配置如下信息。
配置項
描述
目標表字段賦值
支持為目標表添加常量和變量。
目標表名映射自定義
可以使用內(nèi)置變量和手動輸入的字符串拼接成最終目標表名。其中,支持您編輯內(nèi)置變量,例如:進行字符串替換。
DML規(guī)則配置
正常處理:此DML消息將會繼續(xù)下發(fā)給目標數(shù)據(jù)源,由目標數(shù)據(jù)源來處理。
忽略:丟棄掉此DML消息,不再向目標數(shù)據(jù)源發(fā)送此消息,對應(yīng)數(shù)據(jù)不會改變。
有條件的正常處理:按過濾表達式進行條件過濾,滿足過濾條件的數(shù)據(jù)會被正常處理,不滿足的會被忽略掉。
如不設(shè)置,則默認為正常處理。
目標表結(jié)構(gòu)-批量修改和新增字段
可以批量修改目標表結(jié)構(gòu)、添加字段和設(shè)置主鍵等配置。
目標庫名映射自定義
可以使用內(nèi)置變量和字符串拼接成最終目標庫名。內(nèi)置變量可以編輯,例如:進行字符串替換。
Iceberg
當寫入格式配置為Iceberg時可參考以下配置:
目標側(cè)配置
存儲路徑選擇:選擇要存放入湖文件的warehouse存儲路徑,最終將會以
oss://bucket/pointed_path/pre_database/object_name
的形式建立目錄和文件。選擇元數(shù)據(jù)庫自動構(gòu)建位置:如果您當前賬號下開通了DLF產(chǎn)品,選擇構(gòu)建DLF1.0后,則會自動在DLF中構(gòu)建對應(yīng)的元數(shù)據(jù)庫和元數(shù)據(jù)表信息。
選擇需要同步的庫表:源端庫表區(qū)域選擇源端數(shù)據(jù)源下需要同步的表,并單擊,將其移動至右側(cè)已選庫表。
目標表映射
在目標表映射區(qū)域,全選目標表映射框中的表信息,單擊批量刷新映射按鈕。
說明在上一步驟選擇完需要同步的表后,將自動在此界面展示當前待同步的表,但目標表的相關(guān)屬性默認為待映射狀態(tài),需要您定義并確認源表與目標表映射關(guān)系,即數(shù)據(jù)的讀取與寫入關(guān)系,然后單擊刷新映射后才可進入下一步操作。您可以直接刷新映射,或自定義目標表規(guī)則后,再刷新映射。
您還可以選中列表中的表信息,單擊批量修改,配置如下信息。
配置項
描述
目標表字段賦值
支持為目標表添加常量和變量。
目標表名映射自定義
可以使用內(nèi)置變量和手動輸入的字符串拼接成最終目標表名。其中,支持您編輯內(nèi)置變量,例如:進行字符串替換。
DML規(guī)則配置
正常處理:此DML消息將會繼續(xù)下發(fā)給目標數(shù)據(jù)源,由目標數(shù)據(jù)源來處理。
忽略:丟棄掉此DML消息,不再向目標數(shù)據(jù)源發(fā)送此消息,對應(yīng)數(shù)據(jù)不會改變。
有條件的正常處理:按過濾表達式進行條件過濾,滿足過濾條件的數(shù)據(jù)會被正常處理,不滿足的會被忽略掉。
如不設(shè)置,則默認為正常處理。
目標表結(jié)構(gòu)-批量修改和新增字段
可以批量修改目標表結(jié)構(gòu)、添加字段和設(shè)置主鍵等配置。
目標庫名映射自定義
可以使用內(nèi)置變量和字符串拼接成最終目標庫名。內(nèi)置變量可以編輯,例如:進行字符串替換。
報警配置。
您可以單擊右上角的報警配置,根據(jù)界面提示配置報警原因、報警方式等信息。
高級參數(shù)配置。
您可以單擊右上角的高級參數(shù),根據(jù)界面提示配置離線任務(wù)源端最大連接數(shù)以及運行時的實時同步任務(wù)Checkpoint時間間隔、任務(wù)并發(fā)度、Bucket Assign并行度以及單表寫入并發(fā)度的配置。
DDL能力配置。
您可以單擊右上角的DDL能力配置指定不同DDL操作的響應(yīng),支持新建表、刪除表、新增列、刪除列、重命名表、重命名列、修改列類型以及清空表。
資源組配置。
新建數(shù)據(jù)集成任務(wù)時,您可以在右上角的資源組配置處修改同步資源組使用的通用型資源組,以及資源組的占用CU。
配置完以上配置后,單擊完成配置,保存該任務(wù)。
步驟二:啟動同步任務(wù)
創(chuàng)建完成同步任務(wù)后,單擊打開菜單欄,進入
界面,找到已創(chuàng)建的同步方案。單擊操作列的啟動按鈕,即可啟動同步任務(wù)。
步驟三:運維同步任務(wù)
啟動任務(wù)后,可對任務(wù)進行如下運維操作:
操作列中可以對已啟動任務(wù)進行停止、查看、編輯、重跑、克隆以及對該任務(wù)進行報警配置以及修改責任人的操作。
還可以單擊任務(wù)名,查看任務(wù)運行的基本信息,以及查看執(zhí)行狀態(tài)、運行日志、Failover和資源利用率等詳情信息。
更多運維操作可參見:實時同步。