当前位置: 首页 > news >正文

datax关于postsql数据增量迁移的问题

看官方文档是不支持的

数据源及同步方案_大数据开发治理平台 DataWorks(DataWorks)-阿里云帮助中心 (aliyun.com)

看了下源码有个postsqlwriter 看了下也就拼接sql

PostgresqlWriter中的不允许更新先注释了 让他过去先

然后看到 WriterUtil中的对应方法

getWriteTemplate

确实只有对应mysql的方法

在下面加个postgres的

else if(forceUseUpdate ||((dataBaseType == DataBaseType.PostgreSQL ) && writeMode.trim().toLowerCase().startsWith("update"))) {writeDataSqlTemplate = new StringBuilder().append("INSERT INTO %s (").append(StringUtils.join(columnHolders, ",")).append(") VALUES(").append(StringUtils.join(valueHolders, ",")).append(")").append(onDuplicateKeyUpdateStringPostgres(columnHolders,writeMode.replace("update#",""))).toString();
}

 其中调用方法

public static String onDuplicateKeyUpdateStringPostgres(List<String> columnHolders,String pk){if (columnHolders == null || columnHolders.size() < 1) {return "";}StringBuilder sb = new StringBuilder();sb.append(" ON CONFLICT ("+pk+") DO UPDATE SET ");boolean first = true;for(String column:columnHolders){if(column.equalsIgnoreCase(pk)){continue;}if(!first){sb.append(",");}else{first = false;}sb.append(column);sb.append("=EXCLUDED.");sb.append(column);}return sb.toString();}

然后配置文件中带上id

对应刚刚改的代码中的

http://www.lryc.cn/news/429186.html

相关文章:

  • 【Go】实现字符切片零拷贝开销转为字符串
  • [sqlserver][sql]sqlserver查询执行过的历史sql
  • python中n次方怎么表示
  • Java数组怎么转List,Stream的基本方法使用教程
  • 2024-07-12 - 基于 sealos 部署高可用 K8S 管理系统
  • Ps:首选项 - 单位与标尺
  • DiskDigger(文件恢复工具) v2.0.3 中文授权版
  • C/C++逆向:x96dbg(x64dbg/x86dbg)的使用
  • 超声波清洗机是智商税吗?专业博主分享四大必买超声波清洗机款式
  • TIM输出比较
  • JNPF 5.0升级钜惠,感恩回馈永远在路上
  • 三维平面电磁铁、交流电磁铁、显微镜磁场北京大学方案
  • awk引号转义问题
  • C语言典型例题46
  • 【目标检测】AGMF-Net:遥感目标检测的无注意力全局多尺度融合网络
  • 2007-2022年上市公司资源节约数据
  • onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】
  • VAuditDemo安装漏洞
  • 算法学习-2024.8.16
  • ansible环境搭建
  • 在线陪玩App小程序源码开发:技术挑战与解决方案
  • iOS profiles文件过期如何更新
  • C/C++|C++标准库 string 流之std::ostringstream 和 std::istringstream 流
  • Java-Redis
  • requests快速入门
  • 企业高性能web服务器——Nginx
  • FreeSWITCH Java ESL Client Demo
  • 手摸手系列之Linux下根据自己的jdk包构建docker镜像
  • tomcat相关
  • 20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动