Flink基础知识--有界数据处理

有界数据处理
有界数据在概念上非常简单,并且可能对每个人都很熟悉。在图1-2中,我们从左侧开始,其中包含一个充满熵的数据集。我们通过一些数据处理引擎(通常是批处理,虽然设计良好的流引擎也能正常工作)运行它,例如MapReduce,并且在右侧最终得到一个具有更大内在价值的新结构化数据集。
图1-2。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
使用经典批处理引擎进行有界数据处理。左侧的有限非结构化数据池通过数据处理引擎运行,从而在右侧生成相应的结构化数据。
虽然作为此方案的一部分,您实际可以计算的内容当然有无限变化,但整体模型非常简单。更有趣的是处理无界数据集的任务。现在让我们看一下通常处理无界数据的各种方式,从传统批处理引擎使用的方法开始,然后结束您可以采用专为无界数据设计的系统的方法,例如大多数流媒体或微型引擎。

无界数据:批量批处理引擎虽然没有明确设计时考虑到无界数据,但仍然被用于处理无界数据集,因为批处理系统是最初构想的。正如您所料,此类方法围绕将无界数据切割为适合批处理的有界数据集的集合。
固定窗口使用批处理引擎的重复运行处理无界数据集的最常用方法是将输入数据窗口化为固定大小的窗口,然后将每个窗口作为单独的有界数据源(有时也称为翻滚窗口)处理,如图1-3所示。
在这里插入图片描述
特别是对于像日志这样的输入源,可以将事件写入目录和文件层次结构,其名称编码它们对应的窗口,这种事情在第一次显示时显得非常简单,因为你基本上执行了基于时间的随机播放数据提前到适当的事件时间窗口。
但实际上,大多数系统仍然存在完整性问题需要处理(如果您的某些事件由于网络分区而延迟到达日志会怎么样?如果您的事件是全局收集的并且必须转移到公共位置怎么办?在处理之前?如果您的事件来自移动设备会怎么样?),这意味着可能需要某种缓解(例如,延迟处理,直到您确定已收集所有事件或在数据到达时重新处理给定窗口的整个批处理晚了)。
图1-3。

通过带有经典批处理引擎的临时固定窗口进行无限数据处理。无界数据集被预先收集到有限数据的有限固定大小窗口中,然后通过连续运行经典批处理引擎进行处理。

会话
当您尝试使用批处理引擎将无限数据处理为更复杂的窗口策略(如会话)时,此方法会更加崩溃。会话通常被定义为由不活动间隙终止的活动时段(例如,对于特定用户)。使用典型的批处理引擎计算会话时,您经常会遇到按批次分割的会话,如图1-4中的红色标记所示。我们可以通过增加批量来减少拆分数量,但代价是延迟增加。另一种选择是添加额外的逻辑来拼接先前运行的会话,但代价是进一步复杂化。
图1-4。

在这里插入图片描述
通过带有经典批处理引擎的临时固定窗口,无限制地将数据处理到会话中。将无界数据集预先收集到有限数据的有限固定大小窗口中,然后通过连续运行经典批处理引擎将其细分为动态会话窗口。
无论哪种方式,使用经典的批处理引擎来计算会话都不太理想。一种更好的方法是以流式方式构建会话,我们将在后面讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值