开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC里如果接收到的ddl 没有在source指定的表中异常的设计逻辑是有什么考虑么?

Flink CDC里SchemaManager的applySchemaChange方法如果接收到的ddl 没有在source指定的表中,会抛异常,这一块的设计逻辑是有什么考虑么?例如指定10张表,但数据库其它表是也会产生schema变更的,这种情况就会报错了是为什么?72bd844884d126d1c4715c897346cf82.png

展开
收起
小小鹿鹿鹿 2024-01-18 00:27:59 23 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink CDC 的 SchemaManager 的 applySchemaChange 方法设计成只处理在 source 指定的表中的 DDL 变更,主要是出于以下几个考虑:

    1. 性能优化:如果处理所有表的 DDL 变更,会消耗大量的资源和时间。通过限制只处理指定表中的变更,可以降低资源消耗,提高系统性能。

    2. 数据一致性:如果处理所有表的 DDL 变更,可能会导致数据的不一致。例如,如果在处理过程中,某个表的数据发生了变更,而这个变更没有被正确处理,那么在后续的处理过程中,这个表的数据可能会出现错误。通过限制只处理指定表中的变更,可以确保数据的一致性。

    3. 容错性:如果处理所有表的 DDL 变更,可能会导致某些表的 DDL 变更无法正确处理,从而导致整个系统的故障。通过限制只处理指定表中的变更,可以提高系统的容错性。

    4. 可维护性:如果处理所有表的 DDL 变更,可能会导致代码变得复杂和难以维护。通过限制只处理指定表中的变更,可以提高代码的可维护性。

    因此,Flink CDC 的 SchemaManager 的 applySchemaChange 方法只处理在 source 指定的表中的 DDL 变更,是为了实现更好的性能、数据一致性、容错性和可维护性。

    2024-01-19 15:38:58
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载