跳到主要内容

PostgreSQL

必要条件

必要条件说明
账号权限分配的账号请保证有对information_schema表的查询权限以及相关映射库表的写入权限

建表和操作权限,例:GRANT ALL privileges on schema public TO username;
需要创建Database,请授权DB创建权限,例:ALTER USER username CREATEDB;
需要创建Schema,请授权Schema创建权限,例:GRANT CREATE ON database dbname TO username;

使用限制与注意点

说明
9.4 前后版本 keyConflictStrategy=REPLACE 的实现不同9.4 以后的版本通过SQL on conflict do update 语法完成 REPLACE 操作,9.4以前的版本会反查对端是否存在对应的记录从而决定采用 INSERT 还是 UPDATE ,对对端数据库会有一些额外的查询请求

常用对端任务参数

参数名称说明
keyConflictStrategy增量对端写入遇到主键冲突策略,IGNORE 直接忽略(默认),REPLACE 新数据替换数据库中数据, EXCEPTION 直接报错停止
dstWholeReplace写入的数据整行替换。根据 keyConflictStrategy 参数系统自动决定使用 insert conflict do updateUPDATE
minPoolSize数据源最小连接池大小
maxPoolSize数据源最大连接池大小。为避免对端写入时连接池占用过多,可以调小该值

高级功能

Copy高性能写入

从 2.2.5.0版本开始,CloudCanal写入 PostgreSQL 或 Greenplum 对端支持启用COPY模式的高性能写入方式。此模式在增量阶段性能比以往基于JDBC PreparedStatement Batch 写入方式会有数量级提升。

使用限制

  • 只适用于有主键的表的迁移和同步

优势

  • 高性能的增量写入
  • 冲突数据写入时不会因违反主键约束冲突而导致性能劣化

开启方式

步骤如下:

  • 创建任务过程中第二步关闭选项“自动启动”
  • 创建完任务后在任务详情页选择 功能列表->参数修改
  • 在目标端数据源配置设置参数: writeStrategy=copy即可开启copy写入模式
  • 重启任务即可生效

image.png

参考资料

链路创建示例