大数据智能体工作台 DataBuddy PostgreSQL 数据源

PostgreSQL 是功能强大的开源对象关系型数据库系统。DataBuddy 数据接入支持将 PostgreSQL 作为来源端,覆盖离线同步、实时整库同步与分库分表同步等场景。这里说明其连接配置、能力支持范围、前提条件与常。

相关产品
大数据智能体工作台 DataBuddy 产品页,含版本规格、价格与购买入口。

二、支持的版本

类型 支持版本
自建 PostgreSQL 9.6 / 10.x / 11.x / 12.x / 13.x / 14.x / 15.x / 16.x
腾讯云 PostgreSQL 11.x / 12.x / 13.x / 14.x / 15.x / 16.x / 17.x / 18.x

三、读取能力

能力 支持情况 说明
离线同步(读 / 写) ✓ / – 支持作为离线同步任务的源端读取数据;DataBuddy 数据源仅支持接入读取,不支持写入
实时同步(读 / 写) ✓ / – 支持作为实时同步任务的源端读取整库数据变更;DataBuddy 数据源仅支持接入读取,不支持写入
分库分表同步(读 / 写) ✓ / – 支持以分库分表方式读取多个分表数据;DataBuddy 数据源仅支持接入读取,不支持写入

完整数据源能力对照参见 支持的数据源与读取能力。

五、实时同步限制

限制项 说明
逻辑复制版本要求 PostgreSQL 10+ 才支持原生逻辑复制
wal_level 必须设置为 logical
复制槽 需要创建复制槽(Replication Slot)
无主键表 需设置 REPLICA IDENTITY FULL
发布(Publication) 需要创建发布来指定同步的表

六、离线同步限制

限制项 说明
视图 支持读取视图
切割键 仅支持整型字段
特殊字符表名 表名 / 字段名不支持数字开头或包含大小写字母、中划线

七、支持的字段类型

完整字段类型请参见 PostgreSQL 产品文档。

字段类型 离线读 实时读
SMALLINT / SMALLSERIAL / INTEGER / SERIAL / BIGINT / BIGSERIAL ✅ ✅
REAL / DOUBLE PRECISION / NUMERIC / DECIMAL / MONEY ✅ ✅
BOOLEAN ✅ ✅
CHAR / VARCHAR / TEXT / UUID ✅ ✅
JSON / JSONB / ARRAY ✅ ✅
DATE / TIME / TIMETZ / TIMESTAMP / TIMESTAMPTZ ✅ ✅
INTERVAL ✅ ✅
BYTEA / BIT / BIT VARYING ✅ ✅
CIDR / INET / MACADDR ✅ ✅
POINT / LINE / LSEG / BOX / PATH / POLYGON / CIRCLE ✅ ✅

八、字段类型映射(离线同步)

同步时源端字段类型会转换为 DataBuddy 内部类型(同步链路中的中间类型)。配置任务前请重点核对「备注」列标注的类型,避免精度丢失或语义变化。

源端类型 DataBuddy 内部类型 备注
SMALLINT / SMALLSERIAL / INTEGER / SERIAL / BIGINT / BIGSERIAL Long –
REAL / DOUBLE PRECISION Double 遵循 IEEE 754 浮点精度
NUMERIC / DECIMAL Double 转为双精度浮点数,超出精度范围会丢失小数精度;对精度敏感的场景建议在目标端改用 Decimal 或字符串类型
MONEY String 按文本读取,保留货币符号与千分位
BOOLEAN Boolean –
BIT Boolean 读取为 true / false
BIT VARYING String 按位串文本读取
CHAR / VARCHAR / TEXT String –
UUID String –
JSON / JSONB String 按文本读取,不做结构化解析
ARRAY String 按 JSON 文本序列化读取
INTERVAL String 按文本读取,不落数值
CIDR / INET / MACADDR String 按文本读取,不解析网络地址语义
POINT / LINE / LSEG / BOX / PATH / POLYGON / CIRCLE String 按文本读取,不解析几何语义
DATE Date 精确到日
TIME / TIMETZ / TIMESTAMP / TIMESTAMPTZ Date 均按日期时间读取,不区分时区语义
BYTEA Bytes 不做内容解析
上表未列出的其他类型 – 任务报错并提示不支持的字段类型

九、字段类型映射(实时同步)

实时同步(整库多表)由 CDC 连接器解析源端类型并写入 TCLake。下表为自动建表时目标表实际使用的字段类型 ,配置任务前请重点核对「备注」列标注的类型。

源端类型 TCLake 目标类型 备注
SMALLINT / SMALLSERIAL / INTEGER / SERIAL INTEGER –
BIGINT / BIGSERIAL LONG –
BOOLEAN BOOLEAN –
NUMERIC / DECIMAL(精度 ≤ 38) DECIMAL 精度与标度保留
NUMERIC / DECIMAL(精度 > 38) STRING 精度超出 38 降级为字符串
REAL FLOAT 与离线落 Double 不同
DOUBLE PRECISION DOUBLE –
DATE DATE –
TIME STRING 不落时间类型
TIMESTAMP TIMESTAMP 不带时区
TIMESTAMP WITH TIME ZONE TIMESTAMPTZ 带时区语义,与 TIMESTAMP 落点不同
INTERVAL LONG –
CHAR / VARCHAR / TEXT STRING –
JSON / JSONB / UUID / XML STRING 按文本读取,不解析结构
BYTEA STRING 二进制按字符串承载
BIT / BIT VARYING STRING 按位串文本读取
CIDR / INET / MACADDR / MONEY / PG_LSN / TSQUERY / TSVECTOR / TXID_SNAPSHOT STRING 按文本读取,不解析专有语义
POINT / LINE / LSEG / BOX / PATH / POLYGON / CIRCLE STRING 按文本读取,不解析几何语义

注意:说明:

十一、DML

操作 是否支持
INSERT / DELETE / UPDATE ✅

十二、DDL

操作 是否支持
新增表 / 新增列 / 删除列 / 修改列类型 ✅
删除表 / 清空表 / 重命名表(RENAME TABLE) ❌

PostgreSQL 逻辑复制对 DDL 变更的支持有限,Schema 变更后可能需要重新配置同步任务与发布。

十四、1. 配置账号权限

离线同步 :

CREATE USER wedata_user WITH PASSWORD 'your_password';GRANT CONNECT ON DATABASE your_database TO wedata_user;GRANT USAGE ON SCHEMA public TO wedata_user;GRANT SELECT ON ALL TABLES IN SCHEMA public TO wedata_user;

实时同步 :

CREATE USER wedata_cdc_user WITH REPLICATION PASSWORD 'your_password';GRANT CONNECT ON DATABASE your_database TO wedata_cdc_user;GRANT USAGE ON SCHEMA public TO wedata_cdc_user;GRANT SELECT ON ALL TABLES IN SCHEMA public TO wedata_cdc_user;

十五、2. 配置 WAL 级别(仅实时同步)

SHOW wal_level;

腾讯云 PostgreSQL 在控制台「参数设置」中将 wal_level 设置为 logical。自建 PostgreSQL 修改 postgresql.conf:

wal_level = logicalmax_replication_slots = 10max_wal_senders = 10

修改后需要重启数据库才能生效。

十六、3. 配置 pg_hba.conf(仅实时同步)

# TYPE DATABASE USER ADDRESS METHODhost replication wedata_cdc_user 10.0.0.0/8 md5

十七、4. 创建发布(仅实时同步)

CREATE PUBLICATION wedata_pub FOR TABLE table1, table2;– 或:CREATE PUBLICATION wedata_pub FOR ALL TABLES;

十八、5. 设置 REPLICA IDENTITY(无主键表)

ALTER TABLE your_table REPLICA IDENTITY FULL;

20、操作步骤

1. 登录 DataBuddy 控制台。

2. 在顶部切换到目标地域和 Workspace。

3. 进入 数据集成 > 数据源管理 (或 平台管理 > 数据源管理 )。

4. 点击 添加数据源 ,选择 PostgreSQL 。

5. 填写连接配置与认证信息,详见 参数说明。

6. 点击 连通性测试 (参见 数据源连通性测试)。

7. 测试通过后点击 保存 或 保存 & 创建任务 。

21、参数说明

参数 说明 是否必填
数据源名称 数据源在工作空间内的唯一标识 是
JDBC URL jdbc:postgresql://host:port/database 是
用户名 数据库连接账号 是
密码 数据库连接密码(支持 SSM 凭证托管) 是
数据源版本 12 / 13 / 14 / 15 / 16 是

23、实时整库

配置项 说明
来源表范围 指定表 (仅同步选中的表,新增表需重启)/ 正则匹配 (指定库名 + 表名正则,符合规则的新增表自动接入)
读取模式 全量 + 增量 / 仅增量

24、离线单表

参数 说明
库 / Schema / 表 必填,Schema 默认 public;表支持范围 table_[0-99]
切割键 仅支持整型字段;建议主键或索引列
筛选条件 标准 WHERE 语法

详细任务配置参见 表到表同步 与 实时整库多表任务配置。

25、最佳实践

·账号权限最小化 :使用专用账号,仅授必要权限。

·WAL 日志保留 :ALTER SYSTEM SET wal_keep_size = '1GB';

·切割键选择 :主键或索引列。

·网络打通 :优先使用内网连接。

27、Q:实时同步报错 wal_level 不支持?

A:未将 wal_level 设置为 logical。

ALTER SYSTEM SET wal_level = 'logical';– 修改后需重启数据库

28、Q:报错无法创建复制槽?

A:max_replication_slots 太小:

ALTER SYSTEM SET max_replication_slots = 20;

29、Q:无主键表 UPDATE / DELETE 无法正确同步?

A:未设置 REPLICA IDENTITY:

ALTER TABLE your_table REPLICA IDENTITY FULL;

30、Q:连接被拒绝?

A:pg_hba.conf 未允许 DataBuddy 网段连接。在文件中添加:

host all wedata_user 10.0.0.0/8 md5host replication wedata_cdc_user 10.0.0.0/8 md5

31、Q:包含特殊字符的表名无法同步?

A:不支持表名、字段名以数字开头或包含大小写字母、中划线

32、相关文档

·添加数据源连接

·数据源连通性测试

·支持的数据源与读取能力

·实时整库多表任务配置

赞 (0)
上一篇 4天前
下一篇 4天前