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

Flink CDC中mysql-cdc从时间戳启动,发现本地IDEA测试不行,什么原因?

Flink CDC中mysql-cdc从时间戳启动,发现本地IDEA测试不行,但是集群测试,是有数据出来,但是数据有问题呢。昨天插入了两条数据,时间戳设置为之前的,只有昨天插入的两条数据进来。今天测试了下,只有昨天插入的最后一条数据出来,是啥情况?我看binlog的失效时间是1个月的。

展开
收起
十一0204 2023-07-26 08:24:22 136 0
2 条回答
写回答
取消 提交回答
  • 在 Flink CDC 中,使用 MySQL-CDC 从一个时间戳启动(也称为指定起始时间戳)会从指定的时间戳开始读取数据变更。根据你的描述,可能有以下几个原因导致你遇到的问题:

    1. 数据库的 binlog 失效时间:你提到了 binlog 的失效时间(expire_logs_days)设置为一个月。请确保你所指定的起始时间戳在 binlog 的保留时间范围内,否则可能无法正确读取数据。检查 binlog 的相关配置以确保有效期足够长。

    2. CDC 捕获过程中的延迟:Flink CDC 是实时捕获和处理数据库变更的,但仍然会有一定的延迟。当你从一个时间戳启动时,Flink CDC 需要将之前的变更逐步应用到状态中,然后输出给下游任务。这个过程可能需要一些时间,因此你可能会看到数据出现延迟。

    3. 数据库连接和网络问题:在本地 IDE 测试时,可能会受到数据库连接、网络或本地环境等因素的影响。请确保本地测试环境与集群环境一致,并且数据库连接正常,网络通畅。

    如果你的问题仍然存在,请尝试以下调试和排查方法:

    • 检查 Flink CDC 的日志以查看是否有任何错误或警告信息。
    • 验证数据库的 binlog 配置是否正确,并确保 binlog 保留时间足够长。
    • 检查本地 IDE 的连接配置、网络设置和数据库连接等是否正确。

    如果问题仍然存在,建议向 Flink 社区提交问题以获取更详细的帮助和支持。

    2023-07-31 22:36:24
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在Flink CDC中使用mysql-cdc作为CDC源,从指定时间戳启动可以通过设置scan.startup.timestamp-millis参数来实现。例如:
    java
    Copy
    JdbcTableSource source = JdbcTableSource.builder()
    .drivername("com.mysql.jdbc.Driver")
    .url("jdbc:mysql://localhost:3306/test")
    .table("my_table")
    .username("root")
    .password("root")
    .lookupOptions(lookupOptions().setCacheMaxSize(1000).setCacheExpireMs(10 60 1000L))
    .debeziumProperties(new Properties() {{
    setProperty("scan.startup.mode", "timestamp");
    setProperty("scan.startup.timestamp-millis", "1629222000000");
    setProperty("database.history", MemoryDatabaseHistory.class.getName());
    }})
    .build();
    上述示例中,通过设置scan.startup.mode为timestamp,并且设置scan.startup.timestamp-millis为指定的时间戳来从指定时间戳启动MySQL CDC。这里假设指定的时间戳是1629222000000(即2021年8月18日10点),您需要根据实际情况进行调整。
    关于本地IDEA测试不行的原因,可能是因为在本地测试中,Flink集群的启动时间和您设置的启动时间戳之间存在较大的时间差,导致无法从指定的时间戳开始捕获变化数据。为了避免这种情况,您可以尝试调整启动时间戳的值,或者使用当前时间作为启动时间戳,

    2023-07-29 15:41:31
    赞同 展开评论 打赏

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

相关产品

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

    更多
    用AI 高效测试移动应用 立即下载
    移动互联网测试到质量的转变 立即下载
    给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载