大数据开源舆情分析系统-数据处理部分架构浅析
上一篇文章我們說到了:大數據開源輿情分析系統-數據采集技術架構淺析
今天跟大家來聊聊我們輿情系統中的數據處理部分是怎么樣的工作機制。
簡述
輿情系統的數據處理部分我們定義為:數據工廠。
數據工廠,是一套多組件化數據清洗加工及數據存儲管理平臺,同時能夠管理所有的數據庫的備份方案。
支持多數據源類型的數據同步實現和數據倉庫其他的數據源互通。對接收數據進行解壓,對外提供壓縮后的數據。
主要用途分為三大塊:?1.數據儲存,2.數據標記,3.數據挖掘?。
經歷了很多版本的迭代升級,期間采用過機器學習、深度學習、tensorflow 和?PaddlePaddle,經歷大量的開發測試與項目實戰經驗。
開源技術棧
- 開發框架:SpringBoot
- 開發語言:Java JEE
- 數據暫存:MySQL
- 數據索引:Redis
- 深度學習:PaddlePaddle
- 數據流水線:Apache Flink
- 自然語言處理:HaNLP & THUCTC
- 數據處理和儲存任務發送:Kafka&Zookeeper
- 數據中臺:自研 & DataEase
主體流程
選擇需要處理的數據源,開啟(或者關閉)數據處理開關,獲取爬蟲工廠抓取初加工的數據。
在配置界面上對數據處理流程自定義,并且可以看見處理列表和處理詳情,以及當前總體的計算狀態和計算負載統計。(整套技術方案可以自研,也可以使用為基礎,初步評估flink可以滿足我們大部分需求)
數據處理環節有6種類型:組合匯聚數據源、ETL 網頁解析、自然語言處理、標簽工場標記、自定義python java反射代碼、對附件的處理。
每種數據源類型可定義輸出不同的數據處理結果和存儲目標。
對應每一種數據處理結果有每個不同的數據調用接口,接口都是根據數據字段自動生成。管理員用戶可操作關閉數據調用開關。
用戶可以查看每個數據處理結果的數據結果,可以通過篩選、搜索關鍵詞對具體的數據內容查看。
備注:在項目初期應該用最簡潔明了的方式對數據處理加工,等到對自身需求有一定深刻認識的時候,再對具體的數據工場的具體功能設計。進過對工商數據,對資訊數據,對招投標數據的輸入、輸出、處理、調用的各個環節后,會對數據工場具體需求有一個全面的認識。
技術架構
?(這是最早期系統架構圖)
數據處理流程
數據總線
我們自研了一套數據總線系統API與Elasticsearch對接,將內部整套數據處理流程完成后,通過低代碼化的API接口框架對輸出。
數據存儲
為了儲存海量的數據,同時還能保證系統的性能和運行效率,我們將一條數據儲存了多份,用儲存空間換取查詢時間。
-
MySQL
在系統中儲存兩部分相關的信息內容,系統配置和臨時臟數據儲存。
-
redis
在系統中除了作為系統緩存,還作為站點數據采集的index索引庫。
-
kafak
由于數據處理的過程比較多,而且數據量很大,因此采用分布式以及異步的方式對海量數據加工處理。
-
Elasticsearch
儲存加工好的數據、去掉樣式的原文信息,以及打上各種標簽的數據,儲存在分布式搜索中,這樣便于用戶對數據的檢索。
-
MongoDB
帶樣式的文章正文原始網頁儲存在MongoDB中。
-
Clickhouse
將每篇文章指紋及海明距離儲存在clickhouse中,以便于對相似度和文章主題聚類的計算。
數據去重
-
URL去重
采用了redis集群,讓redis發揮天然的key/value魅力,把URL都存儲在redis中。
-
內容去重
采用Elasticsearch內部的查詢將文章標題一樣的內容檢索過濾掉。
數據清洗
- 自動提取字段,標題、正文、時間、作者、來源 等。
- 采用自動分類技術對 軟文、廣告文、敏感文章分類,并且對抓取信源屏蔽。
數據標記
-
內容簡介
我們自研了一套自然語言處理的API,我們對此也開放了出來,可以查閱。
-
實體識別
在HaNLP的基礎上進行訓練和二次開發,在實戰的過程中收集數據樣本以及對數據樣本標注是最痛苦的事情,為此,我們還開發了一款可以輔助人工標記的工具。
-
情感分析
百度飛槳,我們使用了?PaddleHub?深度學習框架并且采用了?Senta模型?,這個方案上手很簡單,在百度飛槳官方網站上有詳細內容,這里就不贅述了。
-
高頻詞分詞
采用IK分詞框架,在此基礎上實現了高頻詞提取工具及API接口。
-
文本分類
由清華大學自然語言處理實驗室推出的?THUCTC(THU Chinese Text Classification)
-
相似文章
將文章通過“海明距離”算法生成加密串碼存儲在clickhouse集群中,通過clickhouse距離查詢方法實現,文章相似度聚類。
-
事件分類
自研算法,采用文本分類算法和高頻詞以及自己開發了一個管理后臺。
-
行業分類
自研算法,采用文本分類算法和高頻詞以及自己開發了一個管理后臺。
數據運維
-
數據清理
需要定期對 Elasticsearch、Mongodb 中存儲的數據刪除,同時還要將Mongodb中的表刪除,否則磁盤空間容量不會減少。
-
數據備份
關鍵性數據采用實時數據備份方案,例如:ES集群和MySQL主從備份,另外,線上實時ES集群我們只保留最近2年的數據。
非關鍵性數據采用離線數據備份方案,例如:采用datax+Linux腳本定時備份,上傳到遠程異地備份服務器。
開源輿情系統
項目地址:
https://gitee.com/stonedtx/yuqing
在線體驗系統
- 環境地址:http://open-yuqing.stonedt.com/
- 用戶名:13900000000
- 密碼:stonedt
總結
以上是生活随笔為你收集整理的大数据开源舆情分析系统-数据处理部分架构浅析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 税控接口 - 模拟录入
- 下一篇: java信息管理系统总结_java实现科