首页天道酬勤flink流式计算(flink流式处理的原理)

flink流式计算(flink流式处理的原理)

admin 12-04 20:48 311次浏览

Flink为流处理器开辟了一片新天地,使得应用构建过程符合自然规律。接下来,让我们看看Flink多功能性的几个特性,以及它如何确保数据的准确性。

遵守生成数据的自然规律。

处理器(Flink)的正确性在于计算窗口的定义符合数据生成的自然规律。例如,对于每个访问者来说,活动是不连续的,当访问者离开一段时间后又回来时,数据就会产生一个缺口。处理框架如何将访客行为分析的计算窗口与实际访问时间段匹配?

首先,我们以微批处理或固定计算窗口为例。由于微批处理方法得到的计算窗口是人为设置的,很难与会话窗口匹配。Flink的流处理API可以更灵活地定义窗口,开发者可以设置非活动阈值。如果超过这个预测,就可以判断活动结束,这样就解决了这个问题。Flink能做到这一点的根本原因是它可以根据真实情况设置计算窗口。

事件时间和处理时间

事件时间是实际事件,处理时间是事件流数据开始被程序处理的时间。

一般来说,事件时间在流处理架构中并不常用,但是越来越多的人在做,而Flink可以完美做到,这对于实现计算的正确性非常有用。为了获得最佳的计算架构,系统需要能够通过数据发现发生的事件,而不是只使用处理时间。Flink理解事件时间的能力保证了正确性。与其他流处理系统相比,Flink的一个优点是可以区分不同类型的时间。

故障后保持准确性。

Flink使用的技术称为检查点,在每个检查点,系统都会记录中间按钮的状态,以便在出现故障时准确复位。这种方法使得系统能够以低成本的方式具有容错性。当一切正常时,检查点机制对系统的影响很小,但检查点不会在发生故障后才重新处理数据。当运行一个新模型或修复一个错误时,可能需要重放和重新处理时间流数据。

及时给出要求的结果。

Flink可以满足低延迟应用的需求,把这算作正确性可能会令人惊讶。但从另一个角度来看,如果一些求和、求平均值的结果没有及时得到,很难说是准确的。比如你在开车的时候通过手机查询实时路况,选择了一条平坦的道路,但是程序返回查询结果需要很长时间,那么如果结果准确的话就没有用了。

可以看出,在某些情况下,极低的延迟非常重要,这决定了系统能够及时给出需要的结果,而不仅仅是完成计算。Flink的实时容错流媒体能力可以满足这种需求。

使开发和操作更容易。

Flink与用户互动的借口也有助于确保正确性。完整的语义简化了开发工作,进而降低了错误率。此外,Flink还承担了跟踪计算状态的任务,减轻了开发人员的负担,简化了编程工作,提高了应用程序的成功率。用同样的技术实现流处理和批处理,大大简化了开发和运维工作。

为科研量身定制控制台快速上手
汪柏睿(任柏睿) 可视化编程(altair8800)
相关内容