離線同步能力說明
數(shù)據(jù)集成的離線同步功能為您提供數(shù)據(jù)讀取(Reader)和寫入插件(Writer),方便您通過定義來源與去向數(shù)據(jù)源,并結(jié)合DataWorks調(diào)度參數(shù)使用,將源端數(shù)據(jù)庫中全量或增量數(shù)據(jù)的同步至目標(biāo)數(shù)據(jù)庫中。本文為您介紹離線同步的相關(guān)能力。
使用限制
DataWorks的離線同步暫不支持跨時(shí)區(qū)同步數(shù)據(jù)。如果數(shù)據(jù)同步任務(wù)中的數(shù)據(jù)源與使用的DataWorks資源組不在同一個(gè)時(shí)區(qū),則會(huì)導(dǎo)致同步的數(shù)據(jù)有誤。
費(fèi)用說明
數(shù)據(jù)集成同步任務(wù)運(yùn)行會(huì)占用數(shù)據(jù)集成任務(wù)執(zhí)行資源,DataWorks會(huì)根據(jù)您使用的資源進(jìn)行收費(fèi),此外,離線同步任務(wù)通過調(diào)度系統(tǒng)下發(fā)至對應(yīng)資源組運(yùn)行時(shí),還會(huì)產(chǎn)生調(diào)度相關(guān)費(fèi)用。詳情請參見計(jì)費(fèi)簡介。
說明調(diào)度費(fèi)用詳情請參見計(jì)費(fèi)簡介。
關(guān)于任務(wù)下發(fā)機(jī)制,詳情請參見DataWorks資源組概述。
如果數(shù)據(jù)集成同步任務(wù)使用的數(shù)據(jù)源配置了公網(wǎng)地址,則執(zhí)行同步任務(wù)時(shí)將產(chǎn)生公網(wǎng)流量費(fèi)用。費(fèi)用說明請參見公網(wǎng)流量計(jì)費(fèi)說明。
功能概述
離線同步支持的能力如下圖所示:
功能 | 描述 |
異構(gòu)數(shù)據(jù)源間的數(shù)據(jù)同步 | 數(shù)據(jù)集成目前支持40+數(shù)據(jù)源類型,包括關(guān)系型數(shù)據(jù)庫、非結(jié)構(gòu)化存儲(chǔ)、大數(shù)據(jù)存儲(chǔ)、消息隊(duì)列間的數(shù)據(jù)同步。您可以通過定義來源與去向數(shù)據(jù)源,并通過數(shù)據(jù)集成提供的數(shù)據(jù)抽取插件(Reader)、數(shù)據(jù)寫入插件(Writer),實(shí)現(xiàn)任意結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)源之間數(shù)據(jù)傳輸。詳情請參見:支持的數(shù)據(jù)源及同步方案。 |
復(fù)雜網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)同步 | 離線同步支持云數(shù)據(jù)庫,本地IDC、ECS自建數(shù)據(jù)庫或非阿里云數(shù)據(jù)庫等環(huán)境下的數(shù)據(jù)同步。您可以根據(jù)數(shù)據(jù)庫所在網(wǎng)絡(luò)環(huán)境,選擇合適的網(wǎng)絡(luò)解決方案來實(shí)現(xiàn)數(shù)據(jù)源與資源組的網(wǎng)絡(luò)連通。在配置同步任務(wù)前,您需要確保數(shù)據(jù)集成資源組與您將同步的數(shù)據(jù)來源端與目標(biāo)端網(wǎng)絡(luò)環(huán)境已經(jīng)連通,對應(yīng)數(shù)據(jù)庫環(huán)境與網(wǎng)絡(luò)連通配置詳情請參見:網(wǎng)絡(luò)連通方案。 |
數(shù)據(jù)同步場景 | 離線同步支持單表同步至目標(biāo)端單表、分庫分表同步至目標(biāo)端單表兩類同步場景。同時(shí),結(jié)合DataWorks調(diào)度參數(shù),實(shí)現(xiàn)增量數(shù)據(jù)和全量數(shù)據(jù)周期性寫入到目標(biāo)表對應(yīng)分區(qū)功能。離線同步任務(wù)使用調(diào)度參數(shù),再結(jié)合運(yùn)維中心補(bǔ)數(shù)據(jù)功能,可實(shí)現(xiàn)基于一套任務(wù)配置,批量將歷史數(shù)據(jù)同步至目標(biāo)數(shù)據(jù)庫或數(shù)據(jù)倉庫指定表或表指定分區(qū)。調(diào)度參數(shù)說明請參見:調(diào)度參數(shù)支持的格式。 說明
|
離線同步任務(wù)配置 | 您可以通過以下方式配置數(shù)據(jù)集成離線同步任務(wù)。
說明 任務(wù)配置相關(guān)能力說明請參見:離線同步任務(wù)配置相關(guān)能力。 |
離線同步任務(wù)運(yùn)維 |
|
離線同步任務(wù)配置相關(guān)能力
支持的能力 | 說明 |
全量或增量數(shù)據(jù)同步 | 離線同步任務(wù)可以通過配置數(shù)據(jù)過濾并結(jié)合調(diào)度參數(shù)使用,來決定同步全量數(shù)據(jù)還是增量數(shù)據(jù)。不同插件增量同步配置方式不同,關(guān)于增量數(shù)據(jù)同步配置詳情請參見:場景:配置增量數(shù)據(jù)離線同步任務(wù)。 |
定義字段映射關(guān)系并為目標(biāo)表字段賦值 | 在同步任務(wù)配置過程中,您可通過字段映射,來定義源端字段與目標(biāo)端字段的讀取和寫入關(guān)系,源端字段將會(huì)根據(jù)字段映射關(guān)系寫入目標(biāo)端對應(yīng)類型的字段中。
|
作業(yè)速率上限控制 |
|
分布式執(zhí)行任務(wù) | 部分?jǐn)?shù)據(jù)源支持分布式執(zhí)行任務(wù),分布式執(zhí)行模式可以將您的任務(wù)切片分散到多臺(tái)執(zhí)行節(jié)點(diǎn)上并發(fā)執(zhí)行,進(jìn)而做到同步速度隨執(zhí)行集群規(guī)模做水平擴(kuò)展,突破單機(jī)執(zhí)行瓶頸。如果您對于同步性能有比較高的訴求可以使用分布式模式。 另外分布式模式也可以使用機(jī)器的碎片資源,對資源利用率友好。 說明 具體數(shù)據(jù)源是否支持分布式執(zhí)行,詳情請參見各插件文檔及實(shí)際產(chǎn)品界面。 |
臟數(shù)據(jù)個(gè)數(shù)控制 | 數(shù)據(jù)集成默認(rèn)允許臟數(shù)據(jù)產(chǎn)生,支持您對同步過程中產(chǎn)生的臟數(shù)據(jù)個(gè)數(shù)設(shè)置閾值,并定義其影響:
說明 臟數(shù)據(jù)是對于業(yè)務(wù)沒有意義,格式非法或者同步過程中出現(xiàn)問題的數(shù)據(jù)。單條數(shù)據(jù)寫入目標(biāo)數(shù)據(jù)源過程中發(fā)生了異常,則此條數(shù)據(jù)為臟數(shù)據(jù)。 因此只要是寫入失敗的數(shù)據(jù)均被歸類于臟數(shù)據(jù)。例如,源端是VARCHAR類型的數(shù)據(jù)寫到INT類型的目標(biāo)列中,導(dǎo)致因?yàn)檗D(zhuǎn)換不合理而無法寫入的數(shù)據(jù)。您可以在同步任務(wù)配置時(shí),控制同步過程中是否允許臟數(shù)據(jù)產(chǎn)生,并且支持控制臟數(shù)據(jù)條數(shù),即當(dāng)臟數(shù)據(jù)超過指定條數(shù)時(shí),任務(wù)失敗退出。 |
數(shù)據(jù)集成使用調(diào)度參數(shù)的相關(guān)說明
離線同步
數(shù)據(jù)集成離線同步任務(wù)中,可以使用調(diào)度參數(shù)來指定同步源表及目標(biāo)表的數(shù)據(jù)路徑以及數(shù)據(jù)范圍,調(diào)度參數(shù)的配置方式與其他類型任務(wù)一致,沒有特殊限制。
在同步任務(wù)運(yùn)行時(shí),任務(wù)中配置的占位符參數(shù)都會(huì)被替換為調(diào)度參數(shù)表達(dá)式所表達(dá)的實(shí)際值,然后再執(zhí)行數(shù)據(jù)同步。
示例:創(chuàng)建一個(gè)離線同步任務(wù),每天從源MySQL訂單表中同步前一天新產(chǎn)生的訂單數(shù)據(jù)到MaxCompute目標(biāo)表的當(dāng)天分區(qū),原表訂單的創(chuàng)建時(shí)間字段為gmt_created,目標(biāo)odps表的分區(qū)字段為ds,可以將任務(wù)配置如下:
同步任務(wù)配置:
調(diào)度參數(shù)配置:
訂單表每天的增量數(shù)據(jù),通過配置where過濾條件的方式進(jìn)行篩選:
bizdate_yesterday為表示增量訂單的歸屬日期(定時(shí)任務(wù)的前一日日期),調(diào)度參數(shù)表達(dá)式為${yyyy-mm-dd}。
bizdate_today表示增量訂單的截止日期(定時(shí)任務(wù)的當(dāng)日日期),調(diào)度參數(shù)表達(dá)式為$[yyyy-mm-dd]。
bizdate_today和bizdate_yesterday為調(diào)度參數(shù)名字,可以自行指定,在實(shí)際執(zhí)行時(shí) bizdate_today和bizdate_yesterday都會(huì)被替換為調(diào)度參數(shù)所表達(dá)的時(shí)間。
目標(biāo)MaxCompute表分區(qū)名稱也以調(diào)度參數(shù)的方式指定,$bizdate表示業(yè)務(wù)日期,定時(shí)任務(wù)執(zhí)行時(shí),任務(wù)配置的分區(qū)表達(dá)式會(huì)替換為調(diào)度參數(shù)所表達(dá)的業(yè)務(wù)日期。調(diào)度參數(shù)表達(dá)式的詳細(xì)配置說明請參考文檔:配置并使用調(diào)度參數(shù)。
以上的例子在運(yùn)行時(shí)任務(wù)代碼配置的占位符參數(shù)被替換如下(圖示業(yè)務(wù)日期選擇為20221116):
任務(wù)配置中如果配置了占位符,一定要設(shè)置其對應(yīng)的調(diào)度參數(shù)。
整庫離線同步
對于整庫離線同步,僅支持使用如下調(diào)度參數(shù):
bizdate=${yyyymmdd} year=$[yyyy] month=$[mm] day=$[dd] hour=$[hh24]
任務(wù)配置時(shí),變量需定義為${bizdate}, ${year},${month}, ${day}, ${hour}
示例:整庫離線同步至MaxCompute(一次性全量周期性增量)天增量篩選的where條件可以配置成:STR_TO_DATE('${bizdate}', '%Y%m%d') <= columnName AND columnName < DATE_ADD(STR_TO_DATE('${bizdate}', '%Y%m%d'), interval 1 day)
如下圖所示: