Flink CDC中我在使用postgrest cdc时当数据发生更新或者删除的时字段全部变为了空?

Flink CDC中我在使用postgrest cdc的时候,当数据发生更新或者删除的时候,到cdc的数据timestamp的字段全部变为了空,非timestamp正常,这是因为什么导致的?read和insert是正常的。

展开
收起
十一0204 2023-08-09 08:36:10 177 分享 版权
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    当使用 Postgres CDC(Change Data Capture)时,如果在数据更新或删除时发现 CDC 数据中的 timestamp 字段变为空,可能有以下几个可能的原因:

    Postgres CDC 配置问题:请确保你正确配置了 Postgres CDC,包括启用了正确的日志输出(如 WAL 日志),并配置了正确的表和列作为 CDC 监听的目标。

    数据库事务隔离级别:如果你的数据库事务隔离级别设置为“读已提交(Read Committed)”或更高级别,可能会导致 CDC 数据中的 timestamp 字段为空。在这种隔离级别下,CDC 无法读取事务未提交的数据,因此无法获取到更新或删除前的 timestamp 值。

    CDC 数据捕获的时机:CDC 通常在事务提交后捕获数据变更。如果数据更新或删除之后 CDC 数据捕获的时机较晚,可能导致 timestamp 字段为空。这可能是由于 CDC 处理的延迟或异步机制引起的。

    数据库配置或限制:某些数据库配置或限制可能会影响 CDC 数据中 timestamp 字段的值。例如,数据库的配置参数、触发器或其他数据库对象的设置可能会影响 CDC 数据的生成和内容。

    2023-08-13 17:09:31
    赞同 展开评论

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

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