知物由學 | 輿情資料清洗“動”“靜”分離方案

網易易盾發表於2021-01-15

易盾數字內容風控時刻關注最新輿情,覆蓋全網資訊資料。然而,原始資料格式各式各樣,輿情監測平臺如何將海量原始資料轉換為統一的資料格式成為資料處理前置條件。

輿情資料清洗主要面臨如下幾個難點:

全網資料格式多種多樣,如何快速相應新資料接入,同時不影響架構的“開閉原則”?

如何協調爬蟲、ETL、研發三方的協作與資料流通?

如何讓資料清洗滿足靈活性的同時,保證其清洗效能?

01 業務架構上“動”、“靜”分離

基於上述分析,我們仔細分析整個資料處理鏈中的各環節,挖掘出各模組的處理邏輯本質,進行動靜分類。比如將靈活性較高的分類為“動”的部分,將固定邏輯的分類為“靜”的部分,這樣兩者各司其職、互不干擾。如下圖所示:

人員職能上,ETL與系統開發分離,制定清洗流程規範

清洗指令碼動態可配置,實現新資料來源接入實時化

支援資料清洗鏈,合理管理清洗指令碼,各清洗指令碼可相互複用

靜態模組(去重、組裝),根據動態清洗結果,選擇相應的資料處理策略

知物由學 | 輿情資料清洗“動”“靜”分離方案

02 資料清洗的“動”

基於上面的問題和思考,易盾輿情搭建了指令碼可配置的資料清洗平臺,制定資料清洗流程,實現新資料來源實時接入。該方案具有如下幾個特點:業務架構上動靜分離、技術架構上高效能、可擴充套件、高可用。

具體來說,基於Groovy指令碼,結合JVM動態類載入,將Groovy指令碼動態載入、內化為JVM中普通Function甚至可以利用JIT最佳化加速清洗邏輯執行速度,從而保證資料清洗整體效能。多節點部署,保證整體處理吞吐量,高可用、可擴充套件。

知物由學 | 輿情資料清洗“動”“靜”分離方案

03 資料處理鏈的“靜”

對爬蟲的原始資料,做一系列處理,如圖去重、感情打標、資料組裝、關鍵詞提取等。如上文所示,由於資料清洗模組將不同信源資料轉成統一格式,同時透過設定去重欄位、組裝策略等方法,“告訴”處理鏈該如何處理這些資料。因此,資料處理鏈可以不需要針對不同信源定製化處理邏輯,實現資料處理鏈的“靜”。如下所示,資料處理鏈主要包括如下兩點:

一、根據資料清洗出的去重策略、組裝策略,執行相應的資料處理邏輯。

二、基於自研路由執行緒組,結合KAFKA分割槽順序性,保證資料消費順序性,實現資料順序組裝對爬蟲資料合理分片路由,保證資料順序性、並行性,兼顧處理效能與資料處理正確性。

知物由學 | 輿情資料清洗“動”“靜”分離方案

04 總結

基於Groovy類指令碼,結合JVM動態類載入,保證資料清洗靈活性與高效能。多節點部署,保證整體處理吞吐量,高可用、可擴充套件。從而實現業務架構上“動”、“靜”分離,技術架構上高效能、可擴充套件、高可用。最終實現新資料來源實時接入,提高輿情繫統資料處理的相應速度。


相關文章