用斷路器馴服資料質量
在微服務架構中使用斷路器模式,在出現資料質量問題時,斷路器會開啟,防止低質量資料傳播到下游程式。結果是報告中的低質量資料將在某個時間段內丟失,但如果存在,則保證肯定是正確的。本文描述了實施和部署斷路器的細節,並分為三個部分:
- 資料管道基礎現實
- 資料管道的斷路器模式
- 在生產中實施斷路器
資料管道基礎現實
資料管道是一種邏輯抽象,表示將原始資料轉換為觀察分析所需的一系列資料轉換。在我們的資料平臺中,我們每天都有數千條資料管道執行。每個管道都從不同來源提取資料,並應用一系列ETL和分析查詢,以報告,儀表板,ML模型,輸出表的形式生成見解。這些見解既用於資料驅動的業務操作,也用於 - 產品客戶體驗。
我們在100多個關聯式資料庫以及NoSQL儲存中收集了4種型別的資料:
- 使用者輸入資料(UED):客戶在使用產品時輸入的資料
- 行為分析資料:捕獲產品使用情況的點選流資料
- 企業資料:用於客戶服務,計費等的後臺系統
- 第三方資料:包括社交Feed,貸方檔案,銀行資料等
使用Kafka,Sqoop,Oracle GoldenGate和十幾種原生工具,使用批次攝取框架將來自資料來源的資料提取到資料湖Lake(HDFS / S3)中;然後使用多個查詢引擎(Hive,Spark)分析Lake中的資料,並將其移至MPI倉庫(如Vertica);結果透過服務資料庫如Cassandra,Druid獲得。
在資料管道中,資料質量問題在不同階段引入。我們將問題分為三個部分:a)與源有關的問題; b)與攝取有關的問題; c)參照完整性。對於每個儲存桶,我們遇到很多最常見問題,這些問題的根本原因是操作錯誤,邏輯錯誤,缺乏變更管理,資料模型不一致。
資料管道的斷路器模式
電路斷路器以主動管理電湧,否則電湧會過載並引起房屋著火。透過權衡電力供應,斷路器可以防止潛在的火災。斷路器模式在微服務架構中也很流行 - 而不是讓API等待緩慢或飽和的微服務,斷路器主動跳過呼叫服務。最終結果是可預測的API響應時間,以及某些服務可能無法獲得的權衡。解決微服務問題後,斷路器關閉,服務可用。
資料管道的斷路器遵循類似的模式。主動分析資料的質量 - 如果它低於閾值,而不是讓管道工作繼續並混合高質量資料和低質量資料,這時開啟斷路器,阻止低質量資料到達下游處理。因此,如果資料質量低,則會丟失,對於資料工程師,分析師,資料科學家和其他有見解的消費者而言,這是一個易於理解的約定。
它取代了根據具體情況手動驗證結果的需要,在湖中攝取的資料在每小時或每日批次持續存放在一個集結區;分析每批次的資料質量 - 當檢測到問題時,斷路器開啟,防止此批次資料到達下游處理,斷路開啟時,會提醒團隊診斷問題,如果可以解決問題,則回填該批次並使其可用於下游處理。
在資料流水線斷路器模式中,有兩種狀態:
- 斷路器關閉:資料正在流經管道。
- 斷路器開放:資料不流動,即發現問題,因此下游資料不可用
在開啟和關閉狀態下,不斷檢查資料分割槽的質量(每小時/每天)。當資料批次滿足質量閾值時,斷路器從開啟狀態轉為關閉狀態。相反,當資料質量失效時,斷路器從閉合變為開放。資料質量問題分為硬警報和軟警報。與硬警報相比,軟警報不會改變電路的狀態,但會顯示警告以及見解。
在資料平臺中實現斷路器
實施斷路器需要實現3個核心功能:
- 跟蹤資料沿襲:查詢從源表到輸出表,報告,ML模型的轉換中涉及的所有表和作業。
- 配置檔案資料管道:跟蹤與資料管道關聯的事件,統計資訊和異常。分析分為操作和資料級別,如稍後所述。
- 控制斷路器:根據分析發現的問題觸發斷路器
跟蹤資料沿襲是透過分析與管道作業相關聯的查詢來完成的。具體而言,管道由作業組成; 每個作業都由一個或多個指令碼組成; 每個指令碼由一個或多個SQL語句組成。分析輸入和輸出表的SQL查詢。管道的沿襲被定義為三元組<作業名稱,輸入表格,輸出表格>的陣列。這不是一次性活動。它在不斷髮展。每個指令碼由一個或多個不同語言的查詢組成:SQL與一些Pig。然後將它們粘在一起,一個輸出成為下一個工作的輸入。
分析分為兩個桶:
- 操作效能分析:重點是工作健康和資料結構健康。作業健康涉及跟蹤執行相關的統計資料,如完成時間,開始時間等.Data Fabric健康專注於跟蹤系統元件的事件和統計資料,即源資料庫,攝取工具,排程框架,分析引擎,服務資料庫,釋出框架(如如Tableau,QlikView,SageMaker等)
- 資料分析:本文的重點是分析資料相關模式。
控制斷路器基於使用分析發現的問題。使用絕對閾值/規則或基於異常檢測/ ML模型的相對發現問題。
資料流水線斷路器是一種使資料可用性與資料質量成比例的模式。透過定義硬和軟警報如何控制斷路器,它允許更改為數百個下游表提供資料的關鍵表的比例斜率。
相關文章
- 馴服定時器和執行緒定時器執行緒
- 億信華辰:怎樣去斷定一份資料的質量高低?資料質量如何評估?
- 資料治理--資料質量
- 讀資料質量管理:資料可靠性與資料質量問題解決之道01資料質量
- 讀資料質量管理:資料可靠性與資料質量問題解決之道14普及資料質量
- 資料治理:資料質量管理策略!
- 資料治理之資料質量管理
- 螞蟻金服資料質量治理架構與實踐架構
- 擁抱 invokedynamic,在 Java agent 中馴服類載入器Java
- 資料治理的資料質量知多少
- 談談資料質量管理
- 資料質量管理方法
- 什麼是資料質量?
- 讀資料質量管理:資料可靠性與資料質量問題解決之道15資料信任
- 機器學習高質量資料集大合輯機器學習
- 讀資料質量管理:資料可靠性與資料質量問題解決之道16資料認證
- 讀資料質量管理:資料可靠性與資料質量問題解決之道10資料平臺
- 讀資料質量管理:資料可靠性與資料質量問題解決之道06資料測試
- 讀資料質量管理:資料可靠性與資料質量問題解決之道18資料發現
- 讀資料質量管理:資料可靠性與資料質量問題解決之道19資料未來
- 讀資料質量管理:資料可靠性與資料質量問題解決之道17資料網格
- 讀資料質量管理:資料可靠性與資料質量問題解決之道13資料沿襲
- 讀資料質量管理:資料可靠性與資料質量問題解決之道03資料目錄
- 讀資料質量管理:資料可靠性與資料質量問題解決之道02資料湖倉
- 讀資料質量管理:資料可靠性與資料質量問題解決之道05資料標準化
- 讀資料質量管理:資料可靠性與資料質量問題解決之道09資料可靠性
- 如何做好資料質量管理
- 如何保障數倉資料質量?
- 如何提高企業資料質量
- 智慧斷路器應用方案之智慧路燈杆應用方案
- 智慧斷路器應用方案之智慧消防用電
- 讀資料質量管理:資料可靠性與資料質量問題解決之道04收集與清洗
- 讀資料質量管理:資料可靠性與資料質量問題解決之道11根因分析
- 斷路器HystrixCircuitBreakerUI
- Now冥想:崩潰服務和效能服務助力提升應用質量
- 如何通過資料管理影響資料質量
- 智慧斷路器與傳統斷路器的區別?
- 智慧園區+大資料:提升園區服務質量和管理能力大資料