〇、参考地址

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字段,查看有无当日分区数据即可

Kettle:跨库(SQLServer->PostgreSQL)同步多张表数据的详细设计过程的更多相关文章

  1. sqlserver 拷贝同步多个表数据到另一张表

    --/****** Script for SelectTopNRows command from SSMS ******/ Insert into [DMSBusiness].[dbo].[Busin ...

  2. Kettle实现从mysql中取2张表数据关联的数据,并写入到mongodb中

    1 建立转换,并设置DB连接到mysql 选中DB连接:连接类型选择MySQL,输入主机名称,数据库名称,端口号,用户名,密码 输入连接名称,点击确定.(可以先点击测试,测试一下是否连接成功) 如下图 ...

  3. 关于跨DB增量(增、改)同步两张表的数据小技巧

    有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB ...

  4. mysql 和 sqlserver中备份一张表的区别

    sqlserver中备份一张表 SELECT * into qa_buglist_bak FROM qa_buglist 不管表的数据有多大,速度很快: mysql中上述语句就无效了,须得新建一张表, ...

  5. sql语句查看库里有没有这张表,有就删除

    查看库里有没有这张表,有就删除 DROP TABLE IF EXISTS 表名

  6. MySQL实例多库某张表数据文件损坏导致xxx库无法访问故障恢复

    一.问题发现 命令行进入数据库实例手动给某张表进行alter操作,发现如下报错. mysql> use xx_xxx; No connection. Trying to reconnect... ...

  7. Oracle:同步两张表的相同字段

    有一个需求需要同步两张表的相同字段,比如表A和表B,这两张表是不同的用户下的表,表结构是一样的. 一开始我简单写了一个sql语句,如下: update ord_log1 A set (A.pid, A ...

  8. SqlServer一张表数据导入另一张表,收藏使用,工作中更新数据错误很有用

    sql一张表数据导入另一张表   1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:   INSERT INTO 目标表 SELECT * FROM 来源表;   2.比如要将 arti ...

  9. 利用sqlldr从MySQL导出一张表数据到Oracle

    根据业务需求,需要从MySQL库中同步一张表tap_application到Oracle中,下面是记录的导入过程. 1. 查看MySQL表结构 desc tap_application; +----- ...

  10. Postgresql ODBC驱动,用sqlserver添加dblink跨库访问postgresql数据库

    在同样是SQLserver数据库跨库访问时,只需要以下方法 declare @rowcount int set @rowcount =(select COUNT(*) from sys.servers ...

随机推荐

  1. 类似微信聊天小程序-网易云信,IM DEMO小程序版本

    类似微信聊天小程序-网易云信,IM DEMO小程序版本 代码地址: https://github.com/netease-im/NIM_Web_Weapp_Demo 云信IM DEMO 小程序版本 ( ...

  2. Rust基本数据类型

    基本类型 Rust 每个值都有其确切的数据类型,总的来说可以分为两类:基本类型和复合类型. 基本类型意味着它们往往是一个最小化原子类型,无法解构为其它类型(一般意义上来说),由以下组成: 数值类型: ...

  3. JUC在深入面试题——三种方式实现线程等待和唤醒(wait/notify,await/signal,LockSupport的park/unpark)

    一.前言 在多线程的场景下,我们会经常使用加锁,来保证线程安全.如果锁用的不好,就会陷入死锁,我们以前可以使用Object的wait/notify来解决死锁问题.也可以使用Condition的awai ...

  4. 关于使用kuboard安装其自带的监控应用授权普通用户使用

    官方文档地址:https://www.kuboard.cn/guide/example/monitor-v2.html#授权用户访问套件

  5. 《深入理解Elasticsearch》读书笔记 ---重点概念汇总

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247483918&idx=1&sn=a9f2ad3 ...

  6. Nginx缓存了DNS解析造成后端不通--代理

    文章转载自:https://segmentfault.com/a/1190000022365954 1 问题现象 我们使用 Nginx 的时候,经常会用到 Proxy 功能,为了方便管理,后端站点或者 ...

  7. Compose 命令说明

    命令对象与格式 对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器.如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响. 执行 ...

  8. 内网横向渗透 之 ATT&CK系列一 之 信息收集

    前言 靶机下载地址:ATT&CK 拓扑图: 通过模拟真实环境搭建的漏洞靶场,完全模拟ATK&CK攻击链路进行搭建,形成完整个闭环.虚拟机默认密码为hongrisec@2019. 环境搭 ...

  9. 面试突击86:SpringBoot 事务不回滚?怎么解决?

    在 Spring Boot 中,造成事务不自动回滚的场景有很多,比如以下这些: 非 public 修饰的方法中的事务不自动回滚: 当 @Transactional 遇上 try/catch 事务不自动 ...

  10. EFCore分表实现

    实现原理 当我们new一个上下文DbContext 后, 每次执行CURD方式时 ,都会依次调用OnConfiguring(),OnModelCreating()两个方法. OnConfiguring ...