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

kettle利用excel文件增量同步一个库的数据(多表一次增量同步)

利用excel文件增量同步一个库的数据

现在有sqlserver和mysql两个库上的表在进行同步,mysql上的是源表,sqlserver上是目标表。

mysql :
在这里插入图片描述在这里插入图片描述在这里插入图片描述


sqlserver :
在这里插入图片描述

可以看到sqlserver上表的最近一次同步日期分别是
pep表: 2022-10-23 14:19:00.000
stu_info表: 2023-01-01 00:00:00.000
xiaohan1表: 2022-10-23 14:19:00.000


1. 获取excel需要同步的表名(读取excel文件)

先创建一个excel内容格式如下:
在这里插入图片描述

保存好后,新建一个作业文件命名为"配置文件同步增量数据",在这个作业文件里创建一个转换控件命名为"获取excel里需要同步的表名",用来获取excel里需要同步的表信息在这里插入图片描述
接着创建一个转换文件命名为"1.读取需要同步的表数据",在这个转换文件里创建一个Excel输入控件和一个 复制记录到结果 控件 。excel输入的表格类型选择"Excel 2007 XLSX (Apache POI)"
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将名为"1.读取需要同步的表数据"的转换文件保存后,回到名为"配置文件同步增量数据"的作业文件里选择名为"获取excel里需要同步的表名"的转换控件的具体路径
在这里插入图片描述


2. 循环处理每个表的增量数据同步

在名为"配置文件同步增量数据"的作业文件里再创建一个作业控件命名为"循环处理每个表增量同步"
在这里插入图片描述
然后我们就需要新建一个作业文件了,因为一个转换控件对应一个转换文件,一个作业控件对应一个作业文件。
这个作业控件我们可以命名为 “2.表数据增量同步”,内容如下4个步骤:
在这里插入图片描述


在2.1获取上一步的表名这个对应的文件里:

在这里插入图片描述

这个从结果获取记录需要我们去之前的excel输入控件里去复制粘贴,
这个设置变量可以直接点获取字段
在这里插入图片描述


在2.2获取上一次同步的时间这个对应的文件里:

---查询目标库上对应表在数据同步记录这张表上的最近一次同步日期
---这里是sqlserver的写法,其他数据库的写法照着改
---之前从excel输入控件里读取后就把记录复制到结果里了,excel的表头就成为了变量
SELECT ISNULL(MAX(TBSJ),'1990-01-01') AS TBSJ FROM SYSTEM_SJTBJL A 
WHERE TABLE_NAME='${TARGET_TABLE_NAME}'

在这里插入图片描述
然后把查出来的每个表的对应的最新同步时间设置为变量。


在2.3同步表数据这个对应的文件里:

有一个表输入和表输出,我们不用更新插入的方式。因为更新插入的方式需要获取具体的表字段写死,每个表都不一样,所以我们使用表输入和表输出来同步。

---表输入:(这是mysql的语法)
---查出源表里更新日期大于目标表的最新一次同步时间的数据
---因为这里查出来的日期是  年/月/日  时:分:秒 的格式 
---所以我这里使用  str_to_date 函数是  '%Y/%m/%d %T'  的格式    而不是  '%Y-%m-%d %T'
SELECT * FROM ${SOURCE_TABLE_NAME} WHERE ${TIME_KEY}>str_to_date(substr('${TBSJ}',1,19),'%Y/%m/%d %T')

在这里插入图片描述
在这里插入图片描述


在2.4记录每次同步的情况到数据同步日志表 这个对应的文件里:

我们更新完了需要马上在SYSTEM_SJTBJL(数据同步记录)这张表里插入对应的表当前同步后的时间,
所以我们只需要用一个执行sql脚本的控件来执行就ok。oracle里insert后是需要commit提交事务才插入成功的。好像sqlserver和mysql都自动提交事务的

---sqlserver的语法
insert into SYSTEM_SJTBJL values('${SOURCE_TABLE_NAME}',getdate());

在这里插入图片描述


最后

记得检查转换控件和作业控件的文件位置对不对,只有循环处理每个表增量同步这个作业控件要勾选"执行每一个输入行",因为每个表在excel里是一行一行保存读取的,所以这个相当是个循环处理,这也是为什么我们在循环处理每个表增量同步这个作业里写的都是变量来代替表名和字段名的。而获取excel需要同步的表名时不需要勾选,循环处理每个表增量同步这个作业控件对应的作业文件底下的转换控件也不用勾选。

在这里插入图片描述


所有都保存了后

在这里插入图片描述

在这里插入图片描述

我们执行主作业后
在这里插入图片描述
在这里插入图片描述

相关文章:

kettle利用excel文件增量同步一个库的数据(多表一次增量同步)

利用excel文件增量同步一个库的数据 现在有sqlserver和mysql两个库上的表在进行同步,mysql上的是源表,sqlserver上是目标表。 mysql : sqlserver : 可以看到sqlserver上表的最近一次同步日期分别是 pep表: 2022-10-23 14:19:00.000 stu_…...

面试题:android中A Activity 打开B Activity,为什么A Activity的onStop()方法最后被调用

如下是一段典型的Activity间切换的日志,从A Activity切换到B Activity:10-17 20:54:42.247: I/com.example.servicetest.AActivity(5817): onCreate() 1166919192 taskID66 10-17 20:54:42.263: I/com.example.servicetest.AActivity(5817): onStart()…...

百度版本gactgpt即将来临,gpt人工智能机器横空出世

百度版本gactgpt即将来临,gpt人工智能机器横空出世,“一言”为定!百度版ChatGPT确认!李彦宏OKR曝光,率先应用于收索业务 gactCBT 大获,当下极有可能成为人工智能的 iPhone 时刻。为了在这场人工智能竞赛中…...

【python--networkx】函数说明+代码讲解

【Python–NetworkX】函数说明代码讲解 文章目录【Python--NetworkX】函数说明代码讲解1. 介绍1.1 前言1.2 图的类型(Graph Types)1.3 常用方法2. 代码示例1. 介绍 1.1 前言 NetworkX是复杂网络研究领域中的常用Python包。 1.2 图的类型(G…...

【Jqgrid分页勾选保存】三步实现表格分页勾选(取消勾选)保存(附源码)

目录1、创建临时存储数组,初始化赋值2、单行选中与取消,调整数组3、全选与取消全选,调整数组4、输出数组保存5、片尾彩蛋【写在前面】表格可以说是在我们的web页面中是最常见的,之前我们介绍过layui表格翻页勾选的实现过程&#x…...

Appium移动自动化测试——app控件获取之uiautomatorviewer

下载手机YY http://yydl.duowan.com/mobile/yymobile_client-android/5.4.2/yymobile_client-5.4.2-881.apk 若链接失效,请自行百度 新建maven空白工程 前置条件:安装eclipse,及其maven插件,请自行百度 新建的工程如下&#xf…...

webpack、vite、vue-cli、create-vue 的区别

webpack、vite、vue-cli、create-vue 的区别 首先说结论 Rollup更适合打包库,webpack更适合打包项目应用,vite基于rollup实现了热更新也适合打包项目。 功能工具工具脚手架vue-clicreate-vue构建项目vite打包代码webpackrollup 脚手架:用于初始化&#…...

数据结构——TreeMap、TreeSet与HashMap、HashSet

目录 一、Map 1、定义 2、常用方法 3、注意 二、TreeMap 三、HashMap 1、定义 2、冲突定义 3、冲突避免方法——哈希函数设计 (1)、直接定制法(常用) (2)、除留余数法(常用) (3)、平方取中法 &…...

Spring Boot学习篇(十三)

Spring Boot学习篇(十三) shiro安全框架使用篇(五) 1 准备工作 1.1 在SysUserMapper.xml中书写自定义标签 <select id"findRoles" resultType"string">select name from sys_role where id (select roleid from sys_user_role where userid (S…...

微软Bing的AI人工只能对话体验名额申请教程

微软Bing 免费体验名额申请教程流程ChatGPT这东西可太过火了。国外国内&#xff0c;圈里圈外都是人声鼎沸。微软&#xff0c;谷歌&#xff0c;百度这些大佬纷纷出手。连看个同花顺都有GPT概念了&#xff0c;搞技术&#xff0c;做生意的看来都盯上了 流程 下面就讲一下如何申…...

怎么打造WhatsApp Team?SaleSmartly(ss客服)告诉你

关键词&#xff1a;WhatsApp Team SaleSmartly&#xff08;ss客服&#xff09; 您是否正在寻找一种让您的团队能够在 WhatsApp协作消息传递的解决方案?拥有了 WhatsApp Team&#xff0c;不仅效率提升&#xff0c;还可以在智能聊天工具中比如SaleSmartly&#xff08;ss客服&…...

IPV4地址的原理和配置

第三章&#xff1a;IP地址的配置 IPv4&#xff08;Internet Protocol Version 4&#xff09;协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层&#xff0c;该层与OSI参考模型的网络层相对应。网络层提供了无连接数据传输服务&#xff0c;即网络在发送分…...

软件测试面试准备——(一)Selenium(1)基础问题及自动化测试

滴滴面试&#xff1a;1. 自己负责哪部分功能&#xff1f;农餐对接系统分为了两大子系统&#xff0c;一个是个人订餐系统&#xff0c;二是餐馆、个人与农产品供应商进行农产品交易系统。我主要负责组织测试人员对该系统进行测试。我们测试分为两个阶段&#xff1a;一、功能测试阶…...

AcWing 1230.K倍区间

AcWing 1230. K倍区间 题目描述 给定一个长度为 NNN 的数列&#xff0c;A1,A2,…ANA_1, A_2, … A_NA1​,A2​,…AN​ &#xff0c;如果其中一段连续的子序列 Ai,Ai1,…AjA_i, A_{i1}, … A_jAi​,Ai1​,…Aj​ 之和是 KKK 的倍数&#xff0c;我们就称这个区间 [i,j][i,j][i,…...

kubernetes集群部署springcloud项目【AL】【未写完】

kubernetes集群部署springcloud项目【AL】 &#xff08;先手工做&#xff0c;非自动化&#xff09; #环境&#xff1a; 192.168.73.138 master 192.168.73.139 node1 192.168.73.140 node2 192.168.73.137 harbor、mysqlgit clone https://github.com/lizhenliang/simple-…...

各种音频接口比较

时间 参考&#xff1a;https://www.bilibili.com/video/BV1SL4y1q7GZ/?spm_id_from333.337.search-card.all.click&vd_source00bd76f9d6dc090461cddd9f0deb2d51&#xff0c; https://blog.csdn.net/weixin_43794311/article/details/128941346 接口名字时间公司支持格式…...

软件测试面试理论(超详细)

【面试理论知识】1、你的测试职业发展是什么? 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己…...

c++学习笔记-二进制文件操作(哔站-黑马程序员c++教学视频)

一、基本概念 以二进制的方式对文件进行读写操作 打开方式指定为 ios::binary 优点&#xff1a;可以写入自己定义的数据类型 1、写文件 二进制方式写文件&#xff1a;流对象调用成员write 函数原型&#xff1a;ostream& write(const char * buffer,int len);参数解释…...

内网渗透(二十三)之Windows协议认证和密码抓取-Mimikatz介绍和各种模块使用方法

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…...

Nginx if的使用教程

if指令该指令用来支持条件判断&#xff0c;并根据条件判断结果选择不同的Nginx配置。语法if (condition){...}默认值—位置server、locationcondition为判定条件&#xff0c;可以支持以下写法&#xff1a;1. 变量名。如果变量名对应的值为空字符串或"0"&#xff0c;i…...

别再纠结了!Android音视频开发选软解(FFmpeg)还是硬解(MediaCodec)?一个实战Demo帮你做决定

Android音视频开发实战&#xff1a;软解与硬解的性能对决 在移动端音视频开发领域&#xff0c;选择软解还是硬解一直是个令人头疼的问题。每次技术选型会议上&#xff0c;总能看到两派开发者争得面红耳赤——软解支持者强调其灵活性和兼容性&#xff0c;硬解拥趸则推崇其性能和…...

ESP32-C3开发环境搭建(VSCode+ESP-IDF)与串口占用疑难排查实战

1. ESP32-C3开发环境搭建全攻略 第一次接触ESP32-C3开发板时&#xff0c;我和大多数开发者一样&#xff0c;被环境搭建这个"入门杀"折腾得够呛。特别是使用合宙经典款开发板时&#xff0c;USB转串口芯片带来的各种"惊喜"让人措手不及。这里分享一套经过实战…...

硕士论文AI率要求15%以下,用嘎嘎降AI一次过的经验

硕士论文AI率要求15%以下&#xff0c;用嘎嘎降AI一次过的经验 答辩前一周&#xff0c;导师突然甩来一句&#xff1a;“学校新规&#xff0c;硕士论文AI率15%以下才能送审。” 我当时心态直接崩了。我那篇三万字的研究生论文&#xff0c;从文献综述到实验方法&#xff0c;全是我…...

AMFITRACK Gen3开发套件开箱测评:如何用电磁追踪技术搞定VR定位难题?

AMFITRACK Gen3开发套件深度评测&#xff1a;电磁追踪如何重塑VR定位体验 拆开AMFITRACK Gen3开发套件的包装箱时&#xff0c;那种精密仪器特有的金属质感立刻传递到指尖。作为第三代电磁运动跟踪系统的代表&#xff0c;这套设备正在挑战VR领域沿用多年的光学定位霸权。不同于需…...

别再死记硬背了!用华为eNSP图解OSPF、VRRP这些协议到底怎么用

用华为eNSP图解网络协议&#xff1a;从抽象概念到可视化实战 网络协议学习常常陷入"理论-记忆-遗忘"的循环&#xff0c;OSPF的邻居状态机、VRRP的主备切换机制、STP的根桥选举过程&#xff0c;这些在教材中冰冷的概念&#xff0c;如何转化为可感知的网络行为&#xf…...

SLANeXt_wireless_safetensors:免费AI无线安全工具入门指南

SLANeXt_wireless_safetensors&#xff1a;免费AI无线安全工具入门指南 【免费下载链接】SLANeXt_wireless_safetensors 项目地址: https://ai.gitcode.com/paddlepaddle/SLANeXt_wireless_safetensors 导语&#xff1a;SLANeXt_wireless_safetensors作为一款免费的AI无…...

Qwen3-VL多模态检索系统:跨模态搜索部署实战案例

Qwen3-VL多模态检索系统&#xff1a;跨模态搜索部署实战案例 用图文对话技术构建智能搜索系统&#xff0c;让AI看懂图片内容并精准回答你的问题 1. 项目介绍与环境准备 Qwen3-VL是阿里最新开源的视觉-语言模型&#xff0c;可以说是目前最强大的多模态AI系统之一。这个模型不仅…...

OpenClaw版本升级:GLM-4.7-Flash环境无缝迁移指南

OpenClaw版本升级&#xff1a;GLM-4.7-Flash环境无缝迁移指南 1. 为什么需要升级&#xff1f; 上周我在本地开发环境遇到一个棘手问题&#xff1a;OpenClaw的旧版本无法正确解析GLM-4.7-Flash模型返回的JSON响应。经过排查发现是框架对数组嵌套结构的处理存在兼容性问题。这促…...

电脑 TPM 怎么查看、开启与关闭?一文讲清安全与系统必备设置

现在安装 Windows 11、使用设备加密、安全启动、BitLocker 等功能&#xff0c;都离不开 TPM 安全芯片&#xff0c;很多人在升级系统、加固电脑安全时&#xff0c;才第一次接触到 TPM&#xff0c;却不知道自己的电脑是否支持、在哪里查看、如何开关&#xff0c;甚至因为不懂操作…...

别再用yield了!FastAPI 2.0官方弃用警告下的流式响应新范式(含ASGI StreamingResponse + async iterator最佳实践)

第一章&#xff1a;FastAPI 2.0流式响应弃用背景与演进动因FastAPI 2.0 将 StreamingResponse 的默认行为从“自动分块传输”转向显式、可控的流式语义&#xff0c;其核心动因源于对 HTTP/1.1 分块编码&#xff08;Chunked Transfer Encoding&#xff09;与现代客户端&#xff…...