前言
???????? ?當(dāng)我們做一個項(xiàng)目時往往都需要選擇該用什么技術(shù)良狈。這一部分不是我們普通員工想的虫啥,而是架構(gòu)師會根據(jù)客戶的需求選擇出合適的技術(shù)爵嗅。當(dāng)選擇合適的技術(shù)會讓我們的開發(fā)事半功倍慢睡。下面我就來講解下我做的項(xiàng)目(實(shí)時數(shù)倉
)是如何進(jìn)行選型的枢泰。
一描融、技術(shù)選型
???????? 當(dāng)我們在選擇技術(shù)時需要根據(jù)客戶的需求來進(jìn)行選擇。比如:實(shí)時統(tǒng)計交易金額(要求延遲不能超過一秒)
,這時我們在選擇技術(shù)時就不能用那些批處理的技術(shù)比如Hive
,MapRducer
等衡蚂,因?yàn)镸apRducer 啟動有可能就能超過了一秒鐘窿克,所以根本就不能滿足這些需求。這時我們可以考慮用一些實(shí)時計算的技術(shù)如 Flink
,SparkStreaming
等讳窟。接下來我們就來講解下如何選擇让歼。
???????? 目前市場是有很多實(shí)時計算的技術(shù)如:Spark streaming
、Struct streaming
丽啡、Storm
谋右、JStorm(阿里)
、Kafka Streaming
补箍、Flink
等眾多的技術(shù)棧我們該如何選擇那改执?
? ? ? ?如果對延遲要求不高的情況下,可以使用 Spark Streaming坑雅,它擁有豐富的高級 API辈挂,使用簡單,并且 Spark 生態(tài)也比較成熟裹粤,吞吐量大终蒂,部署簡單,社區(qū)活躍度較高遥诉,從 GitHub 的 star 數(shù)量也可以看得出來現(xiàn)在公司用 Spark 還是居多的拇泣,并且在新版本還引入了 Structured Streaming,這也會讓 Spark 的體系更加完善矮锈。?????????
? ? ? ?如果對延遲性要求非常高的話霉翔,可以使用當(dāng)下最火的流處理框架 Flink,采用原生的流處理系統(tǒng)苞笨,保證了低延遲性债朵,在 API 和容錯性方面做的也比較完善,使用和部署相對來說也是比較簡單的瀑凝,加上國內(nèi)阿里貢獻(xiàn)的 Blink序芦,相信接下來 Flink 的功能將會更加完善,發(fā)展也會更加好粤咪,社區(qū)問題的響應(yīng)速度也是非逞柚校快的,另外還有專門的釘釘大群和中文列表供大家提問,每周還會有專家進(jìn)行直播講解和答疑藏杖。
本項(xiàng)目:使用Flink來搭建實(shí)時計算平臺
二将塑、需求分析
目前需求有最后通過報表實(shí)時展示:
統(tǒng)計用戶日活對比分析(PV、UV蝌麸、游客數(shù))分別使用柱狀圖顯示
2. 漏斗展示(付款數(shù)点寥、下單數(shù)、加入購物車數(shù)来吩、瀏覽數(shù))
3.? 統(tǒng)計一周銷售額敢辩,使用曲線圖顯示
7. TopN地區(qū)排行
數(shù)據(jù)來源PV/UV數(shù)據(jù)來源
- 來自于頁面埋點(diǎn)數(shù)據(jù),將用戶訪問數(shù)據(jù)發(fā)送到web服務(wù)器
- web服務(wù)器直接將該部分?jǐn)?shù)據(jù)寫入到kafka的click_log topic 中
銷售金額與訂單量數(shù)據(jù)來源
- 訂單數(shù)據(jù)來源于mysql
- 訂單數(shù)據(jù)來自binlog日志弟疆,通過canal 實(shí)時將數(shù)據(jù)寫入到kafka的order的topic中
購物車數(shù)據(jù)和評論數(shù)據(jù)
- 購物車數(shù)據(jù)一般不會直接操作mysql戚长,通過客戶端程序?qū)懭氲絢afka(消息隊(duì)列)中
- 評論數(shù)據(jù)也是通過客戶端程序?qū)懭雓afka(消息隊(duì)列)中
三、架構(gòu)設(shè)計
小結(jié)
???????? ?本篇文章主要講解了如何選擇一合適技術(shù)棧怠苔,以及后面分享的技術(shù)實(shí)時數(shù)倉的架構(gòu)圖同廉。我們在離線數(shù)倉使用的是hive我們可以在Hive中進(jìn)行一個層,而要做實(shí)時數(shù)倉的話需要使用消息隊(duì)列來做分層柑司,本次項(xiàng)目使用Kafka來分層迫肖。我在這里為大家提供大數(shù)據(jù)的資源
需要的朋友可以去下面GitHub去下載,信自己攒驰,努力和汗水總會能得到回報的蟆湖。我是大數(shù)據(jù)老哥,我們下期見~~~
資源獲取 獲取Flink面試題玻粪,Spark面試題隅津,程序員必備軟件,hive面試題劲室,Hadoop面試題伦仍,Docker面試題,簡歷模板等資源請去GitHub自行下載 https://github.com/lhh2002/Framework-Of-BigDataGitee 自行下載 ?https://gitee.com/li_hey_hey/dashboard/projects實(shí)時數(shù)倉代碼GitHub:https://github.com/lhh2002/Real_Time_Data_WareHouse