Flink CDC中我在使用postgrest cdc的时候,当数据发生更新或者删除的时候,到cdc的数据timestamp的字段全部变为了空,非timestamp正常,这是因为什么导致的?read和insert是正常的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
当使用 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 数据的生成和内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。