資料質量監控

2021-09-19 09:28:35 字數 4342 閱讀 2890

資料質量監控

原創: 木東居士 木東居士 4天前

0x00 概述

隨著大資料時代的帶來,資料的應用也日趨繁茂,越來越多的應用和服務都基於資料而建立,資料的重要性不言而喻。而且,資料質量是資料分析和資料探勘結論有效性和準確性的基礎,也是這一切的資料驅動決策的前提!如何保障資料質量,確保資料可用性是每一位資料人都不可忽略的重要環節。

資料質量,主要從四個方面進行評估,即完整性、準確性、一致性和及時性,本文將會結合業務流程和資料處理流程,對這個四個方面進行詳細的分析和講解。

資料質量核心關注的要點

從資料計算鏈條理解,每乙個環節會出現哪些資料質量問題

從業務邏輯理解,資料質量監控能帶來的幫助

實現資料質量監控系統時要關注的點

資料質量監控面臨的一些難點和解決思路

0x01 四大關注點

本節,先簡單地聊一下資料質量需要關注的四個點:即完整性、準確性、一致性和及時性。這四個關注點,會在我們的資料處理流程的各個環節有所體現。

一、完整性

完整性是指資料的記錄和資訊是否完整,是否存在缺失的情況。資料的缺失主要包括記錄的缺失和記錄中某個字段資訊的缺失,兩者都會造成統計結果不準確,所以說完整性是資料質量最基礎的保障。

簡單來講,如果要做監控,需要考慮兩個方面:一是,資料條數是否少了,二是,某些欄位的取值是否缺失。完整性的監控,多出現在日誌級別的監控上,一般會在資料接入的時候來做資料完整性校驗。

二、準確性

準確性是指資料中記錄的資訊和資料是否準確,是否存在異常或者錯誤的資訊。

直觀來講就是看資料是否上準確的。一般準確性的監控多集中在對業務結果資料的監控,比如每日的活躍、收入等資料是否正常。

三、一致性

一致性是指同一指標在不同地方的結果是否一致。

資料不一致的情況,多出現在資料系統達到一定的複雜度後,同一指標會在多處進行計算,由於計算口徑或者開發人員的不同,容易造成同一指標出現的不同的結果。

四、及時性

在確保資料的完整性、準確性和一致性後,接下來就要保障資料能夠及時產出,這樣才能體現資料的價值。

及時性很容易理解,主要就是資料計算出來的速度是否夠快,這點在資料質量監控中可以體現在監控結果資料資料是否在指定時間點前計算完成。

0x02 資料處理各環節的資料質量

資料質量監控之所以難做,是因為在資料的各個環節都會出現資料質量的問題。因此,本節將以乙個典型的資料處理鏈條為例,為大家分享在每個階段容易出現哪些資料質量問題。

如下圖,為了舉例說明,我畫了乙個簡單的資料處理流程(在實際中的情況會比該情況複雜很多),我將資料處理分為 3 個階段:資料接入、中間資料清洗、結果資料計算。

資料接入

如上圖所示,資料接入環節最容易出現的是資料完整性的問題,這裡要特別注意的是資料量是否陡增和陡降。

陡增意味著可能會出現大量資料重複上報或者異常資料侵入等情況,陡降意味著可能出現資料丟失的情況。

另一方面,也要檢查不同欄位的的取值是否有丟失,比如位址和裝置字段是否出現大量空值等異常。

資料清洗

在這裡,我將資料清洗的範圍侷限在資料倉儲的中間表清洗上,這一部分一般也是我們的資料倉儲要建設的核心部分,業務到了一定程度,資料中間層的建設必不可少!

在這一環節,最容易出現的是資料一致性和資料準確性的問題。資料中間層保障來資料是從統一出口而出,讓資料一起對或者一起錯。但是很難保證資料準確性的問題,因此在資料清洗階段需要盡量保障資料的準確性。

資料結果

結果資料,主要是強調對外提供資料的過程,一般是從中間表中計算或直接取得的可展示資料。這裡是業務方和老闆最容易感知的到的地方,因此在這環節,主要關注的是資料準確性和資料及時性。

整體來講,資料的完整性、準確性、一致性和及時性在資料處理的各個階段都需要關注,但是可以先抓住的核心的問題來解決。

0x03 業務流程各環節的資料質量

聊完資料處理,我們繼續聊一下業務流程。資料最終的價值是要服務於業務的,因此資料質量最好也是能從解決業務問題出發,因此,本節從典型的業務場景來講解資料質量該怎麼做。

首先,居士認為,既然做監控肯定是要考慮使用方的,而我們的資料質量監控平台乙個很重要的作用是希望讓老闆、產品和運營這些使用方對我們的資料放心,那麼他們的關注點是什麼?居士認為,是業務指標!

那麼,這個業務指標可以從兩個角度來考慮:

單個指標的數值異常,比如說資料是否達到來某個臨界值?是否有陡增和陡降?

整個業務鏈條的資料是否有異常,比如從**到註冊的轉化是否有異常?

那麼針對該鏈路,我們資料質量監控要做的事,除了告訴使用方某乙個節點的值有問題,也需要告訴他們整個鏈條**出了問題,**的轉化低了。

0x04 如何實現資料質量監控

前面分享了資料質量關注的點,以及從技術和業務角度會如何關注資料質量,本節將簡單地分享一下如何實現資料質量監控。這裡將分兩個角度:巨集觀的設計思路和技術實現思路。

一、設計思路

資料質量監控的設計要分為四個模組:資料、規則、告警和反饋。

資料:主要是需要被資料質量監控到的資料,資料可能存放在不同的儲存引擎中,比如hive、pg、es等。

規則:是指如何設計發現異常的規則,一般而言主要是數值的異常和環比等異常監控方式。也會有一些通過演算法來發掘異常資料的方法。

反饋:這裡需要特別注意,反饋是指對告警內容的反饋,比如說收到的告警的內容,那麼負責人要來回應這個告警訊息是否是真的異常,是否需要忽略該異常,是否已經處理了該異常。有了反饋的機制,整個資料質量監控才容易形成閉環。更能體現業務價值。

二、技術方案

關於技術方案,這裡不多描述細節,因為不同的公司和團隊情況對實現方案的考慮是不同的,簡單做的話,可以寫一些定時指令碼即可,複雜的話可以做成乙個分布式的系統。這裡也可以參考居士17年寫的一部分內容no.22 漫談資料質量監控。

本篇只簡單說明幾個技術實現中需要關注的點:

最開始可以先關注核心要監控的內容,比如說準確性,那麼就對核心的一些指標做監控即可,不用開始就做很大的系統。

監控平台盡量不要做太複雜的規則邏輯,盡量只對結果資料進行監控。比如要監控日誌量是否波動過大,那麼把該計算流程前置,先計算好結果表,最後監控平台只監控結果表是否異常即可。

多資料來源,多資料來源的監控有兩種方式可以處理:針對每個資料來源定製實現一部分計算邏輯,也可以通過額外的任務將多資料來源中的資料結果通過任務寫入乙個資料來源中,再該資料來源進行監控,這樣可以減少資料監控平台的開發邏輯。具體的優缺點可以自行衡量。

實時資料的監控,實時和離線資料監控的主要區別在於掃瞄週期的不同,因此在設計的時候可以先以離線資料為主,但是盡量預留好實時監控的設計。

在設計之初,盡量預留好演算法監控的設計,這是乙個很大的加分項,具體的結合方式也可以和第二點建議接近,比如演算法異常資料放到一張結果表中,再在上面配置簡單的告警規則即可。

0x05 一些困難

問題一:假設你的結果表要經過多層的中間表計算,你怎麼保證每個環節都是正確的,且最終結果是正確的?

思路:從兩個點考慮:

每一層**有 code review,保證**邏輯正常。

單獨一條計算流,對關鍵指標從原始資料直接計算結果,和日常的結果表做對比,發現不同則告警。這種方式也可以理解為是結果資料和源資料的對賬。

問題二:告警資訊太多了,太容易被忽略怎麼辦?

思路:主要是思路是提高告警的準確率,避免無用的告警,有三個思路:

多使用機器學習演算法的方式來發現異常點,比如:異常森林。

加入反饋機制,如果業務負責人認為該告警是正常的,就打上正常的tag,後續告警規則根據反饋進行優化。

加入遮蔽功能,遮蔽不感興趣的告警。

0x06 補充

思路很清晰,展示在這裡給大家做參考

二、邢胖

資料準確性 是建立在合理的業務口徑下,從口徑角度去統一才會獲得準確的結果。

而不是僅僅認為從某個面去看這個資料是準確的就要做統一,不應從資料去逆推口徑。

0xff 總結

比如說從資料流程的各個環節來梳理需要做資料質量的點,以及業務方核心會關注的點,這些才是能決定你的資料質量監控平台能否獲得認可的關鍵因素。當這些東西都理清之後,技術實現只是把你的想法具像化的工具,這並非是不重視技術,而是更看重如何讓技術的價值最大化。

漫談資料質量監控

往往那些不起眼的功能,最能毀掉你的工作成果。本篇分享一些和資料質量監控相關的內容。資料質量監控是乙個在快速發展的業務中最容易被犧牲和忽略的功能,但是它確實至關重要的。假設你做了100個業務,一旦有其中乙個業務在某個時間段出現了資料異常,這個異常還是由業務方發現的而不是你,根據我的經驗是,它帶來的負面...

資料質量監控筆記

二 資料質量影響因素 三 資料質量問題型別 前言影響資料質量的因素是什麼,資料質量問題型別有哪些,如何設計資料質量監控流程目標解決常見資料質量監控需求一 資料質量相關概念 1 什麼是資料質量 1 資料質量顧名思義就是資料的質量 2 資料質量是資料分析結論有效性和準確性的基礎,也是最重要的前提和保障 ...

資料倉儲 資料質量監控

為什麼要做資料質量管理?提前發現問題,然後去解決,讓資料更好的服務於業務。什麼時候開始做呢?搭建數倉過程中,就要開始做 資料質量管理。要先行 不能後做。資料質量是資料驅動決策的前提 資料質量需要關注的四個點 即完整性 準確性 一致性和及時性 完整性是指資料的記錄和資訊是否完整。一般會在資料接入的時候...