Flink Table/SQL API 规划 —— Dynamic Table
动态表的概念是社区很早就提出的但并没有全部实现下文中所有介绍都是基于已有规划和proposal给出的,可能与之后实现存在出入仅供参考 概念 动态表直观上看是一个类似于数据库中的Materialized View概念。动态表随着时间改变;类似静态的batch table一样可以用标准SQL进行查询然后一个新的动态表;可以和流无损地互相转换(对偶的)。对现有的API最大的改进关键在表的内容随着时间改变,而现在的状态只是append。当前的streaming table可以认为是一种动态表,append模式的动态表。 流到 Dynamic Table 流被转换成Table时决定选择哪种模式是依据表的schema是否定义primary key。 Append模式: 如果表的schema没有包括key的定义那转换成表时采用append模式。把流中每条新来的record当做新的row append到表中。一旦数据加到表中就不能再被更新和删除(指当前表中,不考虑转换成新表)。 Replace模式: 相对应,如果定义了key,那么对于流中的每条记录如果key不在表中就insert否则就update。 ...