如何進(jìn)行Kettle的數(shù)據(jù)同步

這篇文章給大家介紹如何進(jìn)行Kettle的數(shù)據(jù)同步,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)堅(jiān)持網(wǎng)頁(yè)設(shè)計(jì),我們不會(huì)倒閉、轉(zhuǎn)行,已經(jīng)持續(xù)穩(wěn)定運(yùn)營(yíng)10年。專業(yè)網(wǎng)站設(shè)計(jì)公司技術(shù),豐富的成功經(jīng)驗(yàn)和創(chuàng)作思維,提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。我們不僅會(huì)設(shè)計(jì)網(wǎng)站,更會(huì)營(yíng)銷(xiāo)型網(wǎng)站。幫助中小型企業(yè)在“互聯(lián)網(wǎng)+"的時(shí)代里通過(guò)推廣營(yíng)銷(xiāo)傳播路線轉(zhuǎn)型升級(jí),累計(jì)幫助多家客戶實(shí)現(xiàn)網(wǎng)絡(luò)營(yíng)銷(xiāo)化,與我們一起攜手共創(chuàng)未來(lái)!

之前的業(yè)務(wù)需求是實(shí)現(xiàn)數(shù)據(jù)的增量同步,具體描述為:新增數(shù)據(jù)插入,變化數(shù)據(jù)更新,我使用輸出中的插入更新即可。

現(xiàn)在業(yè)務(wù)提出新的需求:除前面描述外,還要實(shí)現(xiàn)源表數(shù)據(jù)刪除時(shí),目標(biāo)表數(shù)據(jù)同樣刪除。
      雖然我極其不推薦這樣做,原因有三:
            (1)數(shù)據(jù)庫(kù)不應(yīng)該真正存在delete操作,如果確實(shí)要?jiǎng)h除一條數(shù)據(jù)的話,理論上應(yīng)該在數(shù)據(jù)庫(kù)中設(shè)置標(biāo)志位,執(zhí)行update,不向前端業(yè)務(wù)顯示,但數(shù)據(jù)仍存在數(shù)據(jù)庫(kù)中,便于追溯和回退;
            (2)ETL實(shí)現(xiàn)刪除數(shù)據(jù)的操作,一旦出現(xiàn)問(wèn)題,很難查找和解釋原因,容易出現(xiàn)互相扯皮和推諉現(xiàn)象;
            (3)我需要重新開(kāi)發(fā)ETL。雖然個(gè)人難以接受,奈何業(yè)務(wù)需求是天,我也得硬著頭皮去完成,之后可能發(fā)生的事情,只能“走一步看一步”,聽(tīng)天由命了。記錄關(guān)鍵過(guò)程如下:

1.轉(zhuǎn)換的核心對(duì)象共4個(gè),包括2個(gè)輸入、1個(gè)合并記錄和1個(gè)數(shù)據(jù)同步

如何進(jìn)行Kettle的數(shù)據(jù)同步

【表輸入在輸入中找:合并記錄在鏈接中;數(shù)據(jù)同步在輸出中】分別設(shè)置源數(shù)據(jù)和目標(biāo)數(shù)據(jù),其中記錄數(shù)量限制為0就是全部同步。
       如何進(jìn)行Kettle的數(shù)據(jù)同步

2.合并記錄設(shè)置,要注意舊數(shù)據(jù)源是要同步的數(shù)據(jù),也就是目標(biāo)數(shù)據(jù);新數(shù)據(jù)是來(lái)源數(shù)據(jù),也就是被同步的數(shù)據(jù)。標(biāo)志字段隨便起名即可(要符合命名規(guī)范)。匹配的關(guān)鍵字段最好是主鍵(唯一值勉強(qiáng)也行),數(shù)據(jù)字段是要同步的列(注意,一定要包括關(guān)鍵字段,否則目標(biāo)數(shù)據(jù)該列就是空值,千萬(wàn)注意?。。?。如下圖:

如何進(jìn)行Kettle的數(shù)據(jù)同步
3.合并完成后,標(biāo)志字段的值有4種,分別是:

Identical” : 關(guān)鍵字段在新舊數(shù)據(jù)源中都存在,且域值相同

“changed” : 關(guān)鍵字段在新舊數(shù)據(jù)源中都存在,但域值不同

new” :  舊數(shù)據(jù)源中沒(méi)有找到該關(guān)鍵字段

deleted”:  新數(shù)據(jù)源中沒(méi)有找到關(guān)鍵字段

則數(shù)據(jù)同步的配置需要注意以下幾點(diǎn):

(1)  不論是查詢的關(guān)鍵字,還是更新字段,都要把標(biāo)志字段去掉(注意,去掉標(biāo)志字段?。?;其他字段根據(jù)業(yè)務(wù)需求,進(jìn)行設(shè)置;

(2)  高級(jí)標(biāo)簽中的規(guī)則要定義好,否則會(huì)報(bào)“It was not possible to find operation field [null] in the input stream!”錯(cuò)誤。

如何進(jìn)行Kettle的數(shù)據(jù)同步 

如何進(jìn)行Kettle的數(shù)據(jù)同步

4.根據(jù)需要是定時(shí)操作,還是手工操作,如果定時(shí)的話,重新建個(gè)作業(yè),設(shè)定開(kāi)始相關(guān)的配置即可。

如何進(jìn)行Kettle的數(shù)據(jù)同步

另外需要強(qiáng)調(diào)一下,如果源數(shù)據(jù)和目標(biāo)數(shù)據(jù)字段不一樣的話,來(lái)源數(shù)據(jù)可以用as來(lái)改變列名,并一定注意名稱和列順序一致。

 如何進(jìn)行Kettle的數(shù)據(jù)同步 

關(guān)于如何進(jìn)行Kettle的數(shù)據(jù)同步就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文題目:如何進(jìn)行Kettle的數(shù)據(jù)同步
文章網(wǎng)址:http://bm7419.com/article42/jddjhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈外貿(mào)建站、定制網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)