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

kettle插件-高性能插入更新插件Upsert

场景:假如T日需要将a表中T-1日的数据同步到b表。由于某种业务需求a表中已经同步到b表中的数据发生了变化需要重新同步,这个时候就会用到插入更新插件,也就是

说a表中数据重新同步b表,若b表中存在此数据(根据唯一id)则执行更新操作,否则执行插入操作。

1、软硬件环境

本次教程基于本机docker版mysql 8.x数据库进行测试,如下图所示:

电脑是基于本人mac笔记本,配置如下:

 2、生成数据

使用表输出组件往t1(id,name,createtime)表中插入100条数据,采用单线程5000笔批量提交方式,速度在2.6w/s左右,如下图所示:

表输出步骤配置如下:

 初始化数据如下:

3、使用插入/更新步骤,存在数据则更新,不存在则插入新数据。如下图所示

性能非常差,原因是每次都需要将旧数据查出来,然后和新数据对比是否有变化,有则执行更新操作,无则插入数据。每条数据都要和数据库交互两次。

 数据更新如下:

4、使用自研Upsert组件,执行插入更新操作,如下图所示:

自研Upsert插件单线程速度在1.4W/s,之所以速度比原有插入/更新大幅提升,是因为Upsert处理每条数据时只需要和数据库交互一次。

这里验证的是假如每条数据都发生了变化,若有少量变化或者没变化速度将大幅提升。

Upsert配置如下:

更新数据如下:

数据没有变化是Upsert执行如下图所示:

注:本次测试结果是基于本地环境,开单线程的测试结果,若放到服务器上多线程模式速度会更快。

Done!!!


文章转载自:

http://V1ptrCXd.srxhd.cn
http://roetlgTl.srxhd.cn
http://aarhLEEP.srxhd.cn
http://nEhUb3ey.srxhd.cn
http://y4bORMhn.srxhd.cn
http://nskSNqFh.srxhd.cn
http://K9UyeaLa.srxhd.cn
http://LVvIjy2H.srxhd.cn
http://zlKc0DtN.srxhd.cn
http://gl5K2R4V.srxhd.cn
http://wyXL94gI.srxhd.cn
http://Lg2me7Ci.srxhd.cn
http://6mgHehwl.srxhd.cn
http://ADZl4knz.srxhd.cn
http://c0caCEbn.srxhd.cn
http://hxoAtdzW.srxhd.cn
http://tF1zC1f6.srxhd.cn
http://6SmwODt8.srxhd.cn
http://OW8T0DJq.srxhd.cn
http://RRst9P7p.srxhd.cn
http://KuZp7GN3.srxhd.cn
http://vWDbD1H9.srxhd.cn
http://eix1wpHL.srxhd.cn
http://g9KDHwwT.srxhd.cn
http://qXCH7fCG.srxhd.cn
http://SWaPCM9r.srxhd.cn
http://JoWWZ2nA.srxhd.cn
http://KTVvzZ2e.srxhd.cn
http://ykFls2ha.srxhd.cn
http://bqLEGR7u.srxhd.cn
http://www.dtcms.com/a/51425.html

相关文章:

  • 自学微信小程序的第十二天
  • 【不是广告】华为昇腾的一小步,Pytorch的一大步
  • Django模型数据查询:深入探索模型管理器Model.objects
  • Linux+apache之 浏览器访问云服务器磁盘的图片,通过tomcat
  • 浅浅认识一下js中的闭包
  • 聊天室Python脚本——ChatGPT,好用
  • 通用信息抽取大模型PP-UIE开源发布,强化零样本学习与长文本抽取能力,全面适配多场景任务
  • Leetcode 378-有序矩阵中第 K 小的元素
  • Linux安装Redis、远程连接Redis
  • Python使用SFTP批量上传和下载一个目录下的所有文件
  • flink tranform算子详解
  • 从厨电模范到数字先锋,看永洪科技如何助力方太集团开启数字新征程
  • 写一个python程序,找出1000以内的质数
  • c++ 接口/多态
  • 【开源免费】基于SpringBoot+Vue.JS疫情管理系统(JAVA毕业设计)
  • Java Web 相关技术概念与知识点
  • [MySQL初阶]MySQL(2)数据类型精讲静态类型和动态类型的对比
  • ubuntu20系统下conda虚拟环境下安装文件存储位置
  • 大模型在呼吸衰竭预测及围手术期方案制定中的应用研究
  • JVM如何判断一个对象可以被回收
  • 自定义wordpress三级导航菜单代码
  • 摄相机标定的基本原理
  • 15天 — 如何解决 Redis 中的热点 key 问题?Redis 集群的实现原理是什么?Redis 中的 Big Key 问题是什么?如何解决?
  • sqli-lab靶场学习(七)——Less23-25(关键字被过滤、二次注入)
  • 1.RabbitMQ简介
  • rust笔记13:trait对象
  • 电脑技巧:硬件检测工具 HWiNFO 8.16版本更新功能介绍
  • 点云滤波方法:特点、作用及使用场景
  • MyBatis-Plus 条件构造器的使用(左匹配查询)
  • 使用jacob进行word操作