日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Kettle-开源的ETL工具集-实现SqlServer到Mysql表的数据同步并部署在Windows服务器上

發布時間:2025/3/19 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kettle-开源的ETL工具集-实现SqlServer到Mysql表的数据同步并部署在Windows服务器上 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

kettle

中文名稱叫水壺,該項目的主程序員MATT希望把各種數據放到一個壺里,然后

以一種指定的格式流出。是一款由純Java編寫的ETL工具,綠色無需安裝,數據抽取高效穩定(數據遷移工具)。

業務需要,從A系統的Sqlserver數據庫的某個表或者視圖,同步到B系統的Mysql的某個表。

Sqlserver的表和mysql表的結構一致。

在SqlServer數據庫中新建一個表student

設置id為主鍵

然后在另一個Mysql表新建表student

結構一樣,id同樣為自增主鍵。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

1、下載地址

https://sourceforge.net/projects/pentaho/files/Data%20Integration/

點進去之后,點擊zip下載

下載之后解壓到某目錄下即可

2、運行

找到解壓目錄下的Spoon.bat雙擊運行

運行成功后會看到如下界面

3、新建轉換

主對象樹下轉換-新建

4、新建數據庫連接

轉換-DB連接-新建

在建立數據庫連接的時候,需要將對應數據庫的驅動jar包放在lib目錄下

比如這里先連接Mysql,下載mysql對應的驅動jar包,這里是mysql5.6

https://downloads.mysql.com/archives/installer/

選擇對應的版本下載解壓后將驅動jar包放在lib目錄下

如果不放置驅動jar包會報錯

只有放置正確的驅動jar包后,點擊測試才能連接成功

再建立一個DB連接,連接Sqlserver,同樣需要下載sqlserver的驅動jar包

https://docs.microsoft.com/zh-cn/sql/connect/jdbc/release-notes-for-the-jdbc-driver?view=sql-server-2017#82

根據sqlserver的版本下載對應的jar包,如果不確定sqlserver版本與驅動jar包的對應關系,就多下載,然后建立DB連接成功后,進行刪除,哪一個提示正在使用中就保留。

下載完驅動jar包后,進行測試連接sqlserver,否則會提示

直到建立Sqlserver連接成功

5、編輯轉換

首先整個轉換的流程如下

?(1)建立mysql的表輸入

核心對象-輸入-表輸入-拖拽-雙擊編輯-編輯名稱-選擇數據連接-獲取sql數據查詢語句-確定

?(2)mysql字段選擇

核心對象-轉換-字段選擇

點擊上面mysql的表輸入,按住shift連接到mysql字段轉換

雙擊編輯-元數據-獲取改變的字段-將Binary to Normal都改為是,另外兩個改為否

(3)mysql排序記錄

轉換-排序記錄-雙擊編輯-獲取字段-保留id作為排序字段

?(4)同樣的進行下面的sqlserver的表輸入

?(5)sqlserver的字段選擇

?(6)sqlserver的排序記錄

?(7)合并記錄

將上面的兩個排序連接到合并記錄上。

連接-合并記錄-雙擊編輯-選擇兩個數據源

這里的標志字段可以用默認的字段,合并之后會以此字段為增刪改的依據。

然后點擊獲取關鍵字段-獲取值字段,其中關鍵字段是id唯一鍵,關鍵值是除了id唯一鍵之外的值。

?(8)數據同步

輸出-數據同步-選擇目標數據庫和目標表-批量更新-選擇關鍵字為id,關系為是否相等-更新字段為所有字段,會默認帶著上面的標志字段,記得去掉

?然后切換到高級頁面,將操作設置為對應下面

標志字段:設置標志字段的名稱,標志字段用于保存比較的結果,比較結果有下列幾種。
1. “identical” – 舊數據和新數據一樣
2. “changed” – 數據發生了變化;
3. “new” – 新數據中有而舊數據中沒有的記錄
4. “deleted” –舊數據中有而新數據中沒有的記錄

?6、執行轉換

點擊右上角三角號執行一次轉換,下面日志顯示執行成功則沒有問題。

可以通過修改sqlserver的數據,然后執行一次后,查看mysql的數據是否同步成功。

?然后保存,會在磁盤下保存一個kjb后綴名的文件

7、新建作業

通用-作業-拖拽-雙擊編輯-設置執行的時間間隔-下面設置的是每10秒重復一次

拖拽一個轉換-雙擊編輯

選擇上面保存的ktr轉換的文件

將START與轉換之間連接上。

8、運行作業

點擊作業的左上角三角號就會持續運行,點擊正方形就會停止運行

9、部署運行

這里是在Windows服務器上,可以直接連同整個程序以及轉換文件和作業文件同樣的再服務器上部署一套。

或者是將kuttle的整個目錄pdi-cd-7.1里面,復制上面新建的轉換文件ktr以及作業文件kjb

并且在此目錄下新建Bat腳本start.bat

首先需要更改kjb文件中引用ktr文件的路徑,使用文本編輯工具打開kjb文件,將ktr文件的路徑修改為相對路徑

<filename>${Internal.Job.Filename.Directory}/tranTest.ktr</filename>

?然后修改bat腳本的內容

@echo offset pwd=%~sdp0%pwd%\data-integration\Kitchen.bat /file %pwd%\sysjob.kjbpause;

該腳本的意思是獲取當前路徑下data-intergration下的Kitchen.bat并設置file參數為當前目錄下的sysjob.kjb文件

雙擊bat文件運行

沒有報錯則部署成功。

總結

以上是生活随笔為你收集整理的Kettle-开源的ETL工具集-实现SqlServer到Mysql表的数据同步并部署在Windows服务器上的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。