數(shù)據(jù)倉庫主要包含數(shù)據(jù)集成、數(shù)據(jù)計算、數(shù)據(jù)服務(wù)、數(shù)據(jù)質(zhì)量、數(shù)據(jù)資產(chǎn)等模塊。在數(shù)倉建設(shè)中,對數(shù)據(jù)開發(fā)者說最主要工作在數(shù)據(jù)集成和數(shù)據(jù)計算,這2塊在Dataworks中都需要創(chuàng)建業(yè)務(wù)流程完成。正如一般流程開發(fā)一樣,雜亂的業(yè)務(wù)流程會導(dǎo)致后期維護(hù)困難,如何規(guī)范業(yè)務(wù)流程的模塊化,可以從以下幾個點考慮:
1、數(shù)據(jù)通用角度。數(shù)倉的表分為維度表和事實表,維度作為度量的環(huán)境,在數(shù)倉中是一份基礎(chǔ)的通用數(shù)據(jù),一旦前期的維度表字段規(guī)劃好后基本不會發(fā)生變化。
2、流程功能角度。業(yè)務(wù)流程從功能上可以分為數(shù)據(jù)集成、數(shù)據(jù)計算等。數(shù)據(jù)集成可以從接入方式、接入方法、接入周期、合并方式、合并方法、合并周期等角度去詮釋,數(shù)據(jù)計算可以從數(shù)據(jù)域、業(yè)務(wù)過程等角度去詮釋。
3、任務(wù)發(fā)布角度。Dataworks里的業(yè)務(wù)流程里需要配置"流程參數(shù)",該流程參數(shù)是作用于業(yè)務(wù)流程全局的,一旦發(fā)生修改,業(yè)務(wù)流程下的所有"數(shù)據(jù)任務(wù)"都需要全部提交,造成很多業(yè)務(wù)節(jié)點被動上線,加大任務(wù)審核人員的工作量。
基于以上考慮及實際工作實踐,將業(yè)務(wù)流程劃分為3大模塊,并納入到實際解決方案中:
1、公共維度
2、數(shù)據(jù)計算(按數(shù)據(jù)域劃分)
3、數(shù)據(jù)集成
實際Dataworks界面大致如下:

? ? 1、公共維度:包含所有維度表的計算流程。解決方案中也命名為"公共維度"。
? ? 2、數(shù)據(jù)計算:{數(shù)據(jù)域}_{業(yè)務(wù)需求}。相同{數(shù)據(jù)域}的數(shù)據(jù)計算流程歸入同一解決方案中,解決方案命名為{數(shù)據(jù)域}。
? ? 3、數(shù)據(jù)集成:分為數(shù)據(jù)同步、數(shù)據(jù)合并。一般使用binlog日志+首次直連全量同步方式完成數(shù)據(jù)同步,再通過增量數(shù)據(jù)+全量數(shù)據(jù)合并的方式完成數(shù)據(jù)合并。解決方案中也命名為"數(shù)據(jù)集成"。
數(shù)據(jù)同步:源端數(shù)據(jù)庫數(shù)據(jù)通過binlog或直連的方式,數(shù)據(jù)同步到數(shù)倉,
命名:{數(shù)據(jù)同步}_{同步方式}_{接入方式}_{同步頻度}_[同步工具]。
同步方式:增量、全量。
接入方式:RI(實時接入)、DI(離線接入)。
同步頻度:小時、天。
同步工具:DW(Dataworks)、DTS等。
數(shù)據(jù)同步_全量_DI_DW:一般只有首次通過離線方式完成數(shù)據(jù)的全量同步到數(shù)倉,同步完畢后會將任務(wù)調(diào)度改為暫停。后續(xù)發(fā)生數(shù)據(jù)不一致時作為備用方案使用。
數(shù)據(jù)同步_增量_DI_小時_DW:通過離線接入增量日志,將離線日志接入到"小時分區(qū)"中。
數(shù)據(jù)同步_增量_RI_小時_DW:通過實時接入binlog日志,將binlog日志接入到"小時"分區(qū)中。
數(shù)據(jù)同步_增量_DI_天_DW、數(shù)據(jù)同步_增量_RI_天_DW:理論上也可以有這2類業(yè)務(wù)流程,但從擴(kuò)展性來說小時的增量同步后期擴(kuò)展性更強(qiáng),建議不存在這類業(yè)務(wù)流程。
數(shù)據(jù)合并:將MaxCompute中的增量表、全量表按小時、天合并到全量表最新的分區(qū)里。
命名: {數(shù)據(jù)合并}_{同步方式}_{同步頻度}
數(shù)據(jù)合并_增量_天:適合全量按天分區(qū)表。
數(shù)據(jù)合并_增量_小時:適合全量按小時分區(qū)表。
喜歡的朋友請幫忙點贊,謝謝大家!