ODS層設(shè)計(jì)規(guī)范
本文為您介紹ODS層設(shè)計(jì)規(guī)范。
數(shù)據(jù)同步及處理規(guī)范
數(shù)據(jù)同步方式的選擇
基本規(guī)范通過(guò)需求形式落地到DataWorks的數(shù)據(jù)集成,規(guī)范落地情況依賴工具的推進(jìn)節(jié)奏。一個(gè)系統(tǒng)的源表只允許同步一次到MaxCompute。
數(shù)據(jù)加載與處理
通過(guò)一鍵實(shí)時(shí)同步至MaxCompute方案實(shí)現(xiàn),請(qǐng)參見一鍵實(shí)時(shí)同步至MaxCompute。
命名規(guī)范
表命名規(guī)范
表命名規(guī)則:{層次}{源系統(tǒng)表名}{保留位/delta與否}。
增量數(shù)據(jù):{project_name}.s{源系統(tǒng)表名}delta。
全量數(shù)據(jù):{project_name}.s{源系統(tǒng)表名}。
ODS ETL過(guò)程的臨時(shí)表:{project_name}.tmp{臨時(shí)表所在過(guò)程的輸出表}{從0開始的序號(hào)}。
按小時(shí)同步的增量表:{project_name}.s{源系統(tǒng)表名}{delta}_{hh}。
按小時(shí)同步的全量表:{project_name}.s{源系統(tǒng)表名}{hh}。
當(dāng)不同源系統(tǒng)同步到同一個(gè)Project下的表命名沖突時(shí),您需要給同步較晚的表名加上源系統(tǒng)的dbname以解決沖突。
字段命名規(guī)范
字段默認(rèn)使用源系統(tǒng)的字段名。
字段名與MaxCompute關(guān)鍵字沖突時(shí),在源字段名后加上col,即源字段名col。MaxCompute關(guān)鍵字詳情請(qǐng)參見保留字與關(guān)鍵字。
同步任務(wù)命名規(guī)范
任務(wù)名:{源系統(tǒng)表名}[delta]。
說(shuō)明同一Project下異庫(kù)同名表的任務(wù)名為{源系統(tǒng)表名}{tddl的appname}[_delta]。
任務(wù)的輸出名稱,即輸出表的名稱,需要與數(shù)據(jù)存儲(chǔ)及生命周期管理規(guī)范保持一致。詳情請(qǐng)參見數(shù)據(jù)存儲(chǔ)及生命周期管理規(guī)范。
數(shù)據(jù)存儲(chǔ)及生命周期管理規(guī)范
數(shù)據(jù)表類型 | 存儲(chǔ)方式 | 最長(zhǎng)存儲(chǔ)保留策略 |
ODS流水型全量表 | 按天分區(qū) |
|
ODS鏡像型全量表 | 按天分區(qū) |
|
ODS增量表 | 按天分區(qū) |
|
ODS ETL過(guò)程臨時(shí)表 | 按天分區(qū) | 最多保留最近7天分區(qū)。 |
DBSync非去重?cái)?shù)據(jù) | 按天分區(qū) | 由應(yīng)用通過(guò)中間層保留歷史數(shù)據(jù),默認(rèn)ODS層不保留歷史數(shù)據(jù)。 |
數(shù)據(jù)質(zhì)量規(guī)范
每個(gè)ODS全量表必須配置唯一性字段標(biāo)識(shí)。
每個(gè)ODS全量表必須有注釋。
每個(gè)ODS全量表必須監(jiān)控分區(qū)空數(shù)據(jù)。
僅有監(jiān)控要求的ODS表才需要?jiǎng)?chuàng)建數(shù)據(jù)質(zhì)量監(jiān)控規(guī)則。您可以通過(guò)DataWorks配置數(shù)據(jù)質(zhì)量監(jiān)控規(guī)則,詳情請(qǐng)參見配置數(shù)據(jù)質(zhì)量監(jiān)控。
建議對(duì)重要表的重要枚舉類型字段進(jìn)行枚舉值變化及枚舉值分布監(jiān)控。
建議對(duì)ODS表的數(shù)據(jù)量及數(shù)據(jù)記錄數(shù)設(shè)置周同環(huán)比監(jiān)控,如果周同環(huán)比無(wú)變化,表示源系統(tǒng)已遷移或下線。