您現在的位置是:首頁 > 運動

Spring Boot整合DataX同步資料

由 鄉村卷王的程式設計之路 發表于 運動2023-02-03
簡介首先引入Jar由於DataX相關的包在Maven倉庫中不存在,那麼只有上傳到個人倉庫或者直接引用本地包,我選擇了後者,這幾個包在編譯好的datax目錄中可以找到

資料庫可以刪嗎

我們系統的基礎資料存放在

EBS

中,的有個基礎資料同步功能,因為變化頻率比較低,所以採用定時加手動的方式同步,每日凌晨三點由ETL工具同步到我們中間表,然後儲存過程再處理資料。手動則是程式呼叫

Kettle

指令碼同步資料到中間表沒然後執行儲存過程。剛開始上線時,量較小,也就幾萬條資料,手動同步比較快,越到後期,資料量逐漸增多,達到一百多萬的基礎資料,透過

Kettle

同步一次得花十多分鐘。業務方實在無法忍受,要求我們必須最佳化。

當初使用

Kettle

的原因是處於簡單、易操作,透過視覺化介面先設計好指令碼,獲取到

ktr

的指令碼檔案,然後在程式中引入

kettle-engine

metastore

kettle-core

這三個

kettle

相關的包即可在Java程式中執行

kettle

ktr

指令碼。當資料量上來後,

Kettle

確實有些力不從心了,所以,我們就換成了阿里開源的

DataX

。那我們就來嘗試下如何整合到程式中吧?

我這邊的編譯環境是:

Windows10

JDK1。8

Apache Maven 3。6。3

,執行環境是

Linux version 3。10。0-957。el7。x86_64

,Python為Linux自帶的

2。7。5

,JDK為1。8。

先去

Github

下載原始碼到本地使用

mvn -U clean package assembly:assembly -Dmaven。test。skip=true

進行編譯。

Spring Boot整合DataX同步資料

Spring Boot整合DataX同步資料

編譯好的壓縮包有

1。32GB

,我們將其上傳到伺服器上。上傳後解壓,如果本機有

Python

環境,則不需上傳。先用

Python

生成同步指令碼模版,

python datax。py -r {YOUR_READER} -w {YOUR_WRITER}

,我這裡是從

Oracle

Oracle

,進入到

datax->bin

目錄中執行如下指令碼:

Spring Boot整合DataX同步資料

最終會生成如下模版,

Spring Boot整合DataX同步資料

我們根據自己的情況,修改即可。接下來,就是在

Spring Boot

中呼叫

DataX

來同步資料了。首先引入

Jar

Spring Boot整合DataX同步資料

由於

DataX

相關的包在

Maven

倉庫中不存在,那麼只有上傳到個人倉庫或者直接引用本地包,我選擇了後者,這幾個包在編譯好的

datax

目錄中可以找到。接下來,我們編寫呼叫程式碼:

Spring Boot整合DataX同步資料

我來看一下執行效果:

Spring Boot整合DataX同步資料

Spring Boot整合DataX同步資料

可以看到

1335288

條資料,

60

秒便同步完成。相較之前的

Kettle

,同步速度提升了8-10倍,而且,可以按不同組織進行同步,每個組織的資料最多也就十多萬,透過

DataX

同步也就十幾秒,業務也能夠接受這個速度。為什麼非要把

Kettle

換為

DataX

,這就是我自身原因,不知如何對

Kettle

進行調優來提升同步速度,有經驗的朋友還請告知。

推薦文章

  • 橫板卷軸動作遊戲《深沉之火》將於11月30日在Steam發售

    橫板卷軸動作遊戲《深沉之火》將於11月30日在Steam發售遊戲頁面: 遊戲簡介⦁自由選擇外形、出身,關卡過程中靈活調整職業、屬性⦁探索隱藏元素,揭示世界真相,任何可疑細節都別錯過⦁攀爬、衝刺、開啟機關,尋找隱藏路線,沉浸式受苦體驗⦁套裝搭配銘火多重選擇,因地適宜,定製最順手武器、防具⦁數十個原創B...

  • 一粒毫末如何起兮於大風?

    以最新的AI DAY為例,毫末智行的董事長張凱以《毫末1000天:新週期,新徵程》為題,回顧了毫末成立至今成功穿越創業公司生死線,躋身為中國自動駕駛技術創業公司新標杆的成長曆程與經驗,並分享了對智慧駕駛宏觀趨勢的判斷,以及毫末2022年三大...

  • 三大運營哪家好,大家會使用哪家的手機卡?

    有的時候也是降低一下價格來吸引更多的客戶可以說雙方也是想出了很多的辦法,也是在不斷的競爭,在生活當中大家應該也是能聽到兩個行業的詆譭或者競爭也是常有的事情,在我國使用者最多也是移動通訊但是給大家的影響並不是很好的,現在很多人即使都在用移動的...