DataWorks實戰(zhàn)7-數(shù)據(jù)集成之數(shù)據(jù)同步詳解

開始之前,我們先聊下數(shù)據(jù)的分類吧。數(shù)據(jù)可以從多種維度進行分類,但從數(shù)倉開發(fā)角度看, 數(shù)據(jù)可以分為"結(jié)構(gòu)化數(shù)據(jù)"、"半結(jié)構(gòu)化數(shù)據(jù)"、"非結(jié)構(gòu)化數(shù)據(jù)"、"時序數(shù)據(jù)"等。其中結(jié)構(gòu)化數(shù)據(jù)包括關(guān)系型數(shù)據(jù)庫如RDS、ORACLE,半結(jié)構(gòu)化數(shù)據(jù)包括如可以解析成結(jié)構(gòu)化數(shù)據(jù)的xml、json文件,非結(jié)構(gòu)化數(shù)據(jù)包括如音頻、視頻、文本,時序數(shù)據(jù)包括設(shè)備上報的數(shù)據(jù)。應(yīng)對不同的數(shù)據(jù)我們需要做的事情或能做的事情往往不同,需要結(jié)合業(yè)務(wù)區(qū)別對待。

從數(shù)倉分層角度看,數(shù)據(jù)同步是ODS層(數(shù)據(jù)接入層)的第一步,在之前的文章《DataWorks實戰(zhàn)2-業(yè)務(wù)流程的模塊規(guī)劃》我們提到了在Dataworks需要創(chuàng)建3個數(shù)據(jù)同步業(yè)務(wù)流程,即What?(1、數(shù)據(jù)同步_全量_DI_DW,2、數(shù)據(jù)同步_增量_DI_小時_DW,3、數(shù)據(jù)同步_增量_RI_小時_DW。),今天我們說下為什么需要創(chuàng)建且只創(chuàng)建這3個,即Why?怎么實現(xiàn)這3個,即How?。? --可能后續(xù)會變化,不妨聽我好好解釋下為啥當下我這樣吧。

先解釋W(xué)hy!《大數(shù)據(jù)之路-阿里巴巴大數(shù)據(jù)實踐》的P30里對數(shù)據(jù)同步是這樣說明的:"總的來說,同步方式可以分為三種:直連同步、數(shù)據(jù)文件同步和數(shù)據(jù)庫日志解析同步"。在文章《Dataworks實戰(zhàn)5-數(shù)據(jù)集成之技術(shù)選型》里我們最終選擇了實時增量+離線全量、離線增量+離線全量的這2種方式作為我們的主要ETL方式,其中離線全量可以由直連同步方式完成、實時增量可以由數(shù)據(jù)庫日志解析同步完成,離線增量可以由數(shù)據(jù)文件同步完成。所以我們定義了流程命名規(guī)則:{數(shù)據(jù)同步}_{同步方式}_{接入方式}_{同步頻度}_[同步工具]。為了兼容業(yè)務(wù)發(fā)展,我們建議同步頻率盡量低些,如到小時粒度。

再解釋How!

數(shù)據(jù)同步_全量_DI_DW

這個業(yè)務(wù)流程包括2個作用,數(shù)據(jù)的離線全量同步、數(shù)據(jù)的離線清洗入庫。離線全量同步:一般只有首次通過離線方式完成數(shù)據(jù)的全量同步到數(shù)倉,同步完畢后會將任務(wù)調(diào)度改為暫停,后續(xù)發(fā)生數(shù)據(jù)不一致時作為備用方案使用。2、離線清洗入庫。數(shù)據(jù)清洗包含了如格式轉(zhuǎn)換、數(shù)據(jù)分區(qū)、數(shù)據(jù)歸檔等過程。格式轉(zhuǎn)換:源端數(shù)據(jù)格式不符合要求。數(shù)據(jù)分區(qū)、歸檔:源端數(shù)據(jù)量極大,下游業(yè)務(wù)使用起來性能較差,可以將全量數(shù)據(jù)進行按時間字段進行分區(qū),根據(jù)前端應(yīng)用系統(tǒng)的老化策略進行數(shù)據(jù)歸檔。

離線全量同步:方便進行數(shù)據(jù)管理,建議按微服務(wù)管理離線同步任務(wù)。建議將同一個微服務(wù)下的數(shù)據(jù)離線同步任務(wù)配置在同一個文件夾下,文件夾名稱為微服務(wù)對應(yīng)的英文三字碼或者微服務(wù)中文名稱。

離線任務(wù)命名規(guī)則:{di}_[同步周期]_{ods}_[數(shù)據(jù)源類型]_[數(shù)據(jù)源服務(wù)名]_{數(shù)據(jù)源表名}。其中同步周期可以為h(小時)、d(天),如果同步周期不填則表示這個僅僅是首次同步后會暫停的的離線任務(wù)(舉例:di_ods_t_axx_user,di_d_ods_t_axx_user后者會每天進行一次全量同步,而前者不會)。數(shù)據(jù)源類型是數(shù)據(jù)源的組件名簡寫,如t、ts、tp、hb (t:Mysql,ts:TableStore,tp:MQ,hb:Hbase)。說明:如果數(shù)據(jù)源表名中已標志數(shù)據(jù)源類型,則數(shù)據(jù)源類型不需要填寫。同理,如果數(shù)據(jù)源表名中已標注數(shù)據(jù)源微服務(wù)名,則數(shù)據(jù)源服務(wù)名也不需要填寫。

離線清洗入庫:一般情況下,使用離線全量同步即可。后期會在"數(shù)據(jù)集成之超級大表的處理"詳細介紹。

數(shù)據(jù)同步_增量_DI_小時_DW

命名規(guī)則與與數(shù)據(jù)同步_增量_DI_DW一致,兩者不同點這是按小時抽取源端數(shù)據(jù),需要配置按小時的任務(wù)調(diào)度。實際場景如讀取TableStore的增量日志到MaxCompute,再進行日志的列轉(zhuǎn)行存儲到增量表中。又如讀取遠程FTP增量文件后解析到MaxCompute中

數(shù)據(jù)同步_增量_RI_小時_DW

Dataworks可以按數(shù)據(jù)庫實例將數(shù)據(jù)表的binlog日志解析到我們的maxcompute里來,我們只需要配置實時任務(wù)即可。因為Dataworks實時任務(wù)是配置到數(shù)據(jù)源下的,所以命名規(guī)則:{ri}_{同步周期}_{數(shù)據(jù)源簡寫}_2_odps。如:? ?ri_h_axx_2_odps 表示axx數(shù)據(jù)庫(微服務(wù))的表的binlog日志同步到maxcompute中。

總結(jié):詮釋了3種數(shù)據(jù)同步業(yè)務(wù)流程是什么,為什么,怎么做。目前數(shù)據(jù)只是同步到數(shù)據(jù)中臺的ODS層里,ODS層還需要開展數(shù)據(jù)的周期調(diào)度,包括清洗、整合、歸檔等操作,我們將在下一章《數(shù)據(jù)集成之數(shù)據(jù)合并詳解》開始說明。



喜歡的朋友請幫忙點贊,謝謝大家!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容