反馈已提交

网络繁忙

PostgreSQL-pgoutput读取方式

  • 文档创建者:Wendy123456
  • 历史版本:3
  • 最近更新:Wendy123456 于 2025-09-03
  • 1. 概述

    1.1 版本

    FineDataLink 版本
    功能变动
    4.2.10.1PostgreSQL 作为数据开发-实时任务、实时管道任务的数据来源时,适配 pgoutput 逻辑解码插件

    1.2 功能简介

    本文介绍 PostgreSQL 作为数据开发-实时任务、实时管道任务的数据来源且读取方式选择 pgoutput 时需要做的一些配置。

    21.png

    1.3 wal2json和pgoutput的区别

    wal2jaon 读取方式需要额外安装插件。

    2. 操作步骤

    本文以 PostgreSQL 安装在 Linux 系统中操作为例;若 PostgreSQL 安装在 Windows 系统中,可以在 【Windows环境】PostgreSQL环境准备 文档中找到与本文步骤相同的操作,进行参考。

    2.1 确认当前使用的数据库版本

    PostgreSQL 10 及以上版本& FineDataLink 为 4.2.10.1 及之后版本时,适配 pgoutput 逻辑解码插件(该插件内置在 PostgreSQL 中,无需用户手动安装)。

    2.2 修改REPLICA IDENTITY

    该属性决定了当数据发生UPDATE,DELETE时,日志记录的字段。

    • DEFAULT - 更新和删除将包含primary key列的先前值

    • NOTHING - 更新和删除将不包含任何先前值

    • FULL - 更新和删除将包含所有列的先前值

    • INDEX index name - 更新和删除事件将包含名为 index name 的索引定义中包含的列的先前值。

    修改代码如下:

    注:所有需要进行实时同步的表,都应该做此操作。

    alter table schema.tablename REPLICA IDENTITY FULL;

    1)使用默认的 postgres 账号登录名为 fdl 的数据库:-U指定用户,-d指定数据库,-h指定服务器,-p指定端口。

    psql -U postgres -d fdl -h 192.168.101.119 -p 5432

    输入密码后,登陆数据库。

    1756867356688513.png

    2)例如将模式为 public 的表「产品名称维度」修改设置,则输入如下语句:

    1756867390491956.png

    2.3 用户权限确认

    以上都是用默认的用户 Postgres 进行,若用其他用户进行配置,则需要该用户为 PostgreSQL replication 角色、PostgreSQL login 角色,并且有需要同步的表的 select  权限。

    1)创建一个具有用户,该用户为 PostgreSQL replication 角色、PostgreSQL login 角色。

    注:wendy 为用户名,123456 为密码,用户自定义即可。

    CREATE USER wendy WITH REPLICATION LOGIN PASSWORD '123456';

    1756867532165440.png

    2)在指定模式中的所有表上执行 select 操作的权限赋给用户:

    注:schemaname 为模式名称,username为用户名称,用户根据需要修改。

    GRANT SELECT ON ALL TABLES IN SCHEMA schemaname TO username;

    1756867568482801.png

    3)赋予用户 replication 和 login 权限命令。

    进入 PostgreSQL 安装目录下的 data 文件夹,进入 data 文件夹中,找到 postgresql.conf、pg_hba.conf,对这两个文件进行修改。

    • 修改 PostgreSQL 复制槽设置。

    本文示例中,postgresql.conf 文件在/var/lib/pgsql/12/data目录下,使用vi /var/lib/pgsql/12/data/postgresql.conf(用户根据实际情况修改 postgresql.conf 所在路径)语句编辑该文件,在文件末尾追加以下配置:

    注:或者找到下面代码中的设置项,取消注释,修改对应的值。

    wal_level = logical
    max_wal_senders = 10
    max_replication_slots = 10
    • 设置用户 replication 权限。

    本文示例中,pg_hba.conf 文件在/var/lib/pgsql/12/data目录下,使用vi /var/lib/pgsql/12/data/pg_hba.conf(用户根据实际情况修改 pg_hba.conf 所在路径)语句编辑该文件,把下图中红圈中的两行前边的 # 去掉:

    1756867686764200.png

    2.4 后续步骤

    在进行实时同步前,在 FineDataLink 中配置好需要同步的源端和目标端数据库数据连接,以便在同步任务配置过程中,通过选择数据源名称来控制同步任务,详情参见:配置数据连接

    然后设计任务即可,详情参见:配置数据管道任务实时任务概述




    附件列表


    主题: 数据管道
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持