1. 資料可靠性
1.1. 資料可靠性指的是一個組織在整個資料生命週期中提供高資料可用性和健康狀況的能力
-
1.1.1. 是高資料質量帶來的結果
-
1.1.1.1. 高質量的大資料是這個大規模轉型平臺的核心
-
1.1.2. 隨著公司接收到比以往更多的事務型資料和第三方資料,以及組織中的所有員工在資料生命週期的各個階段都會與這些資料進行互動,這些資料的可靠性變得越來越重要
-
1.1.3. 資料可靠性必須有意識地構建到組織的各個級別,從用來構建和管理資料棧的流程和技術,到在下游進一步溝通和分析有關資料問題的方式
1.2. 歷史資料並不能反映出受眾的日常生活現狀,而實時資料變得至關重要
- 1.2.1. 不僅可以用來確定廣告支出,還可以用來了解當前使用者與應用程式和網際網路上內容的互動狀態
1.3. 實現資料可靠性的基礎是關注資料治理、資料質量和重構系統
-
1.3.1. 對其資料質量和資料治理工作進行重大投資
-
1.3.2. 透過投資資料測試和資料可觀測性並設定明確的資料可靠性SLA來評估資料可靠性,能夠在資料當機影響下游消費者之前進行補救
1.4. 預先並跨領域投資受DevOps啟發的流程,即資料測試和資料可觀測性
1.5. 構建一個彈性且效能良好的資料平臺
1.6. 設定並協同跨組織資料的SLA、SLI和SLO
1.7. 將資料質量策略從僅由資料工程師和其他上游角色管理的孤立體驗,轉變為更廣泛的、由公司優先考慮的事情是一個漸進的過程
2. 攝取資料時
2.1. 確保在將資料匯入資料倉儲或資料湖之前的高資料質量
2.2. 組織通常會根據業務需求從內部、外部和第三方來源獲取資料
-
2.2.1. 你的決策質量取決於你用來洞察和分析的資料
-
2.2.2. 輸入的是垃圾,輸出的也是垃圾
2.3. 為進入其資料生態系統的所有資料建立了嚴格的資料質量控制標準
2.4. 資料清洗、資料整理(將資料結構化並轉換為所需格式的過程)和資料測試等最佳實踐都是組織確保資料質量滿足其組織需求的方式
-
2.4.1. 該領域出現了大量工具來為公司自動化完成這一過程
-
2.4.2. 對該過程進行自動化,組織不僅可以在資料清洗時節省時間和資源,而且可以確保在資料進入其生態系統時持續控制和管理傳入資料的質量
-
2.4.2.1. 其格式
-
2.4.2.2. 一致性
-
2.4.2.3. 完整性
-
2.4.2.4. 新鮮度
-
2.4.2.5. 唯一性
2.5. 資料清洗
-
2.5.1. 資料清洗透過從資料集中刪除不完整、不相關、不正確、格式不對或重複的資料來準備並修改資料以供未來進行分析
-
2.5.2. 資料清洗的職責也開始越來越多地落在資料生產者身上
-
2.5.2.1. 無論誰“負責”資料清洗,我們都要讓組織中的其他成員瞭解資料的重要性,因為公司中的每個人都在確保資料完整性方面發揮著關鍵作用
2.6. 資料充實(data enrichment)
-
2.6.1. 在資料充實的過程中,組織能夠把一手資料或第三方資料整合並新增到已經在使用的資料集中
-
2.6.2. 對資料進行充實,組織能夠為其資料集增加更多價值,最終使資料變得更加有用和可靠
2.7. 資料測試
-
2.7.1. 在資料清洗後,資料測試是在攝取資料前抵禦低質量資料的最佳防線
-
2.7.1.1. 資料測試是一個在生產之前或生產期間驗證組織對資料的假設的過程
-
2.7.1.2. 編寫檢查唯一性和not_null(非空)等基本測試是組織對其源資料進行基本假設測試的方法
-
2.7.1.3. dbt是資料領域具有精確測試能力的另一種解決方案
-
2.7.1.4. 資料測試只會發現預期的資料質量問題,它沒有可擴充套件性或知識來解釋“未知的”資料質量問題
-
2.7.1.5. 用被動監控和異常檢測來補充測試是非常重要的
-
2.7.2. 確保資料採用正確的格式供其團隊使用,並確保資料滿足其業務需求
-
2.7.3. 單元測試
-
2.7.3.1. 單元測試檢查一行程式碼(SQL)是否做了它應該做的事情,可以用於非常小的資料片段
-
2.7.3.2. 在對資料進行單元測試時,必須將業務邏輯與“黏合程式碼”(glue code)分開
-
2.7.4. 功能測試
-
2.7.4.1. 功能測試用於大型資料集,並且通常與資料驗證、完整性、攝取、處理、儲存和ETL相分離
-
2.7.4.2. 經常發生在資料管道(預分析層)中
-
2.7.5. 整合測試
-
2.7.5.1. 用於確保資料管道符合有效性標準(即在預期範圍內)
-
2.7.5.2. 在利用生產資料之前,團隊會使用整合測試在管道中執行假資料
-
2.7.6. 常見的資料質量檢查
-
2.7.6.1. 空值
> 2.7.6.1.1. 是否有未知值(NULL)?
- 2.7.6.2. 新鮮度
> 2.7.6.2.1. 資料有多新?
> 2.7.6.2.2. 最近一次更新是一小時前還是兩個月前呢?
- 2.7.6.3. 容量
> 2.7.6.3.1. 資料集代表了多少資料?
- 2.7.6.4. 分佈
> 2.7.6.4.1. 資料是否在可接受的範圍內?
> 2.7.6.4.2. 給定列中資料的單位是否相同?
- 2.7.6.5. 缺失值
> 2.7.6.5.1. 資料集中是否缺失了任何值?
-
2.7.7. “不良資料”(bad data)
-
2.7.8. 資料工程師永遠不應該使用未經測試的資料來執行資料管道
-
2.7.8.1. 在執行管道前清楚地瞭解資料的健康狀況
-
2.7.9. 測試職責分散到資料集上,由各自的分析師和工程師負責建立和維護他們正在構建資料管道並日常互動的資料集的測試
-
2.7.9.1. 資料質量保證團隊來處理資料測試,其職責包括為業務用例建立測試並維護現有的測試
3. 度量和維護管道中的資料質量
3.1. 20世紀90年代,當網站當機時,大多數人都注意不到網站重新啟動並再次上線的時間,因為大多數網站的使用者數量都很低
3.2. 如今,每個人都會注意到你的服務或應用程式是什麼時候當機的
3.3. 如今,幾乎所有託管軟體的企業都依賴站點可靠性工程(SRE)來確保生產中的應用程式始終可靠
- 3.3.1. 讓SRE團隊保持對其系統健康狀況的持續關注是非常重要的
3.4. 可觀測性是工程領域最新加入的一個術語
- 3.4.1. 描述了這一需求,指的是監控、跟蹤和檢測事件,以防止當機
3.5. SRE的核心在於應用程式的可觀測性被分為三大支柱
-
3.5.1. 指標是指隨時間的推移測量出來的資料的數字表示
-
3.5.2. 日誌是在給定時間戳所發生事件的描述性、定性文字記錄
-
3.5.2.1. 關於特定事件是何時發生的這一有價值的背景資訊
-
3.5.3. 跟蹤表示分散式環境中因果相關的事件
3.6. 高資料質量的指標
-
3.6.1. 新鮮度
-
3.6.1.1. 資料是最新的嗎?
-
3.6.1.2. 最後一次生成資料是什麼時候?
-
3.6.1.3. 其中包含/省略了哪些上游資料呢?
-
3.6.2. 分佈
-
3.6.2.1. 資料是否在可接受的範圍內?
-
3.6.2.2. 格式是否正確?
-
3.6.2.3. 資料完整嗎?
-
3.6.3. 容量
-
3.6.3.1. 所有的資料都送達了嗎?
-
3.6.4. 模式
-
3.6.4.1. 模式是什麼,它是如何變更的?
-
3.6.4.2. 誰做出了這些變更,是出於什麼原因呢?
-
3.6.5. 沿襲
-
3.6.5.1. 對於給定的資料資產,受其影響的上游來源和下游資產都有哪些呢?
-
3.6.5.2. 是誰在生成這些資料
-
3.6.5.3. 誰又依賴這些資料來做出決策呢?
-
3.6.6. 讓你瞭解資料在其生命週期每個階段的健康狀況的關鍵度量標準,併為我們提供了一個檢視資料質量的全新視角
3.7. 資料當機時間是指資料丟失、錯誤或不準確的時間段,通常表明資料管道已經出現了損壞
-
3.7.1. 確定資料的可靠性並確保人們有足夠的信心使用該資料
-
3.7.2. 鑑於SRE將應用程式當機時間作為時間的函式進行測量,我們也可以用類似的方式來測量資料的當機時間
-
3.7.3. 測量資料的正常執行時間和當機時間是廣泛適用的,這也為理解資料健康狀況提供了一個良好的起點
4. 下游的資料質量
4.1. 當資料透過管道傳回收集資料的應用程式和服務時,你在資料到達分析層甚至更高層之前都很可能不會意識到資料是“壞的”
4.2. 資料可靠性儀表板,在資料到達儀表板後跟蹤檢測所需時間(Time To Detection,TTD)、解決所需時間(Time To Resolution,TTR)和其他資料質量指標
-
4.2.1. 不相關或錯誤資料所佔比率
-
4.2.2. 給定資料集中空值或缺失值的數量,或者說資料的完整性
-
4.2.3. 資料的及時性
-
4.2.4. 重複值的百分比
-
4.2.5. 資料的一致性
-
4.2.6. 能夠持續訪問和使用資料的職能團隊的數量
-
4.2.6.1. 適用於應用了分散式資料架構(比如資料網格)的情況,資料質量對其來說至關重要
4.3. SLA建立了客戶承諾和對未達到SLO的懲罰
4.4. SLI就是被測量的具體數字
4.5. SLO是為SLI設定的實際目標值
4.6. 淨推薦值(Net Promoter Score,NPS)度量利益相關方對資料的滿意度
4.7. 設定SLA和SLI的一種簡單方法是瞭解他們將使用資料做什麼,以及應該透過測試、可觀測性和其他工具對哪些資料進行優先順序排序
- 4.7.1. 編寫資料測試甚至監控所有關鍵資料資產幾乎是不可能的
4.8. 評估資料質量
-
4.8.1. 完整性
-
4.8.1.1. 資料有多完整?
-
4.8.2. 及時性
-
4.8.2.1. 資料是否準時到達?
-
4.8.3. 有效性
-
4.8.3.1. 資料是否滿足所有語法要求(即格式、型別或範圍)?
-
4.8.4. 準確性
-
4.8.4.1. 資料是否描述了它所試圖代表的真實環境?
-
4.8.5. 一致性
-
4.8.5.1. 資料是否與廣泛理解和接受的定義相一致?
-
4.8.6. 唯一性
-
4.8.6.1. 單個資料點是否被多次記錄?