有贊資料質量保障體系
阿新 • • 發佈:2022-01-27
一、有贊資料鏈路
1、資料鏈路介紹
首先介紹有讚的資料總體架構圖:
自頂向下可以大致劃分為應用服務層、資料閘道器層、應用儲存層、資料倉庫,並且作業開發、元資料管理等平臺為資料計算、任務排程以及資料查詢提供了基礎能力。
以上對整體架構做了初步的介紹,對於質量把控來說,最核心的兩個部分是:資料倉庫以及資料應用部分。因為這兩部分屬於資料鏈路中的核心環節,相對於其他層級而言,日常改動也更為頻繁,出現問題的風險也比較大。
二、資料層測試
1、整體概覽
首先,針對資料層的質量保障,可以分成三個方面:資料及時性、完整性、準確性。
2、 資料及時性
資料及時性,顧名思義就是測試資料需要按時產出。及時性重點關注的三個要素是:定時排程時間、優先順序以及資料deadline。其中任務的優先順序決定了它獲取資料計算資源的多少,影響了任務執行時長。資料deadline則是資料最晚產出時間的統一標準,需要嚴格遵守。
這三要素中,屬於“普世規則”且在質量保障階段需要重點關注的是:資料deadline。那麼我們基於資料deadline,針對及時性的保障策略就可分為兩種:
-
監控離線資料任務是否執行結束。這種方式依賴於有贊作業開發平臺的監控告警,若資料任務在deadline時間點未執行完成,則會有郵件、企微、電話等告警形式,通知到相應人員。
-
檢查全表條數或者檢查分割槽條數。這種方式依賴介面自動化平臺,通過呼叫dubbo介面,判斷介面返回的資料指標是否為0,監控資料是否產出。
其次我們可以關注失敗、重試次數,當任務執行過程中出現多次失敗、重試的異常情況,可以丟擲告警讓相關人員感知。這部分的告警是對deadline告警的補充,目前在有贊作業開發平臺上也有功能整合。
3、資料完整性
資料完整性,顧名思義看資料是不是全,重點評估兩點:資料不多、資料不少。
-
資料不多:一般是檢查全表資料、重要列舉值,看資料有沒有多餘、重複或者資料主鍵是否唯一。
-
資料不少:一般是檢查全表資料、重要欄位(比如主鍵欄位、列舉值、日期等),看欄位的數值是否為空、為null等。
可見資料完整性和業務本身關聯度沒有那麼密切,更多的是數倉表的通用內容校驗。所以從一些基礎維度,我們可以將測試重點拆成表級別、欄位級別兩個方向。
表級別完整性:
-
全表維度,通過檢視全表的總行數/表大小,若出現表總行數/總大小不變或下降,說明表資料可能出現了問題。
-
分割槽維度,通過檢視當日分割槽表的資料行數/大小,若和之前分割槽相比差異太大(偏大或偏小),說明表資料可能出現了問題。