數(shù)據(jù)倉庫研發(fā)規(guī)范(附錄)

來源于公眾號:?數(shù)據(jù)倉庫與Python大數(shù)據(jù)
數(shù)據(jù)倉庫研發(fā)規(guī)范整體流程
下圖為根據(jù)階段規(guī)劃與角色職責(zé)的內(nèi)容,整理出的數(shù)據(jù)倉庫研發(fā)規(guī)范的整體流程。
附錄
數(shù)據(jù)倉庫需求模板
數(shù)據(jù)探查報告
ETL文檔
調(diào)度設(shè)計文檔
單元測試報告
發(fā)布操作文檔
代碼評審報告
測試分析方案報告
交付測試報告
質(zhì)量評估報告模板
驗(yàn)收報告模板
一、數(shù)據(jù)倉庫需求模板
本章節(jié)將為您介紹數(shù)據(jù)倉庫需求模板、常規(guī)需求申請單和迭代需求申請單。
填寫說明:
*為必填項(xiàng)目,其它可以選擇性進(jìn)行填寫。
指標(biāo)邏輯可以引用指標(biāo)和術(shù)語(或指標(biāo)庫)中的定義。
如果數(shù)據(jù)范圍、更新頻率、時間窗口、數(shù)據(jù)提供形式和表頭信息不一致,可以針對指標(biāo)項(xiàng)單獨(dú)說明。
如果涉及到數(shù)據(jù)提供或數(shù)據(jù)交互,數(shù)據(jù)驗(yàn)收人、待驗(yàn)收數(shù)據(jù)樣本和數(shù)據(jù)驗(yàn)收方式為必填項(xiàng),其它項(xiàng)并非強(qiáng)制需求。
數(shù)據(jù)倉庫業(yè)務(wù)需求模板
| 數(shù)據(jù)倉庫業(yè)務(wù)需求模板 | |||
|---|---|---|---|
| 需求申請 | 需求申請人* | ||
| 需求使用方* | |||
| 期望完成日期* | |||
| 需求類型* | |||
| 需求目的 | 需求背景* | ||
| 期望目標(biāo)* | |||
| 應(yīng)用系統(tǒng)名 | |||
| 應(yīng)用系統(tǒng)聯(lián)系人 | |||
| 需求內(nèi)容 | 需求概覽 | 需求范圍* | 描述此次需求涉及的范圍(可以從人群特征,業(yè)務(wù)場景等維度定義數(shù)據(jù)范圍、改造哪些表等)。 |
| 包含的指標(biāo) | 多個指標(biāo)以逗號分隔。如果指標(biāo)較多,可以在日常業(yè)務(wù)需求附表中的指標(biāo)名稱一欄填寫。 | ||
| 數(shù)據(jù)交互方式 | 涉及到數(shù)據(jù)輸出的,需要描述數(shù)據(jù)的交互方式、格式等。 | ||
| 附件說明 | 如果有附件需要補(bǔ)充的,請?jiān)诖苏f明,并同步附加附件。 | ||
| 項(xiàng)目涉眾 | 數(shù)據(jù)產(chǎn)品經(jīng)理 | ||
| 設(shè)計人員 | |||
| 開發(fā)人員 | |||
| 測試人員 | |||
| 數(shù)據(jù)安全與合規(guī)人員 | |||
| 需求版本變更歷史 | |||
| 版本號 | 版本確認(rèn)日期 | 版本變更點(diǎn) | 提交人 |
常規(guī)需求申請單
指標(biāo)需求中通常會涉及到下表中的約定項(xiàng),如果需要自定義約定項(xiàng),可以在自定義格式列進(jìn)行填寫。
| 約定項(xiàng) | 默認(rèn)格式 | 自定義格式 |
|---|---|---|
| 日期 | yyyymmdd | |
| 比率值 | 4位小數(shù)點(diǎn) | |
| 時間戳 | yyyy-mm-dd hh24:mi:ss,格林尼治時間。 | |
| 金額 | 單位為分。 | |
| 時間粒度 | 日:T-1日的00:00~24:00。 | |
| 周:周一到周日,對應(yīng)指標(biāo)僅周日有值。 | ||
| 月:自然月,對應(yīng)指標(biāo)僅月末最后一天有值。 | ||
| 年累計:自然年,1月1日到T-1。 | ||
| 財年累計:財年4月1日到T-1。 |
| 約定項(xiàng) | 填寫內(nèi)容 | 約定項(xiàng) | 填寫內(nèi)容 |
|---|---|---|---|
| 時間窗口(歷史數(shù)據(jù)要求)* | 存儲周期* | ||
| 更新頻率(日、周、月、小時、分鐘、其它)* | 期望數(shù)據(jù)更新時間* | ||
| 數(shù)據(jù)驗(yàn)收人 | 待驗(yàn)收數(shù)據(jù)樣本 | ||
| 數(shù)據(jù)驗(yàn)收方式 | 數(shù)據(jù)提供形式 |
| |
| 備注 | |||
| 粒度 | 目錄 | 接口表 | 指標(biāo)名稱* | 指標(biāo)邏輯* | 空值/異常值處理* | 監(jiān)控項(xiàng) | 值是否唯一* | 數(shù)據(jù)來源* | 安全等級* | 備注 |
1
迭代需求申請單
| 數(shù)據(jù)倉庫需求變更申請單 | |||
|---|---|---|---|
| 需求變更申請 | 原始需求ID* | ||
| 需求申請人* | |||
| 需求使用方* | |||
| 期望完成日期* | |||
| 需求變更原因 | 需求變更背景* | ||
| 是否可以在需求評審前預(yù)知* | |||
| 如何避免此類變更發(fā)生* | |||
| 需求變更內(nèi)容 | 原始需求(對于新增的需求,填無)* | 變更內(nèi)容* | 變更類型* |
二、代碼評審報告
代碼評審要求
| 用例小類 | 測試要點(diǎn) | 說明 | 是否已檢查 |
|---|---|---|---|
| 數(shù)據(jù)一致性測試 | 主鍵唯一性 | 產(chǎn)出表必須有物理主鍵或邏輯主鍵,且在數(shù)據(jù)上主鍵成立。 | 是 |
| 主鍵和外鍵邏輯關(guān)系 | 檢查設(shè)計文檔里關(guān)于主外鍵的設(shè)計是否在開發(fā)階段得以實(shí)現(xiàn),且在數(shù)據(jù)上成立,例如是否存在外鍵丟失。 | 是 | |
| 系統(tǒng)/業(yè)務(wù)間格式和類型一致性檢查 | 檢查設(shè)計文檔描述的字段定義是否與實(shí)際值一致。例如日期是否包含時分秒,金額字段是否為Double,單位為元/分,保留小數(shù)位數(shù)。 | 是 | |
| 業(yè)務(wù)來源一致性檢查 | 從同樣業(yè)務(wù)來源的指標(biāo)是否在數(shù)據(jù)上一致。例如同樣是余額指標(biāo),數(shù)據(jù)來源是否一致或來自同一加工鏈路,如果不是,則結(jié)果是否一致。 | 是 | |
| 同名邏輯定義檢查 | 字段或邏輯定義相同,是否存在值不一樣的情況。例如同樣是貸款發(fā)放額,不同的表之間數(shù)據(jù)是否一致。 | 是 | |
| 數(shù)據(jù)完整性 | 數(shù)據(jù)獲取是否完整 | 代碼中的數(shù)據(jù)獲取邏輯是否完整。例如累計客戶數(shù),是否完整包含了歷史上有效存在,但當(dāng)前不存在的客戶。 | 是 |
| 邊界值檢查 | 代碼中對于邊界值的處理是否正確。例如最近30天包含今天但不包含第前30天的。例如日期篩選是否為雙閉區(qū)間。 | 是 | |
| 過濾條件完整性 | 過濾條件是否完整。例如篩選當(dāng)前有效會員需要加上會員狀態(tài)的限制。 | 是 | |
| 指標(biāo)間邏輯檢查 | 同表字段間邏輯檢查 | 同表不同字段間在業(yè)務(wù)上存在的邏輯是否在數(shù)據(jù)上成立。例如貸款為結(jié)清狀態(tài),則結(jié)清日期一定非空;狀態(tài)為逾期,則逾期金額一定大于0。 | 是 |
| 跨表/跨系統(tǒng)邏輯檢查 | 跨表/跨系統(tǒng)間在業(yè)務(wù)上存在的邏輯是否在數(shù)據(jù)上成立。例如不良貸款余額>0,則該賬戶三級分類應(yīng)為次級、可疑和損失。 | 是 |
代碼評審測試用例記錄
| 備注 | 測試結(jié)果 | 測試結(jié)果備注 | 是否轉(zhuǎn)化監(jiān)控 | 監(jiān)控閾值 | 創(chuàng)建日期 | 創(chuàng)建人 | 所屬項(xiàng)目名稱 |
|---|---|---|---|---|---|---|---|
| 檢查主鍵的唯一性 | 通過 | 是 | <1 | 2019/3/16 | XXX | 訂單主題分析 |
三、驗(yàn)收報告模板
測試驗(yàn)收點(diǎn)
| 序號 | 測試驗(yàn)證點(diǎn)(按實(shí)際情況增減) | 是否通過 |
|---|---|---|
| 1 | 數(shù)據(jù)主鍵是否重復(fù)。 | |
| 2 | 結(jié)果數(shù)據(jù)的明細(xì)分布,包括數(shù)據(jù)量、空值、均值及其他相關(guān)業(yè)務(wù)指標(biāo)的分布。 | |
| 3 | 抽樣檢查:與需求設(shè)定時的抽樣樣本進(jìn)行對比,查看是否存在差異。 | |
| 4 | 如果是迭代需求,需要與一期的結(jié)果進(jìn)行對比,查看數(shù)據(jù)量差異、明細(xì)差異等。 | |
| 5 | 某些數(shù)值型結(jié)果機(jī)型同比、環(huán)比,獲得大概增長率和變化范圍,判斷數(shù)據(jù)的正確性。 |
需求實(shí)現(xiàn)情況
已實(shí)現(xiàn)內(nèi)容。
未實(shí)現(xiàn)內(nèi)容:需要說明未實(shí)現(xiàn)的原因。
發(fā)現(xiàn)問題列表
| 序號 | 問題描述 | 風(fēng)險影響分析 | 風(fēng)險等級 | 建議跟進(jìn)負(fù)責(zé)人 |
|---|---|---|---|---|
| Delay_1 | 由于XX API回參格式限制,XX字段返回結(jié)果無法適配計算引擎字段類型。 | 接口改造需花費(fèi)X天,導(dǎo)致項(xiàng)目整體進(jìn)度Delay X天。 | 高 | 張三 |
驗(yàn)收評估結(jié)果
業(yè)務(wù)方(數(shù)據(jù)產(chǎn)品經(jīng)理):通過/不通過。
驗(yàn)收通過。遺留的問題在本項(xiàng)目中可以接受,但Delay_1缺陷必須在xxxx年x月x日之前啟動升級包修復(fù)。
四、交付測試報告
代碼交付情況
關(guān)鍵指標(biāo)包括BUG(每輪測試發(fā)現(xiàn)的缺陷總數(shù))、執(zhí)行率和通過率。
文檔交付情況

文檔測試準(zhǔn)入條件

交付測試遺留問題
記錄交付測試通過后,遺留在功能測試階段未解決的問題。
五、單元測試報告
單元測試要求
| 用例小類 | 測試要點(diǎn) | 說明 | 是否已檢查(Y/N) |
|---|---|---|---|
| 規(guī)范性 | 命名規(guī)范檢查(表、視圖、工作流、字段) | 是否符合MaxCompute數(shù)倉建設(shè)規(guī)范管理指南中命名規(guī)范的表命名規(guī)范。 | |
| 代碼格式和注釋規(guī)范性 | 是否符合MaxCompute數(shù)倉建設(shè)規(guī)范管理指南中的編碼規(guī)范。 | ||
| 表引用規(guī)范性 | 數(shù)據(jù)不允許跨層引用。 | ||
| 表更新策略規(guī)范 | 建議臨時表均為非分區(qū)表,正式表均為分區(qū)表。 | ||
| 是否支持重跑 | 代碼必須支持重跑。 | ||
| 源數(shù)據(jù)質(zhì)量 | 非空值檢查 | 檢查所用字段是否存在空值,以及代碼對空值處理的策略是否正確。 | |
| 字段枚舉值檢查 | 字段的枚舉值是否都在代碼考慮范圍內(nèi),是否有可能會出現(xiàn)新值。 | ||
| 主鍵檢查 | 物理主鍵或邏輯主鍵是否成立。 | ||
| 數(shù)據(jù)完整性檢查 | 代碼中引用的數(shù)據(jù)能否支撐實(shí)際需求。 | ||
| 字段間邏輯檢查 | 字段間的業(yè)務(wù)邏輯關(guān)系是否在數(shù)據(jù)上成立,例如余額=總的發(fā)放-總的回收。 | ||
| 代碼質(zhì)量/BUG檢查 | 歷史拉鏈表檢查斷鏈/交叉鏈 | 使用標(biāo)準(zhǔn)SQL進(jìn)行檢驗(yàn)。 | |
| 數(shù)據(jù)傾斜檢查 | 是否存在傾斜的情況,是否有大表join小表未用mapjoin等。 | ||
| 表分區(qū)選擇檢查 | 代碼對表分區(qū)的選擇是否正確。 | ||
| 關(guān)聯(lián)條件檢查 | 關(guān)聯(lián)條件是否正確,是否會產(chǎn)生意料外的結(jié)果,例如多對多關(guān)聯(lián)、笛卡爾積。 | ||
| 字段類型檢查 | 字段類型是否正確,例如:金額字段必須為X數(shù)據(jù)類型,編號字段必須為X數(shù)據(jù)類型。 | ||
| 執(zhí)行效率檢查 | 單條SQL執(zhí)行時間不超過30分鐘,單個腳本執(zhí)行時間不超過60分鐘。 | ||
| 數(shù)倉特殊需求 | 臟數(shù)據(jù)檢查 | 檢查是否有臟數(shù)據(jù)。 | |
| 增量/全量數(shù)據(jù)抽取規(guī)范 | 抽取時間大于X分鐘的,則考慮更改為增量抽取。 | ||
| 數(shù)倉抽取時間點(diǎn)檢查 | 數(shù)倉抽取時業(yè)務(wù)系統(tǒng)是否ready,抽取的數(shù)據(jù)是否完整。 | ||
| 指標(biāo)特性檢查 | 細(xì)分指標(biāo)趨勢檢查 | 例如會員拉鏈表記錄數(shù)相比前一天必須是正增長、當(dāng)日累計值-上日累計值必須大于0。 | |
| 不同粒度數(shù)據(jù)轉(zhuǎn)換正確性 | 例如細(xì)粒度向粗粒度匯總,通常使用最大/最高/最小/最低等過濾條件,如:支用層逾期天數(shù)轉(zhuǎn)換到客戶層指標(biāo)(最高逾期天數(shù))。最高逾期天數(shù) = Max(支用層逾期天數(shù))。 | ||
| 值域范圍檢查 | 檢查字段值的范圍是否正確,如:金額>=0,比率<=1,天數(shù)<=業(yè)務(wù)起始日期至今,還款日期>=放款日期。 | ||
| 代碼值分布檢查 | 從業(yè)務(wù)邏輯考量字段值的分布情況是否合理。 | ||
| 可累加值與不可累加值檢查 | 檢查可累加值和不可累加值的處理邏輯正確性,如:計算客戶數(shù)總計時需要做去重處理,金額則可以累加。 |
單元測試用例記錄
| 序號 | 用例大類 | 測試要點(diǎn) | 表 | 字段 | 自定義表達(dá)式 | 備注 |
|---|---|---|---|---|---|---|
| 1 | 規(guī)范性 | 命名規(guī)范檢查(表、視圖、工作流、字段) | jrcdm_agt_ovd_ins_detail_fact_dd | |||
| 2 | 規(guī)范性 | 是否支持重跑 | jrcdm_agt_ovd_ins_detail_fact_dd | |||
| 3 | 源數(shù)據(jù)質(zhì)量 | 主鍵檢查 | afclms_clms_loan_contract | contract_no | ||
| 4 | 指標(biāo)特性檢查 | 值域范圍檢查 | jrcdm_cust_drawndn_fact_ds | prin_max_ovd_days, inte_max_ovd_days | prin_max_ovd_days>=inte_max_ovd_days | 檢驗(yàn)逾期天數(shù)的業(yè)務(wù)邏輯。 |
| 5 | 指標(biāo)特性檢查 | 值域范圍檢查 | x_jredw_da_drawndn_ovd_date_info | Prin_Ovd_Start_Dt | Prin_Ovd_Start_Dt<=Prin_Ovd_End_Dt, Inte_Ovd_Start_Dt <=Inte_Ovd_End_Dt | 檢查業(yè)務(wù)邏輯正確性。 |
| 測試結(jié)果 | 測試結(jié)果備注 | 是否轉(zhuǎn)化監(jiān)控 | 監(jiān)控閾值 | 創(chuàng)建日期 | 創(chuàng)建人 | 所屬項(xiàng)目名稱 |
|---|---|---|---|---|---|---|
| 通過 | 2013/7/16 | XXX | 某項(xiàng)目 | |||
| 通過 | 2013/7/16 | XXX | 某項(xiàng)目 | |||
| 通過 | 2013/7/16 | XXX | 某項(xiàng)目 | |||
| 通過 | 是 | <1 | 2013/7/16 | XXX | 某項(xiàng)目 | |
| 未通過 | 開發(fā)代碼中存在以下兩個問題:
| 是 | <1 | 2013/7/16 | XXX | 某項(xiàng)目 |
六、發(fā)布操作文檔
| 序號 | 節(jié)點(diǎn)ID | 文件名 | 發(fā)布次序 | 是否需要生產(chǎn)冒煙 | 是否需要重跑歷史數(shù)據(jù) | 重跑歷史時間段 | 發(fā)布驗(yàn)證是否通過 |
|---|---|---|---|---|---|---|---|
| 1 | xxxxx | dw_user_log_info_d.sql | 1 | Y | Y | 20190326-20190426 | Y |
七、數(shù)據(jù)探查報告
數(shù)據(jù)探查報告模板,如下表所示。
| 字段順序 | 字段名 | 字段注釋 | 字段類型 | 總行數(shù) | 空值個數(shù) |
|---|---|---|---|---|---|
| 空值比例 | 唯一個數(shù) | 均值(number)::TOP1(string) | 最小值::TOP2 | 1%分位數(shù)::TOP3 | 5%分位數(shù)::TOP4 |
|---|---|---|---|---|---|
| 25%分位數(shù)::TOP5 | 中位數(shù)::BOT5 | 75%分位數(shù)::BOT4 | 95%分位數(shù)::BOT3 | 99%分位數(shù)::BOT2 | 最大值::BOT1 |
|---|---|---|---|---|---|
八、質(zhì)量評估報告模板
測試情況說明
測試用例執(zhí)行通過率:0%~100%。
每日發(fā)現(xiàn)故障趨勢圖。

線下缺陷嚴(yán)重程度分類。
需求實(shí)現(xiàn)說明
需求覆蓋率(在測分文檔中,需求與功能對應(yīng)列表為準(zhǔn)):0%~100%。
需求變更情況:包括已走正式流程的需求變更,郵件通告的需求變更,以及當(dāng)前功能改動了原有需求的說明。
階段 說明 分類 測分階段 增加老會員模式下添加銀行卡的出錯情況提示。 需求變更 老會員添加卡的流程中,增加生僻字用戶的判斷。 需求變更 增加推薦規(guī)則模板:推薦規(guī)則為空時的展示方式。 需求變更 未實(shí)現(xiàn)需求:請說明需求未實(shí)現(xiàn)的原因。
遺留問題列表
| 序號 | 問題描述 | 風(fēng)險影響分析 | 風(fēng)險等級 | 建議跟進(jìn)負(fù)責(zé)人 |
|---|---|---|---|---|
| Delay_1 | 由于XX API回參格式限制,XX字段返回結(jié)果無法適配計算引擎字段類型。 | 接口改造需花費(fèi)X天,導(dǎo)致項(xiàng)目整體進(jìn)度Delay X天。 | 高 | XXX |
質(zhì)量評估結(jié)果
測試是否通過
保留建議
遺留的問題在本項(xiàng)目中可以接受,但Delay_1缺陷必須在XXX年X月X日之前啟動升級包修復(fù)。
免責(zé)聲明:
本公眾號所有分享的軟件和資料來自網(wǎng)絡(luò)收集和整理,所有文字和圖片版權(quán)歸屬于原作者所有,且僅代表作者個人觀點(diǎn),與數(shù)據(jù)工匠俱樂部無關(guān),文章僅供讀者學(xué)習(xí)交流使用,并請自行核實(shí)相關(guān)內(nèi)容,如文章內(nèi)容涉及侵權(quán),請聯(lián)系后臺管理員刪除
免責(zé)聲明:
本公眾號所有分享的軟件和資料來自網(wǎng)絡(luò)收集和整理,所有文字和圖片版權(quán)歸屬于原作者所有,且僅代表作者個人觀點(diǎn),與數(shù)據(jù)工匠俱樂部無關(guān),文章僅供讀者學(xué)習(xí)交流使用,并請自行核實(shí)相關(guān)內(nèi)容,如文章內(nèi)容涉及侵權(quán),請聯(lián)系后臺管理員刪除
(歡迎大家加入數(shù)據(jù)工匠知識星球獲取更多資訊。)

掃描二維碼關(guān)注我們

我們的使命:發(fā)展數(shù)據(jù)治理行業(yè)、普及數(shù)據(jù)治理知識、改變企業(yè)數(shù)據(jù)管理現(xiàn)狀、提高企業(yè)數(shù)據(jù)質(zhì)量、推動企業(yè)走進(jìn)大數(shù)據(jù)時代。
我們的愿景:打造數(shù)據(jù)治理專家、數(shù)據(jù)治理平臺、數(shù)據(jù)治理生態(tài)圈。
我們的價值觀:凝聚行業(yè)力量、打造數(shù)據(jù)治理全鏈條平臺、改變數(shù)據(jù)治理生態(tài)圈。

了解更多精彩內(nèi)容
長按,識別二維碼,關(guān)注我們吧!
數(shù)據(jù)工匠俱樂部
微信號:zgsjgjjlb
專注數(shù)據(jù)治理,推動大數(shù)據(jù)發(fā)展。

