當前位置:網站首頁>Kettle實現共享數據庫連接及插入更新組件實例

Kettle實現共享數據庫連接及插入更新組件實例

2022-07-23 14:55:37小龍Hibernation

常用組件

1、共享數據庫連接

新建的數據庫連接都只屬於某一個轉換程序

如果你想讓所有的轉換程序都能使用這個連接,需要開啟共享

image-20220722094919827

2、錶輸入組件

  • 需求∶將錶中的數據,同步到另一張這張錶中。

  • 分析

    • 這是一個轉換任務
    • 輸入︰讀取錶的數據
    • 轉換 : 沒有轉換過程
    • 輸出 : 將結果寫入錶中
  • 實現

    • 開發程序

      image-20220722093752728

    • 配置輸入

      先配置數據庫連接共享

      image-20220722095200264image-20220722095411006

      image-20220722095510939

      image-20220722095739372

    • 配置輸出

      image-20220722095947889

      image-20220722100008468

      image-20220722100037584

    • 測試運行

      image-20220722100153615

      image-20220722100215548

3、插入更新組件

  • 工作需求∶將A錶的數據同步到B錶中,保證B錶的數據與A錶的數據一致,實現是不斷更新的操作

    • A錶發生了更新,更新的數據也會同步到B錶中
    • A錶沒有發生更新,即使程序運行,B錶也不發生改變
    • 數據同步的過程
      • 每次只同步更新的數據
      • 已經同步過的數據,就不會再進行同步
    • 工作中一般一天會同步一次,程序就每天執行一次
  • 解决∶插入更新的輸出組件

  • 功能 : 只會同步發生更新的數據,已經同步過的數據不會再次同步

    • 數據更新
      • 插入一條新的數據
      • 修改一條老的數據
  • 實現 : 任何時候,兩張錶的數據同步是一致的

    • 開發轉化任務流程圖

      image-20220722101447006

    • 定義輸入

      與之前步驟一致

      image-20220722101405449

    • 定義插入 / 更新

      image-20220722102408261

      image-20220722102318308

      只以id來做比較

      image-20220722102732748

      image-20220722102806667

    • 測試運行

      image-20220722102918320image-20220722102935561

      修改原錶數據或增加,再執行一次,自動進行更新

總結

本文主要兩個知識點:

  1. 共享數據庫連接
  2. 插入更新組件
  • 同步業務
    • 全量︰每次將所有的數據都同步一份
      • 保證A和B是一致的
        • 每次先删除B所有內容,然後,再同步
      • 程序的性能比較差,數據量大了以後,非常慢,不建議使用
      • 錶輸出︰全量的組件
    • 增量︰每次將發生更新的數據同步,沒有發生更新就是已經同步過的數據不再同步
      • 保證A和B是一致的
      • 工作中都使用增量的方式
      • 插入更新︰增量的組件

以上兩個知識點非常貼合和適用於在工作場景中,還可以跟作業搭配,一逸永勞

版權聲明
本文為[小龍Hibernation]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/204/202207230934249034.html

隨機推薦