Hi,
是的,目前来说会 block 住。
flush + apply schema change 一般来说不会持续太长时间,
且 schema 变更一般来说是低频事件,即使 block 也不会有太大性能影响。
Best,
Jiabao
> 2023年12月28日 12:57,casel.chen 写道:
>
>
>
>
> 感谢解惑!
> 还有一个问题:如果一个 pipeline 涉及多张表数据同步,而只有一个表出现 schema 变更的话,其他表的数据处理也会 block 住吗?
>
>
>
>
>
>
>
>
> 在 2023-12-28
感谢解惑!
还有一个问题:如果一个 pipeline 涉及多张表数据同步,而只有一个表出现 schema 变更的话,其他表的数据处理也会 block 住吗?
在 2023-12-28 01:16:40,"Jiabao Sun" 写道:
>Hi,
>
>> 为什么最后output.collect(new StreamRecord<>(schemaChangeEvent));
>> 还要发送一次SchemaChangeEvent呢?
>
>Sink 也会收到 SchemaChangeEvent,因为 Sink 可能需要根据 Schema 变更的情况来调整
Hi,
> 为什么最后output.collect(new StreamRecord<>(schemaChangeEvent));
> 还要发送一次SchemaChangeEvent呢?
Sink 也会收到 SchemaChangeEvent,因为 Sink 可能需要根据 Schema 变更的情况来调整 serializer 或
writer,参考 DorisEventSerializer
> 最后一行requestReleaseUpstream()执行被block的原因是什么?是如何hold upstream然后再release
> upstream的呢?
被 block
看了infoq介绍flink cdc 3.0文章
https://xie.infoq.cn/article/a80608df71c5291186153600b,我对其中schema.
evolution设计原理想不明白,框架是如何做到schema change顺序性的。文章介绍得并不详细。
从mysql binlog产生changeEvent来看,所有的变更都是时间线性的,例如s1, d1, d2, s2, d3, d4, d5, s3, d6
其中d代表数据变更,s代表schema变更
这意味着d1,d2使用的是s1 schema,而d3~d5用的是s2