流式计算
出自 MBA智库百科(https://wiki.mbalib.com/)
流式计算(Streaming Compute)
目录 |
流式计算(Streaming Compute)利用分布式的思想和方法,对海量“流”式数据进行实时处理。流式计算更加强调计算数据流和低时延。这边所谓的流数据( streaming data)是一种不断增长的,无限的数据集[1]。
流式计算是否等于实时计算?习惯上实时和流式等价,但其实这种观点并不完全正确。数据的发生的时间和处理时间有可能是不一致的,只能说流式计算是一种低延迟的计算方式。
业界常见的流式计算框架:Storm、Flink、Yahoo S4、Kafka Stream、Twitter Heron、Apache Samza、Spark Streaming。
流式计算框架、平台与相关产品[2]
第一类,商业级流式计算平台(IBM InfoSphere Streams、IBM StreamBase等);
第二类,开源流式计算框架(Twitter Storm、S4等);
第三类,公司为支持自身业务开发的流式计算框架。
Strom:Twitter 开发的第一代流处理系统。
Heron:Twitter 开发的第二代流处理系统。
Spark streaming:是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。
Flink:是一个针对流数据和批数据的分布式处理引擎。
Apache Kafka:由Scala写成。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
流式处理可以用于两种不同场景: 事件流和持续计算。
(1)事件流
事件流能够持续产生大量的数据,这类数据最早出现与传统的银行和股票交易领域,也在互联网监控、无线通信网等领域出现、需要以近实时的方式对更新数据流进行复杂分析如趋势分析、预测、监控等。简单来说,事件流采用的是查询保持静态,语句是固定的,数据不断变化的方式。
(2)持续计算
比如对于大型网站的流式数据:网站的访问PV/UV、用户访问了什么内容、搜索了什么内容等,实时的数据计算和分析可以动态实时地刷新用户访问数据,展示网站实时流量的变化情况,分析每天各小时的流量和用户分布情况; 比如金融行业,毫秒级延迟的需求至关重要。一些需要实时处理数据的场景也可以应用Storm,比如根据用户行为产生的日志文件进行实时分析,对用户进行商品的实时推荐等。
通过大数据处理我们获取了数据的价值,但是数据的价值是恒定不变的吗?显然不是,一些数据在事情发生后不久就有了更高的价值,而且这种价值会随着时间的推移而迅速减少。流处理的关键优势在于它能够更快地提供洞察力,通常在毫秒到秒之间。
流式计算的价值在于业务方可在更短的时间内挖掘业务数据中的价值,并将这种低延迟转化为竞争优势。比方说,在使用流式计算的推荐引擎中,用户的行为偏好可以在更短的时间内反映在推荐模型中,推荐模型能够以更低的延迟捕捉用户的行为偏好以提供更精准、及时的推荐。
流式计算能做到这一点的原因在于,传统的批量计算需要进行数据积累,在积累到一定量的数据后再进行批量处理;而流式计算能做到数据随到随处理,有效降低了处理延时。