Kettle:跨库(SQLServer-PostgreSQL)同步多张表数据的详细设计过程

news2025/7/10 12:21:06

〇、参考地址

1、多个Excel实现同步

https://www.wangt.cc/2021/05/kettle%E5%A4%9A%E4%B8%AA%E8%A1%A8%E4%B8%80%E8%B5%B7%E8%BF%81%E7%A7%BB-%E9%80%9A%E8%BF%87%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E9%85%8D%E7%BD%AE%E9%9C%80%E8%A6%81%E5%90%8C%E6%AD%A5%E7%9A%84%E5%AD%97/

一、整体设计

1、介绍

客户数据到ods同步多张表的归档数据(也可以实现同步全部数据)

2、前提:ods建表

ods有对应的表结构,可以直连客户数据库(如SqlServer),使用本人在gitee上上传的项目,自动生成目标库(如PostgreSQL)的建表语句,可以选择生成单张表或同时生成多张表

地址:https://gitee.com/ljhahu/autoddl.git

截图:

3、建立映射表async_table

src为源表(客户数据库)表名,tt为目标表(ods)表名,手动填入需要同步的多张表表名

ps:与上一步对应,ods中要包含tt中的表(结构)

4、任务编排

(1)整体任务

(2)归档任务编排

二、job设计-get(转换-transformation)

1、转换编排

2、表输入设计

3、结果复制(无需配置)

四、job设计-push(作业-job)

(一)整体子作业

1、作业编排

2、设置迭代取数据

即每个输入行执行一次

(二)迭代取表名(转换-transformation)

1、转换编排(从作业->转换)

2、结果中获取记录

每次取一行的两个字段

3、设置变量

后续取值方式:${src}、${tt},且

(三)基于变量中的表名传输数据

1、转换编排

2、表输入

即从客户的库中查询所有数据

3、表输出

五、取差集数据

1、思路

通过业务主键进行full join,取结果集中ods源表为空的数据插入ods表

2、SQL

insert into ods.table_name 
select b.*
from (
    select * 
    from ods.table_name
    where dt = to_char(CURRENT_DATE,'yyyymmdd')
) a
full JOIN ods.table_name_archive b
on a.fbillno=b.fbillno
where a.fbillno is null;

六、验证

1、日志验证

查看xxl-job调度后打印的kettle日志

2、表中验证

由于表中加入了分区dt字段,查看有无当日分区数据即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/37562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java搭建实战基于若依springboot二次开发WMS带移动端管理系统vue源码

大家好啊,我是测评君,欢迎来到web测评。 有个朋友发了一套基于若依开发的springboot源码给我,让我帮忙看一下,录制一期视频教程出来,我看了一下,系统是前后端分离的架构,前端使用Vue2&#xff0…

Ubuntu20.04安装graph-tool

目录step1:查看系统发行版本step2: 在 /etc/apt/sources.list文件中添加一行step3: 下载密钥step4: 更新apt-getstep5: 下载graph-toolstep6:移动graph-tool包到anaconda下step7: 测试是否安装成功链接: 官方安装教程注:如果下列过程中出现权…

cesium在地形上贴地添加各种entity

目录 添加带标签的点 添加billboard 添加corridor 添加面polygon 添加带图片的面polygon 添加矩形 添加glb模型 被遮挡的线用其他颜色标注 添加贴地线 官方示例:Cesium Sandcastlehttps://sandcastle.cesium.com/?srcClamp%20to%20Terrain.html&labelTutor…

都已过35+程序员高危高龄,我为什么还要学习python?

前言 首先声明一点:学习PYTHON,绝不是要去当一名“憔悴的”程序猿~ (文末送读者福利) 去互联网大厂?则更是谈不上。就算我想去,大厂也是看不上。 年龄看不上(已过程序员35岁之高龄&#xff0…

学生个人网页设计作品 学生个人网页模板 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计代做

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

LaTex常用技巧6:矩阵编写总结

本文记录和总结了LaTex编写矩阵的一些要点,具体参考这位博主半个冯博士的知乎文章如何用latex编写矩阵(包括各类复杂、大型矩阵)? 无括号矩阵圆括号矩阵方括号矩阵大括号矩阵行列式范数分块矩阵竖实线竖虚线横实线横虚线其他要点横…

redis的下载和安装详解

一、下载redis安装包 进入redis官网查看当前稳定版本: https://redis.io/download/发现此时的稳定版本是6.2.4, 此时可以去这个网站下载6.2.4稳定版本的tar包。 暂时不考虑不在windows上使用redis,那样将无法发挥redis的性能 二、上传tar…

智能疾病查询接口

一、接口介绍 最全的疾病大全,收集了数万种常见疾病,任何常见疾病都可查询。 二、功能体验 三、API文档 3.1 查询疾病科目 3.1.1接入点说明 查询疾病的类别。 3.1.2接口地址 http[s]😕/www.idmayi.com/546-1?idmayi_appid替换自己的值&…

spring复习02,xml配置管理bean

spring复习02,xml配置管理bean获取bean的几种方式1. 通过id获取bean2. 通过class获取bean3. id和class结合来获取bean依赖注入的两种方式setter注入有参构造器注入依赖注入时一些特殊值的处理1.字面量2.null值3.xml实体4.CDATA节为类类属性赋值1.引入已经声明的bean的方式2.内部…

在springboot工程中修改使用quartz创建的定时任务

Quratz是什么: Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。 Quartz 可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。 Quartz 允许程序开发人员根据时间的间隔来调度作业。 Quartz 实现了作业和触发器的…

CTF-misc练习(https://buuoj.cn)之第二页

目录 一、被劫持的神秘礼物 二、刷新过的图片 三、[BTF2020]认真你就输了 四、[BJDCTF2020]藏藏藏 五、被偷走的流量 九、菜刀666 十、秘密文件 十一、[BJDCTF2020]just_a_rar 十二、[BJDCTF2020]鸡你太美 十三、[BJDCTF2020]一叶障目 十四、神奇的二维码 十五、梅…

mysql必知必会

名词 数据库软件 : DBMS(database manager system) 数据库 :database, 通过DBMS创建和操作的容器, 保存有组织的数据的容器,,,通常是一个文件或者一组文件 表: 是一种结构化文件,,…

安科瑞水电预付费平台,远程控制,高校宿舍、员工宿舍、商场等多场合适用

安科瑞 司红霞 一、引言 预付费水表是一种为了适应“先付费后用水”的管理原则和系统而开发的水表产品其设计是在水表基表上加装了电子附加装置和控制阀,要求用户先预付,一定的费用或购置一定数量的水量,将预付费的信息输入水表后才可正常用…

四轴斜转魔方

目录 四轴斜转魔方 1,魔方三要素 2,公式推导 (1)调整8个角块位置 (2)调整6个中心块位置 (3)调整角块方向 四轴斜转魔方 1,魔方三要素 (1)组…

Sentinel实现服务降级并与api解耦

Sentinel怎样实现熔断降级 熔断降级介绍 sentinel支持服务的熔断降级 熔断类似于保险丝,在超出了阈值的情况下,在一定的时间内不会执行业务逻辑,直接执行服务降级的方法。服务降级利用本地fallback方法,返回一个有好的提示给客…

Scala配置和Spark配置以及Scala一些函数的用法(附带词频统计实例)

文章目录配置Spark配置Scala生成RDDfilter过滤器map方法flatMap方法reduceByKeyspark下wordcount程序参考先给出spark和Scala的下载地址,这是我用的版本https://pan.baidu.com/s/1rcG1xckk3zmp9BLmf74hsg?pwd1111也可以自己去官网下载。配置Spark 解压文件到softw…

public,private,protected,default的区别

public public(公开)表示任何人都可以访问和使用该元素; public class Test {public static void main(String[] args) {Person pnew Person();System.out.println(p.name);//输出小明} } class Person{public String name"小明"…

Go 开发环境安装之Goland和vscode

一、前言 Go语言或将成为新的主力开发语言,Go是google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,所以我们有必要学习并掌握它。第一件事情,就是把环境搭建起来,大家可以跟着步骤一起将Go语…

【计算机网络】数据链路层:点对点协议PPP

对于点对点链路,目前使用最为广泛的数据链路层协议是点对点协议PPP。 简单(首要要求) 封装成帧:保证数据传输的透明性 多种网络层协议:能够在同一条物理链路上同时支持多种网络层协议。 多种类型链路:能…

2020牛客暑期多校训练营(第十场)I.Tournament(构造/贪心)

题目 t(1<t<30)组样例&#xff0c;n(2<n<300)个球队&#xff0c; 每个球队都和其它所有球队比一场&#xff0c;一共有场比赛。 每天只比一场比赛&#xff0c;每个球队会在其第一场比赛开始时到&#xff0c;最后一场比赛后走。 安排一个日程表&#xff0c;使所有…