请问大家,我按照flink-cdc-connectors readme 上面的datastream?

请问大家,我按照flink-cdc-connectors readme 上面的datastream API 例子读取postgresql 的一个table, 读出的数据debezium json里的before 都是null, after 是对的,不管是insert or update, before全是null, 请问哪里设置不对?我用的是version 2.4.1,谢谢?

展开
收起
真的很搞笑 2023-07-31 14:23:04 114 分享 版权
2 条回答
写回答
取消 提交回答
  • 如果在使用 Flink CDC Connectors 中的 DataStream API 读取 PostgreSQL 表时,无论是插入还是更新操作,Debezium JSON 中的 before 字段都是 null,这可能是由于以下原因导致的:

    1. 检查数据库配置:确保你正确配置了 Flink CDC Connectors 中的 PostgreSQL 连接参数,包括正确的主机名、端口号、数据库名、用户名和密码等。如果连接参数不正确,可能会导致读取到的数据中 before 字段为 null。

    2. 检查表定义:确认所读取的表是否具有主键或唯一索引。Debezium CDC Connector 需要基于主键或唯一索引来跟踪数据的变化并生成 beforeafter 数据。如果表没有定义主键或唯一索引,可能会导致 before 字段为 null。

    3. 检查 CDC 配置:确保正确配置了 Flink CDC Connectors 的 CDC(Change Data Capture)参数,包括将适当的解析器指定给 CDC Connector,并设置正确的 CDC 起始位置和事件处理配置。

    4. 检查 Debezium 版本:请确保你使用的 Debezium 版本与 Flink CDC Connectors 兼容。不同版本的 Debezium 可能会对 JSON 结构有所不同。

    5. 检查字段映射:检查你的 Flink CDC Connectors 配置是否正确映射了表中的字段。特别是检查是否正确指定了主键或唯一索引。

    如果以上步骤都没有解决问题,建议你提供更详细的信息,包括 Flink CDC Connectors 和 Debezium 的配置以及读取的表结构。这样我们可以更深入地分析和帮助你找到问题所在。

    2023-07-31 21:34:30
    赞同 展开评论
  • 原因是未设replica identity full,此回答整理自钉群“Flink CDC 社区”

    2023-07-31 14:37:16
    赞同 展开评论

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

还有其他疑问?
咨询AI助理