searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

流式计算flink介绍

2023-08-30 02:05:19
14
0

1.1.1     什么是流式计算

数据的价值在其产生之后,将随着时间的流逝,逐渐降低。因此,我们最好在事件发生之后,迅速对其进行有效处理,实时,快速的处理新产生的数据,而不是待数据存储在一起之后,再进行批量处理。

流数据(事件流,数据流):流数据可以看成是一组组离散事件集合体,由成千上万个数据源,源源不断的持续生成,生成的数据流以log(非传统意义上的系统日志)方式传送。例如我们金融行业中,用户对哪款基金进行了查看,明细点击了几次,现货期货的下单事件,网购支付事件等。

流计算,即是面向流数据的计算,针对于流计算系统而言,上游的流数据是实时,且持续的,例如某视频网站的视频点播事件,24小时都在发生,点播事件是离散且无固定规律的,点播事件构成的流数据,将按照其发生的顺序发送至流系统被计算,只要网站不停运,点播事件流将绵延不绝的流向流系统,而流系统,也将根据这些事件流信息进行计算,形成分类推荐,以及对各个视频进行热度统计等。

1.1.2     流式计算特点

  1. 中间计算结果实时产出,低延时;
  2. 数据不断无终止,并被平摊到各时间点计算;
  3. 中间计算状态不膨胀;
  4. 有状态的failover(容错效率高);
  5. 计算持续进行,计算完后数据即丢弃。

1.1.3     流式计算与传统计算的区别

1.1.3.1     批量计算

先收集数据 - 放到DB中 - 取出来分析的传统的流程,叫做批量计算,也就是将数据存起来,批量进行计算。Prometheus方案就属于批量计算。

 

1.1.3.2     流式计算

流式计算是对数据流进行实时计算,与批量计算那样慢慢积累数据不同,无法确定数据的到来时刻和到来顺序,也无法将全部数据存储起来,因此,不再进行流式数据的存储。而是将大量数据平摊到每个时间点上,连续地进行小批量的进行传输,数据持续流动,计算完之后就丢弃。

批量计算是维护一张表,对表进行实施各种计算逻辑。流式计算相反,是必须先定义好计算逻辑,提交到流失计算系统,这个计算作业逻辑在整个运行期间是不可更改的。

计算结果上,批量计算对全部数据进行计算后传输结果,流式计算是每次小批量计算后,结果可以立刻投递到在线系统,做到实时化展现。

1.1.4     流式计算-窗口

对于流式计算而言,窗口是一个最常见的需求,比如计算某个字段最近一小时的累积量,计算某个字段一天的出现的次数等。

在流式计算中,数据是没有边界的,源源不断的数据从输入流向输出,但是计算是需要边界的,无论是增量计算还是全量计算,都需要一个范围。那么,把无限的数据流划分成一段一段的数据集,这个计算模型可以称为窗口模型。

基本的窗口模型,会根据时间来划分出一个一个有范围的窗口,在此基础上对一批数据集进行计算。

Flink支持基于无限大窗口的聚合以及对一个特定的窗口的聚合。例如,需要统计在过去的1分钟内有多少用户点击了某个的网页,可以通过定义一个窗口来收集最近1分钟内的数据,并对这个窗口内的数据进行计算。

Flink支持的窗口聚合主要是两种:Window聚合和Over聚合。本文档主要介绍Window聚合。Window聚合支持两种时间属性定义窗口:Event Time和Processing Time。每种时间属性类型支持三种窗口类型:滚动窗口(TUMBLE)、滑动窗口(HOP)和会话窗口(SESSION)。

1.1.4.1     滚动窗口

滚动窗口将每个元素分配到一个指定大小的窗口中。通常滚动窗口有一个固定的大小,并且不会出现重叠。例如:如果指定了一个5分钟大小的滚动窗口,无限流的数据会根据时间划分成 [0:00 - 0:05)、 [0:05, 0:10)、 [0:10, 0:15)等窗口。

1.1.4.2     滑动窗口

通常情况下大部分元素符合多个窗口情景,窗口是重叠的。因此,滑动窗口在计算移动平均数(moving averages)时很实用。例如,计算过去5分钟数据的平均值,每10秒钟更新一次,可以设置slide为10秒,size为5分钟。

1.1.4.3     会话窗口

会话窗口通过一个间隔时间(Gap)来配置,这个间隔定义了非活跃周期的长度。例如,一个表示鼠标点击活动的数据流可能具有长时间的空闲时间,并在其间散布着高浓度的点击。 如果数据在最短指定的间隔持续时间之后到达,则会开始一个新的窗口。

0条评论
0 / 1000
成****胜
8文章数
0粉丝数
成****胜
8 文章 | 0 粉丝
原创

流式计算flink介绍

2023-08-30 02:05:19
14
0

1.1.1     什么是流式计算

数据的价值在其产生之后,将随着时间的流逝,逐渐降低。因此,我们最好在事件发生之后,迅速对其进行有效处理,实时,快速的处理新产生的数据,而不是待数据存储在一起之后,再进行批量处理。

流数据(事件流,数据流):流数据可以看成是一组组离散事件集合体,由成千上万个数据源,源源不断的持续生成,生成的数据流以log(非传统意义上的系统日志)方式传送。例如我们金融行业中,用户对哪款基金进行了查看,明细点击了几次,现货期货的下单事件,网购支付事件等。

流计算,即是面向流数据的计算,针对于流计算系统而言,上游的流数据是实时,且持续的,例如某视频网站的视频点播事件,24小时都在发生,点播事件是离散且无固定规律的,点播事件构成的流数据,将按照其发生的顺序发送至流系统被计算,只要网站不停运,点播事件流将绵延不绝的流向流系统,而流系统,也将根据这些事件流信息进行计算,形成分类推荐,以及对各个视频进行热度统计等。

1.1.2     流式计算特点

  1. 中间计算结果实时产出,低延时;
  2. 数据不断无终止,并被平摊到各时间点计算;
  3. 中间计算状态不膨胀;
  4. 有状态的failover(容错效率高);
  5. 计算持续进行,计算完后数据即丢弃。

1.1.3     流式计算与传统计算的区别

1.1.3.1     批量计算

先收集数据 - 放到DB中 - 取出来分析的传统的流程,叫做批量计算,也就是将数据存起来,批量进行计算。Prometheus方案就属于批量计算。

 

1.1.3.2     流式计算

流式计算是对数据流进行实时计算,与批量计算那样慢慢积累数据不同,无法确定数据的到来时刻和到来顺序,也无法将全部数据存储起来,因此,不再进行流式数据的存储。而是将大量数据平摊到每个时间点上,连续地进行小批量的进行传输,数据持续流动,计算完之后就丢弃。

批量计算是维护一张表,对表进行实施各种计算逻辑。流式计算相反,是必须先定义好计算逻辑,提交到流失计算系统,这个计算作业逻辑在整个运行期间是不可更改的。

计算结果上,批量计算对全部数据进行计算后传输结果,流式计算是每次小批量计算后,结果可以立刻投递到在线系统,做到实时化展现。

1.1.4     流式计算-窗口

对于流式计算而言,窗口是一个最常见的需求,比如计算某个字段最近一小时的累积量,计算某个字段一天的出现的次数等。

在流式计算中,数据是没有边界的,源源不断的数据从输入流向输出,但是计算是需要边界的,无论是增量计算还是全量计算,都需要一个范围。那么,把无限的数据流划分成一段一段的数据集,这个计算模型可以称为窗口模型。

基本的窗口模型,会根据时间来划分出一个一个有范围的窗口,在此基础上对一批数据集进行计算。

Flink支持基于无限大窗口的聚合以及对一个特定的窗口的聚合。例如,需要统计在过去的1分钟内有多少用户点击了某个的网页,可以通过定义一个窗口来收集最近1分钟内的数据,并对这个窗口内的数据进行计算。

Flink支持的窗口聚合主要是两种:Window聚合和Over聚合。本文档主要介绍Window聚合。Window聚合支持两种时间属性定义窗口:Event Time和Processing Time。每种时间属性类型支持三种窗口类型:滚动窗口(TUMBLE)、滑动窗口(HOP)和会话窗口(SESSION)。

1.1.4.1     滚动窗口

滚动窗口将每个元素分配到一个指定大小的窗口中。通常滚动窗口有一个固定的大小,并且不会出现重叠。例如:如果指定了一个5分钟大小的滚动窗口,无限流的数据会根据时间划分成 [0:00 - 0:05)、 [0:05, 0:10)、 [0:10, 0:15)等窗口。

1.1.4.2     滑动窗口

通常情况下大部分元素符合多个窗口情景,窗口是重叠的。因此,滑动窗口在计算移动平均数(moving averages)时很实用。例如,计算过去5分钟数据的平均值,每10秒钟更新一次,可以设置slide为10秒,size为5分钟。

1.1.4.3     会话窗口

会话窗口通过一个间隔时间(Gap)来配置,这个间隔定义了非活跃周期的长度。例如,一个表示鼠标点击活动的数据流可能具有长时间的空闲时间,并在其间散布着高浓度的点击。 如果数据在最短指定的间隔持续时间之后到达,则会开始一个新的窗口。

文章来自个人专栏
学习
8 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0