用斷路器馴服資料質量

banq發表於2018-12-17

微服務架構中使用斷路器模式,在出現資料質量問題時,斷路器會開啟,防止低質量資料傳播到下游程式。結果是報告中的低質量資料將在某個時間段內丟失,但如果存在,則保證肯定是正確的。本文描述了實施和部署斷路器的細節,並分為三個部分:
  • 資料管道基礎現實
  • 資料管道的斷路器模式
  • 在生產中實施斷路器


資料管道基礎現實
資料管道是一種邏輯抽象,表示將原始資料轉換為觀察分析所需的一系列資料轉換。在我們的資料平臺中,我們每天都有數千條資料管道執行。每個管道都從不同來源提取資料,並應用一系列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模型的相對發現問題。

資料流水線斷路器是一種使資料可用性與資料質量成比例的模式。透過定義硬和軟警報如何控制斷路器,它允許更改為數百個下游表提供資料的關鍵表的比例斜率。

相關文章