Flink Table API& SQL编程指南(Dynamic Table、Continuous Querires、Query Restriction)

Streaming Concepts

Flink的Table API或者是SQL的计算针对于一些Batch或者Streaming数据在语义上是一致的。由于关系运算和SQL分析最初是为了对批处理而设计的,所以讲关系查询或者SQL应用在无界的流计算方面不如有界批处理那么好理解。因此我们后面将给大家介绍Flink 的关系API在流计算上的一些概念。

Dynamic Table

由于传统SQL和关系分析早期的设计主要是用于批处理,因为在关系运算、SQL处理方面与流计算是由一些差异的。下面我们分别从数据、输入形式、计算形式三个维度对比一下:

传统SQL分析 流处理
获取的是有界的数据集合 获取的无界的数据集
计算时候,可以获取完整的数据集 流的查询是无法获取所有数据,当流启动以后必须wait数据的到来
由于输入是固定的数据集,因此Batch查询可以输出固定的大小的结果,然后计算终止 由于输入的数据是无界的,因此一个流的查询仅仅只能做持续更新结果,计算永不截止

尽管存在这么多差异,使用关系查询SQL处理流并不是不可能的,先进的关系型数据库系统提供了一个特性称为Materialized Views。该Materialized View和常规的Virtual Views很相似,但是和常规的Virtual Views的区别在于Materialized Views会缓存相应SQL的查

你可能感兴趣的:(Flink实时计算,Table,API,SQL,Flink)