流式计算概述|学习笔记

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 快速学习流式计算概述

开发者学堂课程【分布式计算入门流式计算概述】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/375/detail/4709


流式计算概述

内容介绍:

一、增量计算和流式计算

二、增量计算和流式计算的应用场景

一、增量计算和流式计算

流式计算是一种特殊的增量计算

1.流式计算

利用分布式的思想和方法,对海量“流”式数据进行实时处理,源自业务对海量数据,在“时效”价值上的挖掘诉求。

2.实时计算

(1)ad-hoc-computing

计算不可枚举,计算在 query 时发生,提交查询的时候发生。(数据的实时计算)

(2)stream computing

计算可枚举,计算在数据发生变化时发生。(实时数据的计算)

(3)continuous computing

支持在大数据集的在线复杂实时计算。(实时数据的实时计算)

3.增量计算

f(x + delta) = g(f(x),delta)

x 是存量,之前遇到的已经处理过的数据

delta 是本次的新增数据

x + delta 作为整体计算,f = 增量计算的结果,在存量数据上已经计算出来的结果。

g(f(x),delta) 增量计算的结果,增量计算和批量计算之间应该是完全一样

f(x) oldValue状态,在本次 delta 计算前的状态

增量计算、批量计算=有状态计算

batch ==> delta 处理的数据越少,计算的时效性越强,系统的吞吐下降。

增量计算是在系统的时效性、系统的复杂性和系统的性能之间不断的做 tradeoff 。

优势:

大家可以关注到阿里巴巴双十一鸟巢中的实时大屏,这个结果是随着事件不断更新的实时产出。如果是用批量计算或者离线计算,只会是十一月十一日做完了才会得到结果。

即便是相同的计算也可以用增量方法去运算,这也会带来一些好处,比如说计算每天的GMV,用传统的批量计算会等到每天的0点或1点数据全部 ready 的情况下去运算,负载压力:1点→6点,7点→8点出结果,1点→5点特别高,平时很低。

整个集群的规模:受峰值的运算压力所决定。

双十一的流量可能是平时流量的数倍或者数十倍,那么采购机器的时候是需要根据双十一的峰值去采购的,而这些机器在平时是用不到的。

如果将这些运用变成增量计算, delta 数据来一批计算一批,很明显的好处是将时间的负载平摊在每二十四小时里面,平摊在每一分钟里面。

如果把整个计算量看做一个矩形或者一个梯形,它的阴影是整个学校的计算量。那么传统的批量计算,它是会集中在少数时间内把它寄上来,所以整个高度就非常高,也就是说需要的机器的数量会非常大。

那利用增量计算完全可以把这个宽度拉宽,相同面积下,所需要的这个高度(也就说峰值就比较少),那么可以达到大大节省整个集群规模的这么一个作用。

那么我们经常会在计算中发现一个问题,也就是说大规模计算系统,它的 input 、 output 是两个很重要的因素,但是实际上 input 、output 之间会膨胀出很多的中间结果。

我们会在真正的线上会发现有些任务它的中间结果甚至是 input 、output 的几十倍甚至上百倍,也就说它中间结果的膨胀是非常非常厉害的。那么中间结果大量的膨胀导致非常大量 io 的消耗,所以整个延时也会增加。

而增量计算它的好处很明显,中间计算结果在很多情况下是不需要膨胀的。增量计算是个有状态的计算,那么如果把离线计算或者批量计算机进行增量化还有一个好处,是可以把之前的状态保存保留下来,那么在整个任务要进行恢复的时候,它实际上可以从最近一次的状态开始。

所以它的好处很明显是整个容错的速度非常快,不像批量计算,要将整个数据全部进行 recomputing 。

因为增量计算是分批次计算,所以实际上它在真实业务场景中出现大量的数据倾斜的计算情况下,有较好的克服倾斜能力。假设我们的数据有10万倍的倾斜,而这个10万倍也是很普通的,双十一排名前三的店铺的成交额可能就是其他店铺成交额的十几万倍。

如果进行批量计算,不同节点的运算,有些节点可能是其他节点运算量的几千上万倍,而整个系统的性能是受最慢的那台机器所决定的。如果我们将这些数据进行分批次运算,比如说分成一千批,实际上每批的数据倾斜的程度是呈线性降低。

当然,不同批次的运算是可以并行进行,所以它可以大大降低数据倾斜对整个计算性能的退化的影响。

中间计算结果实时产出

平摊计算

中间计算状态不膨胀

有状态的 failover

批次运算

降低数据的倾斜对整个计算性能的退化的影响。


二、增量计算和流式计算的应用场景

1. 日志采集与在线分析

2. 大数据的预处理

3. 风险监测与告警

对交易业务的虚假交易进行实时监测与分析。

4.网站与移动应用统计分析

双11运营、淘宝量子统计等各类统计业务分析中,提供实时的业务统计分析报表。

5.网络安全检测

实时监控、实时分析、实时监测、实施对抗

6.在线服务计量与计费管理系统

假设一个广告系统,如果一个广告组充了1000块钱,买了这个镜架,单次点击100块钱。(当然搜广告搜索它的算法不仅根据价格,还有经过根据内容来排序。)

假设花了这个钱排序相对比较靠前,那么实际上大量的流量可能把今天给的预算例如说就是5000块钱,一下就点击光了。但是如果这个广告平台的计费是小时,乃至像之前以天为计算单位,那实际上尽管充值的钱被消耗光了,但实际上它没有统计。也就是说广告位可能还是比较靠前,那这样对平台来说其实是损失非常大。

所以实际上现在业界的一些广告系统都已经引入了实时的计量计费的监测。

7.工业4.0

8.物联网

像从去年比较火的工业4.0、IoT互联网这些场景下数据本身的实时性和计算的时间要求就非常高,那么我相信在今年乃至明年,在工业4.0和物联网实时计算、流式计算将会大行其道。

相关文章
|
2月前
|
消息中间件 监控 数据可视化
实时计算Flink场景实践和核心功能体验
本文详细评测了阿里云实时计算Flink版,从产品引导、文档帮助、功能满足度等方面进行了全面分析。产品界面设计友好,文档丰富实用,数据开发和运维体验优秀,具备出色的实时性和动态扩展性。同时,提出了针对业务场景的改进建议,包括功能定制化增强、高级分析功能拓展及可视化功能提升。文章还探讨了产品与阿里云内部产品及第三方工具的联动潜力,展示了其在多云架构和跨平台应用中的广阔前景。
88 9
|
7月前
|
存储 SQL 数据处理
实时计算 Flink版产品使用合集之如何使用任务调度的功能
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
资源调度 监控 Java
实时计算 Flink版产品使用合集之如何使用CEP库进行数据处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
消息中间件 传感器 NoSQL
Flink流处理API大合集:掌握所有flink流处理技术,看这一篇就够了
一个flink应用程序开发的步骤大致为五个步骤:构建执行环境、获取数据源、操作数据源、输出到外部系统、触发程序执行。
Flink流处理API大合集:掌握所有flink流处理技术,看这一篇就够了
|
SQL 存储 机器学习/深度学习
应用场景与实时计算 Flink 版产品介绍 | 学习笔记
快速学习应用场景与实时计算 Flink 版产品介绍,介绍了应用场景与实时计算 Flink 版产品介绍系统机制, 以及在实际应用过程中如何使用。
应用场景与实时计算 Flink 版产品介绍 | 学习笔记
|
存储 监控 物联网
阿里云流计算应用场景|学习笔记
快速学习阿里云流计算应用场景
505 0
阿里云流计算应用场景|学习笔记
|
SQL 消息中间件 Cloud Native
实时数仓实战|学习笔记
快速学习实时数仓实战
173 0
实时数仓实战|学习笔记
|
消息中间件 算法 固态存储
主流实时流处理计算框架Flink初体验。
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。Flink 被设计为在所有常见的集群环境中运行,以内存中的速度和任何规模执行计算。Apache Flink 是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架。
主流实时流处理计算框架Flink初体验。
|
消息中间件 SQL 搜索推荐
基于 Confluent + Flink 的实时数据分析最佳实践
在实际业务使用中,需要经常实时做一些数据分析,包括实时PV和UV展示,实时销售数据,实时店铺UV以及实时推荐系统等,基于此类需求,Confluent+实时计算Flink版是一个高效的方案。
|
消息中间件 SQL 搜索推荐
基于Confluent+Flink的实时数据分析最佳实践
在实际业务使用中,需要经常实时做一些数据分析,包括实时PV和UV展示,实时销售数据,实时店铺UV以及实时推荐系统等,基于此类需求,Confluent+实时计算Flink版是一个高效的方案。
875 0