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

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

时间:2022-12-05 14:35:35浏览次数:71  
标签:10 PostgreSQL src 跨库 张表 Kettle https com

〇、参考地址

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​

截图:

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

3、建立映射表async_table

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

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

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

4、任务编排

(1)整体任务

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

(2)归档任务编排

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

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

1、转换编排

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

2、表输入设计

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

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

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

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

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

(一)整体子作业

1、作业编排

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

2、设置迭代取数据

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

即每个输入行执行一次

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

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

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

2、结果中获取记录

每次取一行的两个字段

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

3、设置变量

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

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

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

1、转换编排

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

2、表输入

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

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

3、表输出

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

五、取差集数据

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日志

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

2、表中验证

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

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

作者:​​哥们要飞​​



标签:10,PostgreSQL,src,跨库,张表,Kettle,https,com
From: https://blog.51cto.com/liujinhui/5912066

相关文章

  • centos Postgresql11升级Postgresql14
    1.下载pgsql14的源码包进行安装yuminstallpostgresql14–yyuminstallpostgresql14-server-y附带安装yuminstallpostgresql14-libsyuminstallpostgresql14-c......
  • Linux 上安装 PostgreSQL
    打开PostgreSQL官网​​https://www.postgresql.org/​​,点击菜单栏上的DownloadLinux我们可以看到支持Ubuntu和RedHat等各个平台,点击具体的平台链接,即可查看安装......
  • Kettle增量插入和更新
    将数据源A库中的某张表的数据插入更新到数据库B中。​为方便演示,我们在数据库A和数据库B中分别创建表userA和表userB。最终目标为将数据表userA中的数据插入更新到数据表use......
  • PostgreSQL的常用DDL操作语句
    1.建表、删除表的DDL语句CREATETABLEIFNOTEXISTS"my_table"(idSERIALNOTNULL,namevarchar(255)NOTNULL,agevarchar(255)NOTNULL,drint2DEF......
  • 5分钟搞定 MySQL 到 Greenplum / PostgreSQL 数据迁移同步
    简述本文主要介绍如何使用CloudCanal构建一条MySQL到Greenplum/PostgreSQL的数据同步链路。支持版本源端MySQL支持的版本为:5.6、5.7、8.X对端PostgreSQL支......
  • How we upgraded PostgreSQL at GitLab.com
    HowweupgradedPostgreSQLatGitLab.comJoseFinotto ·Sep11,2020 · 15minread · LeaveacommentWeteamedupwith OnGres to performamajo......
  • Kettle字段合并
    将数据源A库中的某张表或某几个表中的字段合并后的数据插入到数据库B中。我们在数据库A和数据库B中分别创建表userA和表userB。最终目标为将数据表userA中的字段“surname”......
  • PostgreSQL死锁案例分析(二)
    PostgreSQL死锁案例分析(二)原作者:陈雁飞创作时间:2019-09-2615:28:14+08  采编:wangliyun发布时间:2019-09-2708:08:14欢迎大家踊跃投稿,投稿信箱:press@postgres.......
  • CentOS中使用Docker部署带postgis的postgresql
    场景CentOS中使用Docker来部署Postgresql:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/128099670上面安装的postgresql还需自行安装postgis插件,是否可以......
  • CentOS中使用Docker来部署Postgresql
    场景CentOS7中Docker的安装与配置:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701在上面安装好Docker之后,怎样使用docker部署Postgresql数据库。......