1、數據的時(shí)效性
2、流式計算與批量計算
3、總結與相關(guān)產(chǎn)品
(1) 流式計算流程
(2) 流式計算特點(diǎn)
(3) 相關(guān)產(chǎn)品
1、數據的時(shí)效性
日常工作中,我們一般會(huì )先把數據儲存在一張表中,然后對這張表的數據進(jìn)行加工、分析。既然數據要儲存在表中,就有時(shí)效性這個(gè)概念。
如果我們處理的是年級別的數據,比如人口分析、宏觀(guān)經(jīng)濟分析,那么數據最新日期距今晚個(gè)一兩周、甚至一兩個(gè)月都沒(méi)什么關(guān)系。
如果我們處理的是天級別的數據,比如各大網(wǎng)站的用戶(hù)偏好分析、零售供銷(xiāo)分析,一般晚個(gè)幾天也是可以的,即 T N 更新。
如果是小時(shí)級別的數據,對時(shí)效性要求就更高了,比如金融風(fēng)控,涉及到資金的安全,必須有一張小時(shí)級別的數據。
那么還有沒(méi)有要求更高的?當然有了,比如風(fēng)險監測,網(wǎng)站必須有實(shí)時(shí)監測系統,一旦有攻擊,就必須立刻采取措施,雙十一或者周年慶的時(shí)候,各大電商平臺都經(jīng)歷著(zhù)嚴峻的流量考驗,也必須對系統進(jìn)行實(shí)時(shí)的監測。此外,網(wǎng)站的實(shí)時(shí)個(gè)性化推薦、搜索引擎中也對實(shí)時(shí)性有極高的要求。
在這種場(chǎng)景下,傳統的數據處理流程——先收集數據,然后放到DB中,再取出來(lái)分析——就無(wú)法滿(mǎn)足這么高的實(shí)時(shí)要求,在隔壁,有一種叫“流式計算”的處理方法。
2、流式計算與批量計算
剛剛說(shuō)的:收集數據 - 放到DB中 - 取出來(lái)分析 的傳統的流程,叫做批量計算,顧名思義,將數據存起來(lái),批量進(jìn)行計算。
而流式計算,也跟名字一樣,是對數據流進(jìn)行實(shí)時(shí)計算,它不是更快的批計算,可以說(shuō),是完全不同的處理思路。
通過(guò)與批量計算進(jìn)行對比的方式,介紹下其原理:

(1) 與批量計算那樣慢慢積累數據不同,流式計算將大量數據平攤到每個(gè)時(shí)間點(diǎn)上,連續地進(jìn)行小批量的進(jìn)行傳輸,數據持續流動(dòng),計算完之后就丟棄。
(2) 批量計算是維護一張表,對表進(jìn)行實(shí)施各種計算邏輯。流式計算相反,是必須先定義好計算邏輯,提交到流失計算系統,這個(gè)計算作業(yè)邏輯在整個(gè)運行期間是不可更改的。
(3) 計算結果上,批量計算對全部數據進(jìn)行計算后傳輸結果,流式計算是每次小批量計算后,結果可以立刻投遞到在線(xiàn)系統,做到實(shí)時(shí)化展現。
3、總結與相關(guān)產(chǎn)品
(1) 流式計算流程
① 提交流計算作業(yè)。
② 等待流式數據觸發(fā)流計算作業(yè)。
③ 計算結果持續不斷對外寫(xiě)出。
(2) 流式計算特點(diǎn)
① 實(shí)時(shí)、低延遲
② 無(wú)界,數據是不斷無(wú)終止的
③ 連續,計算持續進(jìn)行,計算完之后數據即丟棄
(3) 相關(guān)產(chǎn)品
列舉一下流式計算的相關(guān)產(chǎn)品,不具體盤(pán)點(diǎn),對流式計算感興趣可以了解一下:
Storm:Twitter 開(kāi)發(fā)的第一代流處理系統
Heron:Twitter 開(kāi)發(fā)的第二代流處理系統
Spark streaming
Flink
Apache Kafka:linkedin開(kāi)發(fā)的一種高吞吐量的分布式發(fā)布訂閱消息系統,它可以處理消費者規模的網(wǎng)站中的所有動(dòng)作流數據。
Apache Samza
更多 SQL 連載、Python 連載、SAS 教程 請關(guān)注 數說(shuō)工作室
4、常用相似度一覽
5、哈希函數的套路
聯(lián)系客服