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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

場(chǎng)景

kettle

中文名稱叫水壺,該項(xiàng)目的主程序員MATT希望把各種數(shù)據(jù)放到一個(gè)壺里,然后

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

業(yè)務(wù)需要,從A系統(tǒng)的Sqlserver數(shù)據(jù)庫的某個(gè)表或者視圖,同步到B系統(tǒng)的Mysql的某個(gè)表。

Sqlserver的表和mysql表的結(jié)構(gòu)一致。

在SqlServer數(shù)據(jù)庫中新建一個(gè)表student

設(shè)置id為主鍵

然后在另一個(gè)Mysql表新建表student

結(jié)構(gòu)一樣,id同樣為自增主鍵。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號(hào)
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。

實(shí)現(xiàn)

1、下載地址

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

點(diǎn)進(jìn)去之后,點(diǎn)擊zip下載

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

2、運(yùn)行

找到解壓目錄下的Spoon.bat雙擊運(yùn)行

運(yùn)行成功后會(huì)看到如下界面

3、新建轉(zhuǎn)換

主對(duì)象樹下轉(zhuǎn)換-新建

4、新建數(shù)據(jù)庫連接

轉(zhuǎn)換-DB連接-新建

在建立數(shù)據(jù)庫連接的時(shí)候,需要將對(duì)應(yīng)數(shù)據(jù)庫的驅(qū)動(dòng)jar包放在lib目錄下

比如這里先連接Mysql,下載mysql對(duì)應(yīng)的驅(qū)動(dòng)jar包,這里是mysql5.6

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

選擇對(duì)應(yīng)的版本下載解壓后將驅(qū)動(dòng)jar包放在lib目錄下

如果不放置驅(qū)動(dòng)jar包會(huì)報(bào)錯(cuò)

只有放置正確的驅(qū)動(dòng)jar包后,點(diǎn)擊測(cè)試才能連接成功

再建立一個(gè)DB連接,連接Sqlserver,同樣需要下載sqlserver的驅(qū)動(dòng)jar包

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

根據(jù)sqlserver的版本下載對(duì)應(yīng)的jar包,如果不確定sqlserver版本與驅(qū)動(dòng)jar包的對(duì)應(yīng)關(guān)系,就多下載,然后建立DB連接成功后,進(jìn)行刪除,哪一個(gè)提示正在使用中就保留。

下載完驅(qū)動(dòng)jar包后,進(jìn)行測(cè)試連接sqlserver,否則會(huì)提示

直到建立Sqlserver連接成功

5、編輯轉(zhuǎn)換

首先整個(gè)轉(zhuǎn)換的流程如下

?(1)建立mysql的表輸入

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

?(2)mysql字段選擇

核心對(duì)象-轉(zhuǎn)換-字段選擇

點(diǎn)擊上面mysql的表輸入,按住shift連接到mysql字段轉(zhuǎn)換

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

(3)mysql排序記錄

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

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

?(5)sqlserver的字段選擇

?(6)sqlserver的排序記錄

?(7)合并記錄

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

連接-合并記錄-雙擊編輯-選擇兩個(gè)數(shù)據(jù)源

這里的標(biāo)志字段可以用默認(rèn)的字段,合并之后會(huì)以此字段為增刪改的依據(jù)。

然后點(diǎn)擊獲取關(guān)鍵字段-獲取值字段,其中關(guān)鍵字段是id唯一鍵,關(guān)鍵值是除了id唯一鍵之外的值。

?(8)數(shù)據(jù)同步

輸出-數(shù)據(jù)同步-選擇目標(biāo)數(shù)據(jù)庫和目標(biāo)表-批量更新-選擇關(guān)鍵字為id,關(guān)系為是否相等-更新字段為所有字段,會(huì)默認(rèn)帶著上面的標(biāo)志字段,記得去掉

?然后切換到高級(jí)頁面,將操作設(shè)置為對(duì)應(yīng)下面

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

?6、執(zhí)行轉(zhuǎn)換

點(diǎn)擊右上角三角號(hào)執(zhí)行一次轉(zhuǎn)換,下面日志顯示執(zhí)行成功則沒有問題。

可以通過修改sqlserver的數(shù)據(jù),然后執(zhí)行一次后,查看mysql的數(shù)據(jù)是否同步成功。

?然后保存,會(huì)在磁盤下保存一個(gè)kjb后綴名的文件

7、新建作業(yè)

通用-作業(yè)-拖拽-雙擊編輯-設(shè)置執(zhí)行的時(shí)間間隔-下面設(shè)置的是每10秒重復(fù)一次

拖拽一個(gè)轉(zhuǎn)換-雙擊編輯

選擇上面保存的ktr轉(zhuǎn)換的文件

將START與轉(zhuǎn)換之間連接上。

8、運(yùn)行作業(yè)

點(diǎn)擊作業(yè)的左上角三角號(hào)就會(huì)持續(xù)運(yùn)行,點(diǎn)擊正方形就會(huì)停止運(yùn)行

9、部署運(yùn)行

這里是在Windows服務(wù)器上,可以直接連同整個(gè)程序以及轉(zhuǎn)換文件和作業(yè)文件同樣的再服務(wù)器上部署一套。

或者是將kuttle的整個(gè)目錄pdi-cd-7.1里面,復(fù)制上面新建的轉(zhuǎn)換文件ktr以及作業(yè)文件kjb

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

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

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

?然后修改bat腳本的內(nèi)容

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

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

雙擊bat文件運(yùn)行

沒有報(bào)錯(cuò)則部署成功。

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。