kettle学习笔记

本文围绕Kettle进行数据库数据同步展开。业务需求是将一个库的数据同步到另一个库,采用n+1策略,每天凌晨同步,包含增量、编辑和删除同步。实现方案分基础数据全量比对更新和业务数据一月内比对更新。还介绍了下载运行Kettle、新建配置文件等功能实现步骤。

kettle学习笔记之数据同步

  • 业务需求:
    将库中数据同步到另一个数据库,实时性使用n+1策略,进行每天凌晨进行数据同步。其中包含增量的数据同步、编辑的数据修改同步以及物理删除的同步删除。

  • 实现方案:
    这里同步的数据分为两种
    一种为基础数据,这种数据的数据量不会很大,实施全量的比对更新;
    一种为业务数据,这种数据的数据量可能会很大,但是时间轴越长数据越不会被修改,这里实施一个月内的比对更新。
    两种方案只是自己的查询sql不同,来实现全量还是部分数据。

  • 功能实现:
    1.下载并运行kettle
    2. 新建配置文件,初始化变量值。
    3. 新建两个数据源,并共享。
    4. 新建转换:主要业务逻辑,实现数据同步。
    5. 新建作业:引入转换,设置定时作业。
    6. 出现异常实现发送邮件。

1. 下载kettle
这里使用的kettle为7.0版本,网盘下载地址:
链接:https://pan.baidu.com/s/1Z_9bvYqOX1n0-h-UH8qmLA
提取码:ucln
以及环境配置可以点击下方链接进行阅读。

https://blog.youkuaiyun.com/spurs611/article/details/80916143

2. 新建配置文件
新建 kettle.properties 文件,与 Spoon.bat 等文件在同一目录。
里面上可以设置数据库链接和初始化一些变量。
修改完配置文件要重启kettle才会生效。
在这里插入图片描述
3. 新建数据源并共享
在新建数据源之前要新建一个作业,这样才可以新建数据源。
在作业下面,右键DB链接,新建。在配置好数据源后,右键数据源,点击共享。
在这里插入图片描述
共享这里无法进行截图。
4. 新建转换

  • 代码图如下:
    在这里插入图片描述

  • 代码执行逻辑:
    新建两个表输入,获取到两张表的数据,比对关键字段为主键,合并记录,将结果值赋值给flagId,然后将flagId交有swish进行业务分发。
    代码片段:
    在这里插入图片描述
    在这里插入图片描述
    在更新和表输出的时候获取所有字段会带有flagId,而flagId只是我们的变量,表中并没有,要将这个属性从表字段中删除。
    如果数据库设置了字段非空,并且给了defaulvalue为"",这种情况进行表输出会报空指针错误,要在配置文件中添加如下属性避免报错:KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

5. 作业设置定时任务
双击START可以进行任务设置,右键START点击Run Next Entries in Parallel 可以进行多线程并发执行转换。
效果如下:
在这里插入图片描述
6. 任务异常执行发送邮件
在这里插入图片描述
以上为开发全部步骤,有需要的话还可以添加补偿机制,不同业务需要可以用不同场景进行实现,实现方法不一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值