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

Flink CDC现在就是用的多张表一个source对应一个ds,不知道会不会有所改善?

Flink CDC现在就是用的多张表一个source对应一个ds,然后sink到不同步的表,但是多个表用一个source,看日志里面会同时去查询source里所有表的日志的scn,这个查询很耗oracle的PGA提示,想不同表拆分成不同source,不知道会不会有所改善?image.png

展开
收起
真的很搞笑 2024-03-06 00:09:23 61 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在使用Flink CDC(Change Data Capture)时,如果多个表共享一个source,那么CDC任务会同时查询所有相关表的日志信息,包括每个表的日志序列号(SCN)。这确实可能会对数据库的性能产生影响,尤其是当涉及到大量的表或数据量较大时。

    如果你发现查询所有表的日志信息对Oracle数据库的PGA(Private Global Area)产生了较大的压力,并且影响了系统性能,你可以考虑将不同的表拆分成不同的source。这样做的好处是:

    1. 减少竞争:每个表有自己的source,可以减少在获取日志信息时的竞争,因为每个source独立查询和处理日志。

    2. 并行处理:不同的source可以并行处理,这样可以更好地利用Flink的并行处理能力,提高整体的处理效率。

    3. 降低负载:拆分成不同的source可以将查询负载分散到不同的表上,减轻单个表的查询压力,有助于提高数据库的性能。

    4. 更灵活的管理:每个表有自己的source,可以根据需要对每个source进行独立的配置和管理,更加灵活。

    然而,拆分成不同的source也会带来一些额外的管理复杂性,例如需要为每个source单独配置和管理连接信息、捕获参数等。因此,在决定是否拆分之前,你需要权衡这些因素。

    如果你决定拆分成不同的source,可以按照以下步骤进行操作:

    1. 创建多个source:根据需要创建多个source,每个source对应一个表。

    2. 配置连接信息:为每个source配置相应的连接信息,包括数据库地址、用户名、密码等。

    3. 设置捕获参数:为每个source设置适当的捕获参数,例如捕获模式、初始化模式等。

    4. 创建对应的sink:为每个source创建相应的sink,用于将数据写入目标表。

    5. 调整并行度:根据系统的资源和需求,调整每个source的并行度,以实现最佳的性能。

    6. 监控和调优:启动CDC任务后,密切监控系统的性能和日志信息,根据实际情况进行调优。

    总之,拆分成不同的source可能有助于改善性能和降低数据库负载,但也需要仔细考虑管理的复杂性。在实施之前,建议先进行充分的测试和评估,以确保拆分后的架构能够满足系统的需求。

    2024-03-08 22:35:25
    赞同 1 展开评论 打赏

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

相关产品

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

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