下面是关于Apache Flink(以下简称Filnk)框架和流式计算的概述。为了更专业、更技术化的介绍,在Flink文档中推荐了一些“概念性”的文章。
1、无穷数据集的持续计算
在我们详细介绍Flink前,复习一下当我们计算数据选择运算模型时,很可能会遇到的一个更高级别的数据集类型。下面有两个观点经常容易混淆,很有必要去澄清它们。
(1)两种数据集类型:
①无穷数据集:无穷的持续集成的数据集合。
②有界数据集:有限不会改变的数据集合。
很多现实中传统地认为有界或者批量的数据集合实际上是无穷数据集,不论这些数据是存储在HDFS的一系列目录中还是在那些基于日志的系统中(如 Apache Kafka)。
包含无边界数据集的场景,举例如下:
①终端用户用手机或者web应用做的交互。
②物理传感器提供的测量数据。
③金融市场产生的数据。
④服务器上的日志数据。
(2)两种数据运算模型
①流式:只要数据一直在产生,计算就持续地进行
②批处理:在预先定义的时间内运行计算,当完成时释放计算机资源
用任意一种运算模型去计算任何一种数据集是可能的,尽管这种选择不是最佳的。比如,批处理长期应用于处理无穷数据集,尽管存在视窗、状态管理和无序数据等潜在的风险问题。
Flink 是基于直观地去处理无穷数据集的流式运算模型:流式运算会一直计算持续生成的数据。数据集与运算模型的对应,在准确性和