基于 Flink、ClickHouse 的舆情分析系统:系统详细设计说明书
文章目錄
- 1. 引言
- 1.1 編寫目的
- 1.2 背景
- 1.3 參考資料
- 1.4 術語定義及說明
- 2. 設計概述
- 2.1 任務和目標
- 2.1.1 需求概述
- 2.1.2 運行環(huán)境概述
- 2.1.3 條件與限制
- 2.1.4 詳細設計方法和工具
- 3. 系統(tǒng)詳細需求分析
- 3.1 詳細功能需求分析
- 3.2 詳細性能需求分析
- 3.3 詳細資源需求分析
- 3.4 接口需求分析
- 3.5 算法需求分析
- 4. 系統(tǒng)總體方案確認
- 4.1 系統(tǒng)總體結構確認
- 4.2 系統(tǒng)詳細界面劃分
- 5. 系統(tǒng)詳細設計
- 5.1 系統(tǒng)程序代碼架構設計
- 5.2 系統(tǒng)結構設計及子系統(tǒng)劃分
- 5.3 系統(tǒng)功能模塊詳細設計
- 5.3.1 分析子系統(tǒng)
- 5.3.2 后臺與前端子系統(tǒng)
- 5.3.3 爬蟲子系統(tǒng)
- 5.4 系統(tǒng)用戶界面詳細設計
- 6. 數(shù)據(jù)庫系統(tǒng)設計
- 6.1 設計要求
- 6.2 數(shù)據(jù)庫設計
- 6.2.1 設計依據(jù)
- 6.2.2 數(shù)據(jù)庫種類及特點
- 6.2.3 數(shù)據(jù)庫邏輯結構
- 6.2.4 數(shù)據(jù)庫安全
- 6.2.5 數(shù)據(jù)字典
1. 引言
1.1 編寫目的
??編寫此文檔的目的是通過系統(tǒng)的詳細設計指導系統(tǒng)的編碼等工作。
1.2 背景
A. 待開發(fā)系統(tǒng)的名稱:輿情分析系統(tǒng)
B. 系統(tǒng)架構類型:BS 架構類型,即瀏覽器、服務器架構類型
C.開發(fā)項目組名稱:東北大學軟件學院大數(shù)據(jù)班 T09 實訓項目組 (lzf、lcx)
1.3 參考資料
https://wenku.baidu.com/view/1ad0617ddd88d0d232d46a21.html
1.4 術語定義及說明
2. 設計概述
2.1 任務和目標
2.1.1 需求概述
我們的輿情分析系統(tǒng)的需求主要由輿情首頁、輿情事件分析頁、輿情事件預警這三個需求模塊構成。其中輿情首頁包括領域(分類)輿情事件熱度表、領域輿情熱度趨勢、輿情地域分布圖,輿情事件分析包括事件文章分析、事件評論分析、輿情事件分析三大塊(詳細需求令見需求規(guī)格說明書),輿情事件預警包括輿情事件負面評論輿情、輿情事件負面評論增長預警、輿情事件熱度增長預警。
2.1.2 運行環(huán)境概述
由于系統(tǒng)架構類型為BS架構類型,故而系統(tǒng)運行在服務器上,只要任何一臺安裝了主流瀏覽器的電腦均可以通過IP地址加端口號的方式獲取系統(tǒng)服務、訪問系統(tǒng)頁面。因此,系統(tǒng)的運行環(huán)境是指服務器的環(huán)境,環(huán)境大致如下:
2.1.3 條件與限制
(1) 系統(tǒng)架構要求編碼人員掌握并使用未接觸過的技術——ClickHouse與ElasticSearch來實現(xiàn)系統(tǒng)。
(2) 系統(tǒng)設計自然語言處理的相關技術,主要是中文分詞、中文情感分析。
2.1.4 詳細設計方法和工具
3. 系統(tǒng)詳細需求分析
3.1 詳細功能需求分析
a) 分類輿情事件熱度:按領域展示各領域下的事件及其熱度
b) 分類輿情熱度趨勢:各領域輿情的熱度隨時間的變化趨勢
c) 輿情地域分布圖:輿情文章在全國各個省份的數(shù)量分布
a) 輿情事件負面評論預警:根據(jù)管理員設置的事件負面評論占比閾值,如果事件的負面評論占比大于閾值,則展示在事件預警頁。
b) 輿情事件負面評論增長預警:根據(jù)事件的負面評論占比的環(huán)比增長率預警事件,若事件負面評論占比的環(huán)比增長率比較大,則進行預警
c) 輿情事件熱度增長預警:根據(jù)事件的熱度的環(huán)比增長率預警事件,若事件熱度的環(huán)比增長率比較大,則進行預警。
a) 輿情事件總覽
??A. 事件關鍵詞分析
??B. 事件傳播走勢分析
??C. 事件核心傳播人分析
b) 輿情事件文章分析
??A. 事件文章點贊排名
??B. 事件文章轉發(fā)排名
??C. 事件文章評論排名
??D. 事件文章熱度排名
??E. 事件文章地域分布
??F. 事件文章時間線
c) 輿情事件評論分析
??A. 評論關鍵詞分析
??B. 事件評論者分析
??C. 事件評論情感趨勢分析
??D. 事件評論點贊排名
??E. 事件評論回復排名
3.2 詳細性能需求分析
(1) 網(wǎng)絡正常的情況下用戶點擊網(wǎng)頁后頁面的跳轉時間<=1s;
(2) 頁面數(shù)據(jù)加載與渲染時間<=5s;
(3) 頁面的數(shù)據(jù)量較大而導致的頁面加載時間長時,頁面必須提供加載提示。
3.3 詳細資源需求分析
系統(tǒng)需要運行在一個具有10GB內存的、100GB磁盤的CentOS7系統(tǒng)系統(tǒng)上,才能保證系統(tǒng)的性能,并且隨著系統(tǒng)的運行,磁盤的占用會比較大,需要定時清理ClickHouse存儲的過時的輿情數(shù)據(jù),當然也可以構建ClickHouse集群解決磁盤占用變大的問題。
3.4 接口需求分析
(1) 中文分詞接口:
采用Jieba分詞提供的分詞接口來進行事件文章的分詞與事件評論的分詞。
(2) 中文情感分析接口:
采用HanLP提供的相關類構建并訓練一個情感分析模型,并針對模型編寫一個中文情感分析的接口。
3.5 算法需求分析
??算法需求主要涉及的事件熱度算法,算法公式參考:https://juejin.cn/post/6844903833856901133
??基于上述文章的熱度計算公式,即
其中,
·H:表示內容的熱度,
·W:表示內容質量的數(shù)值表達,如文章點贊數(shù)
·I:表示內容的初始質量,是文章作者的影響因子
·G:重力Gravity,表示的是一個內容變得不再熱門的速度,重力越大,一個內容刷新的越快
·T:事件T
??基于上述公式,事件的熱度定義為文章熱度的和,文章熱度的計算公式由公式(1)變化而得,文章熱度的計算公式如下:
其中,
·H:文章熱度
·L:文章點贊量
·C:文章評論量
·R:文章轉發(fā)量
·S:文章爬取時間(Spider Time)
·A:文章時間(Article Time)
·h:表示小時, 表示爬取時間到文章時間的小時數(shù)
??故而事件的熱度計算公式為:
4. 系統(tǒng)總體方案確認
4.1 系統(tǒng)總體結構確認
系統(tǒng)總體上由數(shù)據(jù)來源層、數(shù)據(jù)采集層、數(shù)據(jù)處理層、數(shù)據(jù)存儲層、數(shù)據(jù)訪問層、數(shù)據(jù)服務層、數(shù)據(jù)視圖層七層組成。數(shù)據(jù)來源層到數(shù)據(jù)采集層再到數(shù)據(jù)處理層最后到數(shù)據(jù)存儲層是一個單向的層次結構。數(shù)據(jù)存儲層、數(shù)據(jù)訪問層、數(shù)據(jù)服務層、數(shù)據(jù)視圖層各層之間是一個雙向的數(shù)據(jù)傳遞的層結構。具體見系統(tǒng)架構圖。
4.2 系統(tǒng)詳細界面劃分
略。
5. 系統(tǒng)詳細設計
5.1 系統(tǒng)程序代碼架構設計
??系統(tǒng)程序代碼架構設計主要是輿情分析系統(tǒng)的后臺服務子系統(tǒng)與前端展示子系統(tǒng)的架構設計。輿情分析系統(tǒng)采用采用三層架構模型,分為用戶界面層、業(yè)務邏輯層、數(shù)據(jù)訪問層。代碼的包結構如下:
5.1.1 用戶界面層(User Interface Layer)
??用戶界面層包含前端界面與Controller。前端界面用于與系統(tǒng)用戶交互、提交Http請求并展示輿情分析結果;Collroller 用于處理前端提交的Http請求,并調用業(yè)務邏輯層的接口獲取數(shù)據(jù)并放回數(shù)據(jù)到前端。
5.1.2 業(yè)務邏輯層(Business Logic Layer)
??業(yè)務邏輯層是系統(tǒng)代碼的重要部分,承擔了所有的邏輯判斷,實現(xiàn)了程序功能。它被用戶界面層的Controller調用,并調用了數(shù)據(jù)訪問層的接口以獲取查詢數(shù)據(jù)。
5.1.3 數(shù)據(jù)訪問層(Data Access Layer)
??由于系統(tǒng)由MyBatis+ClickHouse實現(xiàn)且系統(tǒng)主要涉及的是輿情分析數(shù)據(jù)的展示,因此數(shù)據(jù)訪問層主要是接口加ClickHouse的查詢語句,根據(jù)查詢語句查詢ClickHouse獲取結果。
5.1.4 實體類(Entity Class)
??實現(xiàn)對數(shù)據(jù)的封裝,用戶界面層、業(yè)務邏輯層、數(shù)據(jù)訪問層這三層之間主要就是通過實體類作為參數(shù)、返回值進行交互的。
5.2 系統(tǒng)結構設計及子系統(tǒng)劃分
??根據(jù)系統(tǒng)需求和功能,輿情分析系統(tǒng)的邏輯結構劃分為分析子系統(tǒng)、后臺子系統(tǒng)、前端子系統(tǒng)、爬蟲子系統(tǒng)等4個子系統(tǒng),系統(tǒng)下又分各功能模塊,如下圖所示:
5.3 系統(tǒng)功能模塊詳細設計
5.3.1 分析子系統(tǒng)
??在分析子系統(tǒng)中,我們的設計是把爬取到的文章數(shù)據(jù)通過OdsFlink獲取處理到下游的Kafka Topic中,然后從下游的Topic中獲取上游處理到的數(shù)據(jù)進行處理分析。
??模塊描述:事件文章分析模塊包括事件文章詳情、事件走勢、事件核心傳播人、事件熱度這幾個部分數(shù)據(jù)處理部分,并將處理結果存入ClickHouse。
??模塊描述:事件關鍵詞分析模塊處理的是事件所有文章分詞后的詞頻統(tǒng)計結果,統(tǒng)計出事件的關鍵詞存入ClickHouse。
??模塊描述:事件評論分析模塊包括事件評論詳情、事件評論統(tǒng)計(事件評論者性別占比、事件正負面評論占比)三個部分。
??模塊描述:事件關鍵詞分析模塊處理的是事件所有評論分詞后的詞頻統(tǒng)計結果,統(tǒng)計出事件評論的關鍵詞存入ClickHouse。
5.3.2 后臺與前端子系統(tǒng)
模塊描述:用于輿情分析員查看輿情事件、搜索輿情事件、輿情預警
功能描述:
a. 輿情首頁
a) 分類輿情事件熱度
b) 分類輿情熱度趨勢
c) 輿情地域分布圖
b. 輿情預警
a) 輿情事件負面評論預警;
b) 輿情事件負面評論增長預警;
c) 輿情事件熱度增長預警;
c. 輿情事件分析
a) 輿情事件總覽
i. 事件關鍵詞分析
ii. 事件傳播走勢分析
iii. 事件核心傳播人分析
b) 輿情事件文章分析
i. 事件文章點贊、轉發(fā)、評論排名
ii. 事件文章熱度排名
iii. 事件文章地域分布
iv. 事件文章時間線
c) 輿情事件評論分析
i. 評論關鍵詞分析
ii. 事件評論者分析
iii. 事件評論情感趨勢分析
iv. 事件評論點贊排名
v. 事件評論回復排名
模塊描述:用于系統(tǒng)管理員配置輿情分析系統(tǒng)涉及的數(shù)值;
功能描述:
a. TopN 配置
i. 文章排名 TopN配置
ii. 文章熱度 TopN 配置
iii. 事件高贊與高回復評論 TopN 配置
b. 事件預警閾值配置
i. 事件負面評論占比閾值配置
c. 爬蟲參數(shù)配置
i. 爬蟲的任務周期配置(每隔多少次執(zhí)行爬蟲代碼)
5.3.3 爬蟲子系統(tǒng)
模塊描述:微博輿情數(shù)據(jù)的爬取。
模塊描述:今日頭條輿情數(shù)據(jù)的爬取。
5.4 系統(tǒng)用戶界面詳細設計
- 界面的風格:深色的準實時大屏風格
- 界面的內容:
??界面主要分為管理員界面與輿情分析員界面。管理員界面的內容主要就是各種配置界面與系統(tǒng)日志查看界面;輿情分析員的界面內容大致分為四大塊:- 分類輿情總覽頁
- 分類輿情熱度表:表單內容包括事件名、事件熱度、事件類型
- 領域(分類)輿情熱度折線圖
- 輿情地域分布圖
- 輿情事件搜索頁
- 輿情搜索框;
- 輿情事件搜索結果表:表單內容包括事件名、事件熱度、事件類型
- 輿情事件預警頁
- 事件負面評論占比與事件負面評論環(huán)比增長率表
- 事件負面評論排名餅圖
- 事件負面評論環(huán)比增長率排名餅圖
- 事件熱度與事件熱度增長率表
- 事件熱度增長率橫向柱狀圖
- 輿情事件分析頁
- 輿情事件總覽頁
- 事件關鍵詞詞云圖
- 事件走勢(信息量走勢、關注度走勢)折線圖
- 事件核心傳播人餅圖
- 事件文章分析頁
- 事件文章點贊、評論、轉發(fā)排名柱狀圖
- 事件文章熱度排名走馬燈
- 事件文章發(fā)展時間線
- 事件評論分析頁
- 事件評論關鍵詞詞云圖
- 事件正負面評論占比趨勢折線圖
- 事件正面、負面、中立評論抽屜
- 事件男女評論占比餅圖
- 事件高贊評論餅圖
- 事件高回復評論餅圖
- 輿情事件總覽頁
- 分類輿情總覽頁
- 界面數(shù)據(jù)的請求方式:Http請求,包括Get請求與Post請求。
6. 數(shù)據(jù)庫系統(tǒng)設計
6.1 設計要求
??數(shù)據(jù)庫系統(tǒng)的設計需要很好的滿足系統(tǒng)的功能性需求與非功能性需求。功能性需求的滿足要求設計恰當?shù)谋斫Y構,以支持系統(tǒng)的功能性需求的完成;非功能性需求的滿足主要是系統(tǒng)查詢性能的保證,進而才能保證系統(tǒng)的性能需求。
6.2 數(shù)據(jù)庫設計
6.2.1 設計依據(jù)
- 數(shù)據(jù)訪問頻度與流量
??由于輿情分析系統(tǒng)為準實時系統(tǒng),前端每隔30s自動請求后端的大量數(shù)據(jù),需要要求數(shù)據(jù)庫需要有良好的查詢性能,才能保證系統(tǒng)的可用性。 - 數(shù)據(jù)存儲量
??輿情分析系統(tǒng)存儲的數(shù)據(jù)可達幾十G甚至幾百G甚至幾千G,因此數(shù)據(jù)庫需要有非常良好的橫向擴展能力,能夠支持擁有分布式數(shù)據(jù)庫(數(shù)據(jù)庫集群)構建。 - 數(shù)據(jù)增長量
??由于輿情數(shù)據(jù)每天都以爆炸式增長,輿情分析系統(tǒng)的數(shù)據(jù)增長量是非常大的,但是我們的數(shù)據(jù)來源是爬蟲,數(shù)據(jù)量的增長速度被爬蟲的速度所限制,但是數(shù)據(jù)的增長量還是非常大的,因此數(shù)據(jù)庫需要擁有很好的橫向擴展能力。
6.2.2 數(shù)據(jù)庫種類及特點
??系統(tǒng)采用的數(shù)據(jù)庫是ClickHouse與ElasticSearch。ClickHouse是一個面向列存儲的OLAP分析數(shù)據(jù)庫,具有非常優(yōu)越的分析查詢速度,能夠滿足輿情分析系統(tǒng)的查詢需求,并且支持集群搭建,具有很好的橫向擴展能力;ElasticSearch是分布式的開源搜索與分析引擎,具有領先地位,能夠很好的滿足輿情系統(tǒng)的輿情事件搜索需求。
6.2.3 數(shù)據(jù)庫邏輯結構
??系統(tǒng)的數(shù)據(jù)采用ClickHouse表存儲,其表設計見系統(tǒng)架構設計說明書的數(shù)據(jù)存儲部分。
6.2.4 數(shù)據(jù)庫安全
??必須通過用戶名與密碼訪問數(shù)據(jù)庫獲取數(shù)據(jù)。
6.2.5 數(shù)據(jù)字典
??無,輿情分析系統(tǒng)目前不需要數(shù)據(jù)字典。
總結
以上是生活随笔為你收集整理的基于 Flink、ClickHouse 的舆情分析系统:系统详细设计说明书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金税盘组件接口调用方法
- 下一篇: 数字图像来源:光学成像系统