流式计算概述|学习笔记

简介: 快速学习流式计算概述

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

课程地址: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和物联网实时计算、流式计算将会大行其道。

相关文章
|
机器学习/深度学习 自然语言处理
大语言模型(LLM)框架及微调 (Fine Tuning)
大语言模型(LLM)框架及微调 (Fine Tuning)
1174 0
|
分布式计算 大数据 Apache
【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)
【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)
944 0
|
4月前
|
人工智能 弹性计算 监控
零基础也会!玩转 OpenClaw:阿里云轻量部署 + 技能配置全攻略
OpenClaw(原Clawdbot/Moltbot)是开源AI Agent框架,集成通义千问等大模型,支持自动化任务。通过Skills插件(如邮件处理、文件监控、网页搜索),可在阿里云轻量服务器上5分钟一键部署,打造7×24小时在线的AI数字员工。(239字)
|
12月前
|
存储 传感器 安全
数据不是“铁打的”,从出生到销毁它也有生命周期
数据不是“铁打的”,从出生到销毁它也有生命周期
741 1
|
消息中间件 分布式计算 搜索推荐
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
1084 0
【KafkaStream】微服务学习笔记十一:流式计算概述&KafkaStream入门
|
SQL 存储 大数据
Flink 基础详解:大数据处理的强大引擎
Apache Flink 是一个分布式流批一体化的开源平台,专为大规模数据处理设计。它支持实时流处理和批处理,具有高吞吐量、低延迟特性。Flink 提供统一的编程抽象,简化大数据应用开发,并在流处理方面表现卓越,广泛应用于实时监控、金融交易分析等场景。其架构包括 JobManager、TaskManager 和 Client,支持并行度、水位线、时间语义等基础属性。Flink 还提供了丰富的算子、状态管理和容错机制,如检查点和 Savepoint,确保作业的可靠性和一致性。此外,Flink 支持 SQL 查询和 CDC 功能,实现实时数据捕获与同步,广泛应用于数据仓库和实时数据分析领域。
11253 42
|
人工智能 API
MMedAgent:专为医疗领域设计的多模态 AI 智能体,支持医学影像处理、报告生成等多种医疗任务
MMedAgent 是专为医疗领域设计的多模态AI智能体,支持多种医疗任务,包括医学影像处理、报告生成等,性能优于现有开源方法。
902 19
MMedAgent:专为医疗领域设计的多模态 AI 智能体,支持医学影像处理、报告生成等多种医疗任务
|
存储 弹性计算 运维
Hologres计算组实例&分时弹性入门实践
本文整理自 Hologres 产品团队的观秋老师关于Hologres 计算组实例&分时弹性入门实践的分享。内容主要为以下三部分: 1. Hologres 计算组实例介绍 2. 计算组实例入门实践 3. 分时弹性入门实践
432 16
|
SQL 运维 数据可视化
阿里云实时计算Flink版产品体验测评
阿里云实时计算Flink基于Apache Flink构建,提供一站式实时大数据分析平台,支持端到端亚秒级实时数据分析,适用于实时大屏、实时报表、实时ETL和风控监测等场景,具备高性价比、开发效率、运维管理和企业安全等优势。
|
存储 SQL Cloud Native
Hologres 的架构设计与工作原理
【9月更文第1天】随着大数据时代的到来,实时分析和处理数据的需求日益增长。传统的数据仓库在处理大规模实时数据分析时逐渐显露出性能瓶颈。为了解决这些问题,阿里巴巴集团研发了一款名为 Hologres 的新型云原生交互式分析数据库。Hologres 能够支持 SQL 查询,并且能够实现实时的数据写入和查询,这使得它成为处理大规模实时数据的理想选择。
710 2