Apache Flink 漫谈系列(06) - 流表对偶(duality)性
实际问题
很多大数据计算产品,都对用户提供了SQL API,比如Hive, Spark, Flink等,那么SQL作为传统关系数据库的查询语言,是应用在批查询场景的。Hive和Spark本质上都是Batch的计算模式(在《Apache Flink 漫谈系列 - 概述》我们介绍过Spark是Micro Batching模式),提供SQL API很容易被人理解,但是Flink是纯流(Native Streaming)的计算模式, 流与批在数据集和计算过程上有很大的区别,如下:
- 批查询场景的特点 - 有限数据集,一次查询返回一个计算结果就结束查询
- 流查询场景的特点 - 无限数据集,一次查询不断修正计算结果,查询永远不结束
我们发现批与流的查询场景在数据集合和计算过程上都有很大的不同,那么基于Native Streaming模式的Apache F
