You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 吴志宇 <na...@gmail.com> on 2021/08/16 03:43:55 UTC

关于 Flink SQL 上的 State Schema Evolution

Hi 社区的各位:

来信之前做了一些测试,当前 Flink 目前不能保证一个修改过的 SQL 能够从之前的 checkpoint / savepoint 进行恢复。

目前我们遇到的场景是用户会要想在原有的 SQL 上加聚合指标。在 1.12.2 下如果 Flink SQL
新增一个聚合指标,org.apache.flink.table.runtime.typeutils.RowDataSerializer.RowDataSerializerSnapshot#resolveSchemaCompatibility
会返回 INCOMPATIBLE,然后抛出

目前了解下来字节做了一些相关工作,让 Flink SQL 在增加聚合指标后能够从 checkpoint 恢复。另外,在之前的邮件列表里也有过相关的讨论:

Restarting a changed query from a savepoint is currently not supported.

In general this is a very difficult problem as new queries might result in
> completely different execution plans.

The special case of adding and removing aggregates is easier to solve, but
> the schema of the stored state changes and we would need to analyze the
> previous and current query and generate compatible serializers.

So far we did not explore this rabbit hole.

 Re: Schema Evolution on Dynamic Schema
> <https://lists.apache.org/thread.html/4e8e45a9b6d2ed182ab958ade0387b69911f9fd9a711e49871335b37%40%3Cuser.flink.apache.org%3E>


请问一下社区对于这个问题的态度是什么呢?会考虑后续的支持吗?

烦劳各位相告,谢谢!