Oralce增量同步方案系列2-Kettle增量模型

Oralce增量同步方案系列1-方案选型
雄赳赳气昂昂,打仗一定是军未动粮草先行。咱们这个也得有粮草,提起精神挽起袖子一起开始吧。
1.思考题

首先咱们抛开ETL工具,自己想想如果咱们自己做该怎么做这件事情?
- 从源获取同步表TABLE_A数据
- 从目标库同步表TABLE_A获取数据
- 拿到两张表的数据判断增删改查
- 将判断结果写入到目标库中
看上去貌似也不难吗?工作量也不大,楼主想说的亲们你用java自己写要多久完成?一张表多久?假设有1000张表要同步呢?
有木有现成的组件供我们使用,提高开发效率呢?最好有可视化界面,拖拖拽拽一个功能完成?


2.Kettle

环境篇

  • JDK1.8
  • kettle7.1直接官网上面下载
  • Oracle11GR2两个节点数据库(可以不同的实例)

    数据库安装完毕后将某个用户下的数据表导出一份做实验;

基于本篇刚开始的思考题,kettle中给我们提供了组件如下:

  1. 我们需要两个表输入控件,从源库以及目标库中获取数据,这里需要注意后面的orderby 表的主键字段必须指定,否则数据流转到第二步骤比对会错误(基于下标比对记录)
    Oralce增量同步方案系列2-Kettle增量模型
  2. 通过合并记录组件,依赖于关键字ID增加一个标志位用来判断记录的CRUD
    Oralce增量同步方案系列2-Kettle增量模型

  3. switch/case用于判断将数据流转到那一步
    Oralce增量同步方案系列2-Kettle增量模型

  4. 删除
    Oralce增量同步方案系列2-Kettle增量模型

  5. 删除或者更新
    Oralce增量同步方案系列2-Kettle增量模型

  6. 最终模型如下
    Oralce增量同步方案系列2-Kettle增量模型
    3.总结
    有了工具是不是感觉效率高了很多?
    咱们这个模型是否能经受住大数据量的冲击?例如1100w条数据的增量更新这抗的住吗?
    如果我想在加一张表B怎么办?
    这个转换只能执行一次我要定时同步怎么做?
    好吧抛个引子咱们一步步来解决问题,请继续关注楼主的后续系列教程
    Spring+Quarz+Kettle调度模型

相关文章:

  • 2022-12-23
  • 2021-09-30
  • 2021-12-01
  • 2021-08-15
  • 2021-09-11
  • 2022-12-23
猜你喜欢
  • 2021-09-26
  • 2022-12-23
  • 2021-05-02
  • 2021-11-03
  • 2021-08-26
  • 2021-07-08
  • 2021-07-30
相关资源
相似解决方案