本文为您介绍修改SQL除Query、Source和Sink之外的其他限制。
- 当前作业的Flink版本和产生Checkpoint或Savepoint对应作业的Flink版本要求相同,不同的Flink版本当前不支持状态兼容性检查。
- 当前作业的依赖和产生Checkpoint或Savepoint对应作业的依赖要求能兼容。当前系统无法识别自定义Connector、自定义函数依赖的状态的兼容性变化,需要您自己保证。
- 当前只支持单个的修改,包括只修改会影响状态计算的Where条件、只修改统计指标(Aggregate Function)、只修改Sink。
-- 原始SQL。 create table MyTable ( a int, b bigint, c varchar ); create table MySink ( a int, b bigint, c varchar ) with ( 'connector' = 'print' ); insert into MySink select a, sum(b), max(c) from MyTable group by a; -- 修改Sink表:MySink -> MySink2,和修改统计函数:max(c) -> min(c),该修改属于无法判断的修改。 create table MySink2 ( a int, b bigint, c varchar ) with ( 'connector' = 'print' ); insert into MySink2 select a, sum(b), min(c) from MyTable group by a; -- 添加Where条件:a > 10,和修改统计函数:max(c) -> min(c),该修改属于无法判断的修改。 insert into MySink select a, sum(b), min(c) from ( select * from MyTable where a > 10 ) group by a;
- 不支持新增全新状态的Query ,当前修改属于不兼容修改。
-- 原始SQL。 create table MyTable ( a int, b bigint, c varchar ); create table MySink ( a int, b bigint, c varchar ) with ( 'connector' = 'print' ); insert into MySink select a, b, c from MyTable; -- 新增group aggregate query,当前修改属于不兼容修改。 insert into MySink select a, sum(b), min(c) from MyTable group by a;