批处理和流处理
Reference
[1]?https://www.jianshu.com/p/5cc07eae1a0c
批處理?Batch Processing
批處理在大數(shù)據(jù)世界有著悠久的歷史。批處理主要操作大容量靜態(tài)數(shù)據(jù)集,并在計算過程完成后返回結(jié)果。
批處理模式中使用的數(shù)據(jù)集通常符合下列特征:
-
有界:批處理數(shù)據(jù)集代表數(shù)據(jù)的有限集合
-
持久:數(shù)據(jù)通常始終存儲在某種類型的持久存儲位置中
-
大量:批處理操作通常是處理極為海量數(shù)據(jù)集的唯一方法
批處理非常適合需要訪問全套記錄才能完成的計算工作。例如在計算總數(shù)和平均數(shù)時,必須將數(shù)據(jù)集作為一個整體加以處理,而不能將其視作多條記錄的集合。這些操作要求在計算進(jìn)行過程中數(shù)據(jù)維持自己的狀態(tài)。
需要處理大量數(shù)據(jù)的任務(wù)通常最適合用批處理操作進(jìn)行處理。無論直接從持久存儲設(shè)備處理數(shù)據(jù)集,或首先將數(shù)據(jù)集載入內(nèi)存,批處理系統(tǒng)在設(shè)計過程中就充分考慮了數(shù)據(jù)的量,可提供充足的處理資源。由于批處理在應(yīng)對大量持久數(shù)據(jù)方面的表現(xiàn)極為出色,因此經(jīng)常被用于對歷史數(shù)據(jù)進(jìn)行分析。
大量數(shù)據(jù)的處理需要付出大量時間,因此批處理不適合對處理時間要求較高的場合。
Apache Hadoop是代表性的批處理框架。流處理 Stream Processing
流處理系統(tǒng)會對隨時進(jìn)入系統(tǒng)的數(shù)據(jù)進(jìn)行計算。相比批處理模式,這是一種截然不同的處理方式。流處理方式無需針對整個數(shù)據(jù)集執(zhí)行操作,而是對通過系統(tǒng)傳輸?shù)拿總€數(shù)據(jù)項(xiàng)執(zhí)行操作。
流處理中的數(shù)據(jù)集是“無邊界”的,這就產(chǎn)生了幾個重要的影響:
-
完整數(shù)據(jù)集只能代表截至目前已經(jīng)進(jìn)入到系統(tǒng)中的數(shù)據(jù)總量。
-
工作數(shù)據(jù)集也許更相關(guān),在特定時間只能代表某個單一數(shù)據(jù)項(xiàng)。
-
處理工作是基于事件的,除非明確停止否則沒有“盡頭”。處理結(jié)果立刻可用,并會隨著新數(shù)據(jù)的抵達(dá)繼續(xù)更新。
流處理系統(tǒng)可以處理幾乎無限量的數(shù)據(jù),但同一時間只能處理一條(真正的流處理)或很少量(微批處理,Micro-batch Processing)數(shù)據(jù),不同記錄間只維持最少量的狀態(tài)。雖然大部分系統(tǒng)提供了用于維持某些狀態(tài)的方法,但流處理主要針對副作用更少,更加功能性的處理(Functional processing)進(jìn)行優(yōu)化。
功能性操作主要側(cè)重于狀態(tài)或副作用有限的離散步驟。針對同一個數(shù)據(jù)執(zhí)行同一個操作會或略其他因素產(chǎn)生相同的結(jié)果,此類處理非常適合流處理,因?yàn)椴煌?xiàng)的狀態(tài)通常是某些困難、限制,以及某些情況下不需要的結(jié)果的結(jié)合體。因此雖然某些類型的狀態(tài)管理通常是可行的,但這些框架通常在不具備狀態(tài)管理機(jī)制時更簡單也更高效。
此類處理非常適合某些類型的工作負(fù)載。有近實(shí)時處理需求的任務(wù)很適合使用流處理模式。分析、服務(wù)器或應(yīng)用程序錯誤日志,以及其他基于時間的衡量指標(biāo)是最適合的類型,因?yàn)閷@些領(lǐng)域的數(shù)據(jù)變化做出響應(yīng)對于業(yè)務(wù)職能來說是極為關(guān)鍵的。流處理很適合用來處理必須對變動或峰值做出響應(yīng),并且關(guān)注一段時間內(nèi)變化趨勢的數(shù)據(jù)。
流處理是無限界的,適合于處理大量近乎實(shí)時的低延遲要求的數(shù)據(jù)。
Apache Storm, Kafka等是代表性的流處理框架。
轉(zhuǎn)載于:https://www.cnblogs.com/codingforum/p/10212097.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
- 上一篇: 正则学习小结(1)-基础
- 下一篇: vue 强制刷新组件