MySQL整庫(kù)離線同步到OSS
本文示例以MySQL為源端,OSS為目標(biāo)端,為您介紹如何將MySQL整個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)離線同步到OSS。
使用限制
僅支持使用獨(dú)享數(shù)據(jù)集成資源組。
操作步驟
前提條件
已購(gòu)買合適規(guī)格的獨(dú)享數(shù)據(jù)集成資源組。詳情請(qǐng)參見(jiàn):新增和使用獨(dú)享數(shù)據(jù)集成資源組。
已完成MySQL和OSS數(shù)據(jù)源配置,以便在同步任務(wù)配置時(shí),可通過(guò)選擇數(shù)據(jù)源名稱來(lái)控制同步讀取和寫(xiě)入的數(shù)據(jù)庫(kù)。配置數(shù)據(jù)源的操作詳情請(qǐng)參見(jiàn)配置MySQL數(shù)據(jù)源、配置OSS數(shù)據(jù)源。
重要配置數(shù)據(jù)源時(shí),需要同步完成獨(dú)享數(shù)據(jù)集成資源組與MySQL數(shù)據(jù)源、OSS數(shù)據(jù)源的網(wǎng)絡(luò)連通測(cè)試。不同網(wǎng)絡(luò)環(huán)境下的網(wǎng)絡(luò)連通方案可參見(jiàn):網(wǎng)絡(luò)連通方案。
數(shù)據(jù)源相關(guān)能力介紹詳情請(qǐng)參見(jiàn):數(shù)據(jù)源概述。
已完成數(shù)據(jù)源環(huán)境準(zhǔn)備。來(lái)源數(shù)據(jù)源為MySQL時(shí),您需要開(kāi)啟Binlog相關(guān)功能,詳情請(qǐng)參見(jiàn)MySQL環(huán)境準(zhǔn)備。
步驟一:創(chuàng)建同步任務(wù)
進(jìn)入數(shù)據(jù)集成頁(yè)面。
登錄DataWorks控制臺(tái),切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的 ,在下拉框中選擇對(duì)應(yīng)工作空間后單擊進(jìn)入數(shù)據(jù)集成。
單擊左側(cè)導(dǎo)航欄的同步任務(wù),來(lái)源選擇MySQL,去向選擇OSS,單擊開(kāi)始創(chuàng)建按鈕。
在新建同步任務(wù)頁(yè)面,編輯任務(wù)的基本信息。
新任務(wù)名稱:自定義。
同步類型:本文是以MySQL整庫(kù)離線同步至OSS,故選擇:整庫(kù)離線。
同步步驟:根據(jù)您的業(yè)務(wù)需求選擇全量同步、全量同步和增量同步。詳情請(qǐng)參見(jiàn):步驟二:配置同步任務(wù)。
若您需要進(jìn)行一次性全量或周期性全量同步,請(qǐng)勾選全量同步。
若您需要進(jìn)行一次性全量周期性增量同步,請(qǐng)勾選全量同步和增量同步。
網(wǎng)絡(luò)與資源配置:點(diǎn)擊下拉框分別選擇已經(jīng)創(chuàng)建的MySQL數(shù)據(jù)源、獨(dú)享數(shù)據(jù)集成資源組、OSS數(shù)據(jù)源,單擊測(cè)試所有連通性,保障資源組與數(shù)據(jù)源之間的網(wǎng)絡(luò)連通性。
步驟二:配置同步任務(wù)
周期全量配置方式
在新建同步任務(wù)頁(yè)面,選擇同步步驟為全量同步。
單擊下一步,在選擇要同步的庫(kù)表中,選擇MySQL中需要同步的表。
您可以在左側(cè)源端庫(kù)表區(qū)域需要同步的源表,點(diǎn)擊圖標(biāo),可以將其移動(dòng)至右側(cè)已選庫(kù)表區(qū)域。
選中右側(cè)已選庫(kù)表中的表,點(diǎn)擊圖標(biāo),也可以取消已選庫(kù)表區(qū)域的表。
說(shuō)明您也可以在庫(kù)過(guò)濾和表過(guò)濾的搜索框中,輸入庫(kù)表的名稱或填寫(xiě)正則表達(dá)式,選擇需要同步的庫(kù)表。
配置目標(biāo)OSS文件屬性。
目標(biāo)根路徑,書(shū)寫(xiě)格式:
di_to_oss_path/${bizdate}/
,其中調(diào)度參數(shù)${bizdate}
表示業(yè)務(wù)日期,調(diào)度值填寫(xiě)$bizdate
。等于調(diào)度日期的前一天,更多調(diào)度參數(shù)詳情請(qǐng)參見(jiàn):調(diào)度參數(shù)支持的格式。說(shuō)明在使用調(diào)度參數(shù)
$bizdate
時(shí),需要包含在全增量控制的周期調(diào)度參數(shù)配置中。文件類型:parquet,text,csv,orc。
列分隔符:數(shù)據(jù)的字段分割符號(hào),例如逗號(hào)(,)。
前綴沖突:在進(jìn)行數(shù)據(jù)寫(xiě)入時(shí),若目標(biāo)對(duì)象與待寫(xiě)入對(duì)象名稱具有相同前綴,可以進(jìn)行以下操作:
替換原有文件:刪除前綴相同的文件,重建新的文件替換原有文件。
退出報(bào)錯(cuò):同步任務(wù)停止執(zhí)行。
更多參數(shù):若文件類型是text和csv格式,支持配置更多參數(shù)來(lái)完成定制化行為。
配置全增量控制。
在全量同步中選擇周期性。
單擊周期調(diào)度參數(shù)配置設(shè)置對(duì)應(yīng)的調(diào)度參數(shù)。調(diào)度參數(shù)詳情請(qǐng)參見(jiàn)調(diào)度參數(shù)支持的格式。
刷新目標(biāo)表映射。
單個(gè)目標(biāo)表映射刷新:?jiǎn)螕裟繕?biāo)表操作列的刷新映射。
批量目標(biāo)表映射刷新:勾選多個(gè)需要刷新的表,單擊按鈕批量刷新映射。
說(shuō)明DataWorks數(shù)據(jù)集成提供了自定義規(guī)則,用于映射目標(biāo)OSS路徑及目標(biāo)OSS文件名。
內(nèi)置目標(biāo)OSS路徑映射自定義規(guī)則
default_path_convert_rule
。將來(lái)源庫(kù)名稱作為目標(biāo)OSS路徑。例如,源數(shù)據(jù)庫(kù)名稱為di_ide_yufa時(shí),使用上述規(guī)則,該名稱會(huì)直接被用作OSS的目標(biāo)路徑,即在OSS中的存儲(chǔ)路徑將是di_ide_yufa。
內(nèi)置的目標(biāo)OSS文件名映射自定義規(guī)則有以下兩個(gè)規(guī)則:
使用
default_file_convert_rule_with_schedule_params
自定義規(guī)則。該規(guī)則定義${srcTableName}/data_${bizdate}
,源表名${srcTableName}
會(huì)作為OSS路徑的一部分,而目標(biāo)文件為data_
后面跟上調(diào)度參數(shù)${bizdate}
的值。例如,源表名為base_c_app_config,調(diào)度日期的值是20230101,那么在OSS中生成的目標(biāo)表名為:base_c_app_config/data_20230101。
使用
default_file_convert_rule
自定義規(guī)則。該規(guī)則定義${srcTableName}/data
,源表名${srcTableName}
作為OSS路徑的一部分,并且默認(rèn)的目標(biāo)文件名為data
。例如,源表名為base_c_app_config,轉(zhuǎn)換后的目標(biāo)表名為base_c_app_config/data。
最終的OSS文件寫(xiě)入路徑以及文件,由如下三者拼接而成。
目標(biāo)根路徑。
目標(biāo)OSS路徑映射自定義轉(zhuǎn)換得到的目標(biāo)文件路徑。
目標(biāo)OSS文件名映射自定義規(guī)則轉(zhuǎn)換得到的目標(biāo)文件名。
周期配置。
刷新表映射后,表粒度周期性調(diào)度參數(shù)配置,支持批量修改或單表定制化修改。您可單擊批量修改按鈕,在下拉列表中找到周期配置,可以對(duì)單表粒度進(jìn)行配置。更多調(diào)度參數(shù)配置詳情請(qǐng)參見(jiàn)任務(wù)調(diào)度屬性配置概述。
在周期配置中,可以設(shè)置預(yù)期的周期調(diào)度時(shí)間。本示例中設(shè)置周期調(diào)度時(shí)間為每天0點(diǎn)10分。
完成配置。
單擊完成配置,完成同步任務(wù)的配置。
一次性全量周期性增量配置方式
在新建同步任務(wù)頁(yè)面,選擇同步步驟為全量同步和增量同步。
單擊下一步,在選擇要同步的庫(kù)表中,選擇MySQL中需要同步的表。
您可以在左側(cè)源端庫(kù)表區(qū)域需要同步的源表,點(diǎn)擊圖標(biāo),可以將其移動(dòng)至右側(cè)已選庫(kù)表區(qū)域。
選中右側(cè)已選庫(kù)表中的表,點(diǎn)擊圖標(biāo),也可以取消已選庫(kù)表區(qū)域的表。
說(shuō)明您也可以在庫(kù)過(guò)濾和表過(guò)濾的搜索框中,輸入庫(kù)表的名稱或填寫(xiě)正則表達(dá)式,選擇需要同步的庫(kù)表。
配置目標(biāo)OSS文件屬性。
目標(biāo)根路徑,書(shū)寫(xiě)格式:
di_to_oss_path/${bizdate}/
,其中調(diào)度參數(shù)${bizdate}
表示業(yè)務(wù)日期,調(diào)度值填寫(xiě)$bizdate
。等于調(diào)度日期的前一天,更多調(diào)度參數(shù)詳情請(qǐng)參見(jiàn):調(diào)度參數(shù)支持的格式。說(shuō)明在使用調(diào)度參數(shù)
$bizdate
時(shí),需要包含在全增量控制的周期調(diào)度參數(shù)配置中。文件類型:parquet,text,csv,orc。
列分隔符:數(shù)據(jù)的字段分割符號(hào),例如逗號(hào)(,)。
前綴沖突:在進(jìn)行數(shù)據(jù)寫(xiě)入時(shí),若目標(biāo)對(duì)象與待寫(xiě)入對(duì)象名稱具有相同前綴,可以進(jìn)行以下操作:
替換原有文件:刪除前綴相同的文件,重建新的文件替換原有文件。
退出報(bào)錯(cuò):同步任務(wù)停止執(zhí)行。
更多參數(shù):若文件類型是text和csv格式,支持配置更多參數(shù)來(lái)完成定制化行為。
配置全增量控制。
此處默認(rèn)展示一次性全量和周期性增量,不可更改。
單擊周期調(diào)度參數(shù)配置設(shè)置對(duì)應(yīng)的調(diào)度參數(shù)。調(diào)度參數(shù)詳情請(qǐng)參見(jiàn):調(diào)度參數(shù)支持的格式。
刷新目標(biāo)表映射。
單個(gè)目標(biāo)表映射刷新:?jiǎn)螕裟繕?biāo)表操作列的刷新映射。
批量目標(biāo)表映射刷新:勾選多個(gè)需要刷新的表,單擊按鈕批量刷新映射。
說(shuō)明DataWorks數(shù)據(jù)集成提供了自定義規(guī)則,用于映射目標(biāo)OSS路徑及目標(biāo)OSS文件名。
內(nèi)置目標(biāo)OSS路徑映射自定義規(guī)則
default_path_convert_rule
。將來(lái)源庫(kù)名稱作為目標(biāo)OSS路徑。例如,源數(shù)據(jù)庫(kù)名稱為di_ide_yufa時(shí),使用上述規(guī)則,該名稱會(huì)直接被用作OSS的目標(biāo)路徑,即在OSS中的存儲(chǔ)路徑將是di_ide_yufa。
內(nèi)置的目標(biāo)OSS文件名映射自定義規(guī)則有以下兩個(gè)規(guī)則:
使用
default_file_convert_rule_with_schedule_params
自定義規(guī)則。該規(guī)則定義${srcTableName}/data_${bizdate}
,源表名${srcTableName}
會(huì)作為OSS路徑的一部分,而目標(biāo)文件為data_
后面跟上調(diào)度參數(shù)${bizdate}
的值。例如,源表名為base_c_app_config,調(diào)度日期的值是20230101,那么在OSS中生成的目標(biāo)表名為:base_c_app_config/data_20230101。
使用
default_file_convert_rule
自定義規(guī)則。該規(guī)則定義${srcTableName}/data
,源表名${srcTableName}
作為OSS路徑的一部分,并且默認(rèn)的目標(biāo)文件名為data
。例如,源表名為base_c_app_config,轉(zhuǎn)換后的目標(biāo)表名為base_c_app_config/data。
最終的OSS文件寫(xiě)入路徑以及文件,由如下三者拼接而成。
目標(biāo)根路徑。
目標(biāo)OSS路徑映射自定義轉(zhuǎn)換得到的目標(biāo)文件路徑。
目標(biāo)OSS文件名映射自定義規(guī)則轉(zhuǎn)換得到的目標(biāo)文件名。
周期配置。
刷新表映射后,表粒度周期性調(diào)度參數(shù)配置,支持批量修改或單表定制化修改。您可單擊批量修改按鈕,在下拉列表中找到周期配置,可以對(duì)單表粒度進(jìn)行配置。更多調(diào)度參數(shù)配置詳情請(qǐng)參見(jiàn)任務(wù)調(diào)度屬性配置概述。
在周期配置中,可以設(shè)置預(yù)期的周期調(diào)度時(shí)間。本示例中設(shè)置周期調(diào)度時(shí)間為每天0點(diǎn)10分。
增量條件配置。
表粒度增量條件參數(shù),支持批量修改/單表定制化修改。單擊批量修改按鈕,在下拉列表中選擇增量條件。
本文以天為增量舉例,假設(shè)業(yè)務(wù)時(shí)間字段為
gmt_modified
,每天增量抽取前一天0點(diǎn)到今天0點(diǎn)的數(shù)據(jù)(左閉右開(kāi)),單擊增量條件輸入如下代碼:to_timestamp('${bizdate}','yyyyMMdd') <= gmt_modified AND gmt_modified < (to_timestamp('${bizdate}','yyyyMMdd') + interval '1 day')
完成配置。
單擊完成配置,完成同步任務(wù)的配置。
其他高級(jí)配置(可選)
目標(biāo)OSS文件名映射自定義
您可以使用內(nèi)置變量和手動(dòng)輸入的字符串拼接成為最終目標(biāo)路徑。其中,支持您編輯內(nèi)置變量,例如,做字符串替換。
全增量控制與周期控制
如果您的同步步驟勾選了全量同步和增量同步,在全增量控制面板頁(yè)面,默認(rèn)展示一次性全量,周期性增量,不可更改。
如果您的同步步驟選擇了全量同步,在全增量控制面板頁(yè)面,可以選擇任務(wù)的類型是一次性全量還是周期性全量。
如果您的同步步驟選擇了增量同步,在全增量控制面板頁(yè)面,可以選擇任務(wù)的類型為一次性增量還是周期性增量。
附加字段使用調(diào)度參數(shù)
支持您在附加字段中使用調(diào)度參數(shù)。
單擊周期調(diào)度參數(shù)配置,新增調(diào)度參數(shù),以添加一個(gè)cyc_time參數(shù)為例:
單擊批量修改,打開(kāi)目標(biāo)文件附加字段。
說(shuō)明您也可以單擊目標(biāo)表映射右側(cè)自定義列圖標(biāo),勾選目標(biāo)字段附加字段,快捷打開(kāi)目標(biāo)文件附加字段進(jìn)行配置。
在目標(biāo)文件附加字段中,點(diǎn)擊新增字段,在名稱列輸入dt,賦值列使用手動(dòng)賦值方式輸入${cyc_time},給新增字段賦值調(diào)度參數(shù)。
高級(jí)參數(shù)配置
您可以通過(guò)以下兩種方式定義高級(jí)參數(shù):
單擊頁(yè)面右上角的高級(jí)參數(shù)配置,對(duì)同步任務(wù)讀端與寫(xiě)端進(jìn)行精細(xì)化配置,例如最大連接數(shù)、離線任務(wù)限流相關(guān)參數(shù)。
配置高級(jí)參數(shù)可以控制任務(wù)的行為。高級(jí)參數(shù)功能是整個(gè)任務(wù)全局的高級(jí)參數(shù)配置,會(huì)應(yīng)用到本任務(wù)的每一個(gè)表上。
在刷新表映射表格上,您還可以單獨(dú)配置每個(gè)表的自定義高級(jí)參數(shù),單表的高級(jí)參數(shù)優(yōu)先級(jí)更高。
單擊選擇自定義列按鈕,在下拉列表中勾選自定義高級(jí)參數(shù),單擊確認(rèn)。
配置自定義高級(jí)參數(shù)。
以下表格列舉了本同步解決方案所支持的高級(jí)參數(shù)。
高級(jí)參數(shù)名稱 | 說(shuō)明 |
離線任務(wù)源端最大連接數(shù) | 離線任務(wù)源端最大連接數(shù)。數(shù)據(jù)源維度,同一數(shù)據(jù)源,同時(shí)運(yùn)行的離線任務(wù)并發(fā)度不允許超過(guò)此值 |
離線同步任務(wù)并發(fā)度 | 并發(fā)數(shù)是指數(shù)據(jù)同步任務(wù)中,可以從源端并行讀取和向目標(biāo)存儲(chǔ)端并行寫(xiě)出數(shù)據(jù)的最大線程數(shù)。并發(fā)數(shù)大,同步任務(wù)速率高,但相對(duì)也會(huì)消耗更多的資源組槽位,并發(fā)數(shù)小,同步速率相對(duì)較低,相對(duì)消耗的資源組槽位也較少 |
離線任務(wù)是否開(kāi)啟限流 | 您可以通過(guò)限流控制同步速率,以保護(hù)讀取端數(shù)據(jù)庫(kù),避免抽取速度過(guò)大,給源庫(kù)造成太大的壓力,在不限流的情況下,任務(wù)將在所配置的并發(fā)數(shù)的限制基礎(chǔ)上,提供現(xiàn)有硬件環(huán)境下最大的傳輸性能 |
離線是否允許臟數(shù)據(jù) | 離線是否允許臟數(shù)據(jù),配置成false時(shí),如果數(shù)據(jù)寫(xiě)入目標(biāo)表失敗,任務(wù)會(huì)失敗。 |
離線任務(wù)限流大小 | 線任務(wù)限流大小,單位MB,在開(kāi)啟限流時(shí)生效。如未開(kāi)啟限流,則此參數(shù)不生效。 |
步驟三:運(yùn)行并查看任務(wù)狀態(tài)
啟動(dòng)同步任務(wù)
進(jìn)入
界面,找到已創(chuàng)建的同步方案。單擊操作列的啟動(dòng)/提交執(zhí)行按鈕,啟動(dòng)同步的任務(wù)。
單擊名稱/ID或執(zhí)行概況列空白處,跳轉(zhuǎn)到任務(wù)的運(yùn)行詳情頁(yè)面,查看任務(wù)的詳細(xì)執(zhí)行過(guò)程。
查看任務(wù)運(yùn)行狀態(tài)
任務(wù)的運(yùn)行詳情頁(yè)面分為三個(gè)部分:基本信息、執(zhí)行狀態(tài)以及詳情信息。
基本信息:包括任務(wù)的數(shù)據(jù)源信息,綁定的資源組以及同步方案。
執(zhí)行狀態(tài):MYSQL到OSS的離線整庫(kù)同步任務(wù)細(xì)分后的同步步驟詳情。
任務(wù)同步類型為全量同步,此處展示全量同步。
任務(wù)同步類型為增量同步,此處展示增量同步。
任務(wù)同步類型為全量同步、增量同步,此處展示全量同步以及增量同步。
詳情信息:針對(duì)”全量同步“和”增量同步“的信息顯示執(zhí)行步驟。
全量同步中包含離線同步的表信息、同步的進(jìn)度、以及寫(xiě)入的條數(shù)。單擊進(jìn)度列,可以查看當(dāng)前表同步的詳細(xì)日志信息及相關(guān)指標(biāo)
增量同步中包含離線周期任務(wù)對(duì)應(yīng)的最新周期實(shí)例的相關(guān)指標(biāo)信息。
點(diǎn)擊自定義列按鈕,勾選增量條件、周期實(shí)例和周期配置,點(diǎn)擊確認(rèn)。
單擊
,展示本次周期實(shí)例的實(shí)例化增量條件。單擊
,跳轉(zhuǎn)數(shù)據(jù)集成logview頁(yè)面,顯示歷史運(yùn)行過(guò)的周期實(shí)例相關(guān)指標(biāo)信息。點(diǎn)擊
,顯示本周期任務(wù)的周期調(diào)度相關(guān)信息。
任務(wù)重跑
直接重跑:不修改任務(wù)配置,直接點(diǎn)擊重跑操作。
效果:重跑一次性任務(wù)、周期性任務(wù)屬性做更新。
修改后重跑(增減表場(chǎng)景):編輯任務(wù),進(jìn)行增減表的操作, 單擊完成。這個(gè)時(shí)候任務(wù)的操作會(huì)變成"應(yīng)用更新",單擊應(yīng)用更新會(huì)直接觸發(fā)修改后的任務(wù)重跑。
效果:新增的表才會(huì)進(jìn)行同步,之前同步過(guò)的表不會(huì)再同步。
修改后重跑(修改表名信息):編輯任務(wù),進(jìn)行目標(biāo)表的名稱修改或者切換同步的目標(biāo)表,點(diǎn)擊完成。這個(gè)時(shí)候任務(wù)的操作會(huì)變成"應(yīng)用更新",單擊應(yīng)用更新會(huì)直接觸發(fā)修改后的任務(wù)重跑。
效果:同步修改過(guò)的表,沒(méi)有修改的表不會(huì)再進(jìn)行同步
數(shù)據(jù)開(kāi)發(fā)相關(guān)場(chǎng)景
如果您有下游數(shù)據(jù)依賴,需要進(jìn)行數(shù)據(jù)開(kāi)發(fā)操作的場(chǎng)景,可以參考配置調(diào)度依賴,進(jìn)行節(jié)點(diǎn)上下游的設(shè)置,對(duì)應(yīng)的周期任務(wù)節(jié)點(diǎn)信息可以在周期配置中查看。