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

Flink CDC哪位专家知道,postgre-cdc update时,before为null?

Flink CDC哪位专家知道,postgre-cdc update时,before为null?image.png

展开
收起
真的很搞笑 2023-12-04 08:25:21 120 0
4 条回答
写回答
取消 提交回答
  • Apache SeaTunnel ,此回答整理自钉群“Flink CDC 社区”

    2023-12-05 09:23:53
    赞同 展开评论 打赏
  • 在Flink CDC中,当使用PostgreSQL作为源时,可能会遇到before字段为NULL的情况。

    这是因为在PostgreSQL的逻辑复制流中,对于UPDATE操作,默认情况下只会包含被更新的字段以及其新值(after)。而before字段将被设置为NULL,表示在逻辑复制流中没有包含之前的值。

    解决这个问题的一种方法是使用PostgreSQL的逻辑解码插件(logical decoding plugin)来捕获更详细的变更信息,包括旧值和新值。通过配置适当的插件,可以在逻辑复制流中包含"before"字段,并获取更新之前的数据。

    以下是一些可能有助于解决此问题的步骤:

    1. 确保PostgreSQL版本支持逻辑复制和逻辑解码功能。逻辑复制功能在PostgreSQL 9.4及更高版本中可用。

    2. 在PostgreSQL中启用逻辑解码插件。例如,可以使用pgoutput插件。请参考PostgreSQL文档了解如何启用和配置逻辑解码插件。

    3. 使用Flink CDC连接到PostgreSQL并配置适当的解码器。在Flink CDC的PostgreSQL Source配置中,可以指定逻辑解码插件的名称和相关参数。

    请注意,使用逻辑解码插件可能会增加一些额外的配置和管理工作,并且会产生更多的数据传输量。确保根据实际需求和环境选择适当的解码插件,并评估其对性能和资源消耗的影响。

    2023-12-04 20:36:30
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Flink CDC中,当使用PostgreSQL作为源并执行UPDATE操作时,无法在Flink CDC中,当使用PostgreSQL作为源并执行UPDATE操作时,无法获取到BEFORE数据的原因可能是由于PostgreSQL数据库对UPDATE操作的执行顺序不同于其他数据库。具体地说,PostgreSQL在执行UPDATE操作时,会先执行NEW数据的插入,再执行OLD数据的删除,而Flink CDC在获取BEFORE数据时是在DELETE操作之前获取的,因此无法获取到BEFORE数据。

    2023-12-04 13:45:57
    赞同 展开评论 打赏
  • 在Flink CDC中,当遇到postgre-cdc的update操作时,如果"before"字段为null,这可能是因为PostgreSQL表的REPLICA IDENTITY没有设置为FULL级别。REPLICA IDENTITY决定了如何生成和存储WAL(Write-Ahead Logging)日志记录。具体来说,PostgreSQL在执行UPDATE操作时,会先执行NEW数据的插入,再执行OLD数据的删除。而Flink CDC在获取BEFORE数据时是在DELETE操作之前获取的,因此无法获取到BEFORE数据。

    为了解决这个问题,您需要检查并设置Postgres表的REPLICA IDENTITY为FULL级别。您可以通过以下SQL命令来设置REPLICA IDENTITY为FULL级别:ALTER TABLE your_table_name REPLICA IDENTITY FULL; 请记得将your_table_name替换为您的实际表名。此外,确保您的wal日志方式设置为logical,以及solts的最大数量适当设置,如max_replication_slots = 20max_wal_senders = 20

    2023-12-04 08:52:25
    赞同 展开评论 打赏

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

相关产品

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

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