当前位置: 首页 > 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.mrgr.cn/news/2717.html

相关文章:

  • 华为od(D卷) 用连续自然数之和来表达整数
  • python 速成指南
  • RV1126交叉编译OPENCV的各种坑
  • 移动端页面出现闪屏
  • (八)Flink Join 连接
  • 五、SPA 单页面、MPA多页面的理解?它们的优缺点分别是什么?
  • Vue50 todolist自定义事件版本
  • 如何用ChatGPT 4.0创作高质量的小红书笔记?
  • 秋招力扣Hot100刷题总结——动态规划
  • HanLP分词的使用与注意事项
  • JsSIP Demo
  • 【自动驾驶】控制算法(三)轮胎侧偏与车辆动力学模型
  • MyBatis系列
  • 【adb】Mac配置adb环境踩坑记录
  • java版知识付费saas租户平台:剖析现代知识付费平台的功能架构与运营逻辑
  • Ubuntu下通过Docker部署Synapse服务器技术博客
  • 排序(归并排序,非比较排序)
  • Java面试篇(多线程相关专题)
  • 六、什么是SEO优化(搜索引擎优化)?SPA单页面应用如何实现SEO优化?
  • RCE编码绕过--php://filter妙用