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

Flink CDC中这个怎么解决?我是在创建表之后,才开启的binlog,这样操作是不是不行?

Flink CDC中这个怎么解决?我是在创建表之后,才开启的binlog,这样操作是不是不行?
663c3645d4f75fcc8bb102b245d161fe.png
f730c4dcce8e74b3d669fe3b504ce259.png
5fabfc7c3e691c46e3997caed613e2ec.png
0429c51ec95957648e72e3c34daebe3b.png

展开
收起
十一0204 2023-07-26 08:04:42 68 0
3 条回答
写回答
取消 提交回答
  • 在 Flink CDC 中,如果您在创建表之后才开启 Binlog,可能无法捕获到之前的存量数据。这是因为 Binlog 只会记录在其启用之后发生的更改。因此,对于已经在表中存在的数据,它们的变化不会被记录到 Binlog 中。

    如果您需要同步存量数据,有几种解决方案可供考虑:

    1. 如果您可以接受重新处理存量数据,请执行以下步骤:

      • 创建一个新的 MongoDB Connector for Flink 作业。
      • 在作业启动之前,将源表数据导入到目标表中,以确保目标表与源表中的数据匹配。
      • 启动 MongoDB Connector for Flink 作业并进行增量数据同步。
    2. 如果您不能重新处理存量数据,并且仅需要从当前时间点开始进行增量数据同步,可以尝试以下方法:

      • 将源表的数据导出为一个文件(例如 CSV 或 JSON 格式),然后使用 Flink 的 FileSource 将该文件加载到 Flink 中。
      • 在 FileSource 后面添加相应的转换逻辑,以便将数据发送到目标系统。
    2023-07-31 23:11:02
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    果您在创建表之后才开启了 Binlog,那么您需要执行以下操作才能保证 Flink CDC 可以正确地读取到所有的 Binlog 数据:
    确认 Binlog 开启状态:首先需要确认 Binlog 已经正确地开启,并且数据库连接的用户拥有访问 Binlog 的权限。
    启动 Flink CDC:在 Binlog 开启之后,需要重新启动 Flink CDC 任务,以便让任务能够读取到最新的 Binlog 数据。
    处理历史数据:如果在开启 Binlog 之前已经有数据写入了数据库,那么这些数据是无法通过 Binlog 进行同步的。在这种情况下,可以使用数据迁移工具或者手动将历史数据导入到 Flink CDC 的目标数据源中。
    需要注意的是,如果在 Binlog 开启之前已经有数据写入了数据库,那么这些数据是无法通过

    2023-07-29 16:59:35
    赞同 展开评论 打赏
  • 意中人就是我呀!

    换个mysql试下,我感觉你本地mysql有问题,感觉不是一定,多测测是不是不同因素导致的不同结果。此回答整理至钉群“Flink CDC 社区”。"

    2023-07-26 12:04:33
    赞同 展开评论 打赏

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

相关产品

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

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