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

Flink CDC读取源表中的时间戳字段获取不到字段的数据啊 ?

Flink CDC读取源表中的时间戳字段获取不到字段的数据啊 都是空 源表时间戳字段设置的timestamp类型,cdc里读取的时候timestamp、bigint、string都获取不到数据(null)?

展开
收起
真的很搞笑 2023-12-04 08:09:25 36 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink CDC读取源表中的时间戳字段获取不到数据,可能有以下几种原因:

    1. 源表时间戳字段的格式与Flink CDC期望的格式不一致。Flink CDC默认期望的时间戳格式是yyyy-MM-dd HH:mm:ss.SSS,如果源表时间戳字段的格式不是这种格式,可能会导致读取不到数据。可以尝试将源表时间戳字段的格式转换为Flink CDC期望的格式。

    2. 源表时间戳字段的数据类型与Flink CDC期望的数据类型不一致。Flink CDC默认期望的时间戳数据类型是TIMESTAMP,如果源表时间戳字段的数据类型不是这种类型,可能会导致读取不到数据。可以尝试将源表时间戳字段的数据类型转换为Flink CDC期望的数据类型。

    3. Flink CDC的配置不正确。在Flink CDC的配置中,需要指定源表的时间戳字段和对应的数据类型。如果配置不正确,可能会导致读取不到数据。可以检查Flink CDC的配置是否正确。

    4. 源表中的时间戳字段没有值。如果源表中的时间戳字段没有值,那么在Flink CDC中读取时也会返回空值。可以检查源表中的时间戳字段是否有值。

    2023-12-04 14:08:36
    赞同 展开评论 打赏
  • 如果在Flink CDC中读取源表中的时间戳字段获取不到数据,可能的原因有多个。首先,需要确保数据源(如Oracle、MySQL等)中存在数据,并且Flink CDC能够正常访问这些数据。其次,Flink CDC时间戳读取的原理并不是通过遍历binlog来找到符合时间戳的数据开始读取,而是基于数据库的日志CDC(Change Data Capture)技术。因此,如果数据库中没有包含指定时间戳的数据,那么Flink CDC任务也无法获取到相应的数据。

    此外,还需要注意时区问题。例如,当使用 MySQL 作为数据源时,可能存在时区不一致的问题,导致时间戳字段显示为空。可以通过指定'debezium.database.serverTimezone'参数来调整时区设置。

    在确定以上因素都正常的情况下,如果仍然无法获取时间戳字段的数据,建议进一步检查Flink CDC的配置和日志,以确定具体的问题所在。

    2023-12-04 11:49:13
    赞同 展开评论 打赏

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

相关产品

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

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