天天看點

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

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

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

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

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

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

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

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

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

○清洗腳本動态可配置,實作新資料源接入實時化

○支援資料清洗鍊,合理管理清洗腳本,各清洗腳本可互相複用

○靜态子產品(去重、組裝),根據動态清洗結果,選擇相應的資料處理政策

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

02 資料清洗的“動”

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

具體來說,基于Groovy腳本,結合JVM動态類加載,将Groovy腳本動态加載、内化為JVM中普通Function甚至可以利用JIT優化加速清洗邏輯執行速度,進而保證資料清洗整體性能。多節點部署,保證整體處理吞吐量,高可用、可擴充。

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

03 資料處理鍊的“靜”

對爬蟲的原始資料,做一系列處理,如圖去重、感情打标、資料組裝、關鍵詞提取等。如上文所示,由于資料清洗子產品将不同信源資料轉成統一格式,同時通過設定去重字段、組裝政策等方法,“告訴”處理鍊該如何處理這些資料。是以,資料處理鍊可以不需要針對不同信源定制化處理邏輯,實作資料處理鍊的“靜”。如下所示,資料處理鍊主要包括如下兩點:

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

二、基于自研路由線程組,結合KAFKA分區順序性,保證資料消費順序性,實作資料順序組裝對爬蟲資料合理分片路由,保證資料順序性、并行性,兼顧處理性能與資料處理正确性。

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

04 總結

基于Groovy類腳本,結合JVM動态類加載,保證資料清洗靈活性與高性能。多節點部署,保證整體處理吞吐量,高可用、可擴充。進而實作業務架構上“動”、“靜”分離,技術架構上高性能、可擴充、高可用。最終實作新資料源實時接入,提高輿情系統資料處理的相應速度。

繼續閱讀