Flink 如何现实新的流处理应用第一部分:事件时间与无序处理

Posted @SmartSi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink 如何现实新的流处理应用第一部分:事件时间与无序处理相关的知识,希望对你有一定的参考价值。

流数据处理正处于蓬勃发展中,可以提供更实时的数据以实现更好的数据洞察,同时从数据中进行分析的流程更加简化。在现实世界中数据生产是一个连续不断的过程(例如,Web服务器日志,移动应用程序中的用户活跃,数据库事务或者传感器读取的数据)。正如其他人所指出的,到目前为止,大部分数据架构都是建立在数据是有限的、静态的这样的基本假设之上。为了缩减连续数据生产和旧"批处理"系统局限性之间的这一根本差距,引入了复杂而脆弱(fragile)的端到端管道。现代流处理技术通过以现实世界事件产生的形式对数据进行建模和处理,从而减轻了对复杂解决方案的依赖。

以流的方式对数据建模并处理的想法并不新鲜。但是,新的流处理系统(包括 Apache Flink)与旧的流处理系统(包括开源和专有的)有本质的区别。使用 Flink 进行数据流处理比传统概念上快速(实时)分析要应用广泛得多,包括对历史数据的分析,以及支持新一类的应用程序(使用以前的旧技术很难或根本不能实现这些应用程序)。我们将详细研究一些应用程序,并展示 Flink 是如何以及为何能够有效地支持这些应用程序:

  • 乱序数据上的准确结果。在大多数流处理场景中,事件的顺序非常重要,通常事件到达数据处理集群的顺序与它在现实世界中实际发生的时间不同。Flink 是第一个可以让开发人员可以控制事件时间(事情实际发生的时间)的开源系统,并可以在乱序流上获得准确的结果。
  • 会话和非对齐窗口:对 Web 日志、机器日志以及其他数据进行分析需要能够在会话中将事件进行分组。会话是非对齐窗口的一个典型例子,例如,每个 key 的窗口开始和结束都不一样,这需要 Flink 提供的窗口和检查点之间的分离。
  • 应用程序状态版本控制:在纯数据流体系结构(通常称为 Kappa 体系结构)中࿰

以上是关于Flink 如何现实新的流处理应用第一部分:事件时间与无序处理的主要内容,如果未能解决你的问题,请参考以下文章

Flink 如何现实新的流处理应用第一部分:事件时间与无序处理

Flink 如何实现新的流处理应用第二部分:版本化状态

Flink 如何实现新的流处理应用第二部分:版本化状态

Flink 系统性学习笔记系列

Flink 有状态的流的工作(Working with state)

Flink 图解 Watermark