溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kettle:Oracle多表格批量同步數(shù)據(jù)=》mysql

發(fā)布時間:2020-08-08 10:39:43 來源:ITPUB博客 閱讀:421 作者:newknight 欄目:MySQL數(shù)據(jù)庫

Oracle 多表格批量同步數(shù)據(jù)=》MYSQL

場景

多張Oracle表格,通過輪詢自動同步數(shù)據(jù)到mysql。

避免每個Oracle表格數(shù)據(jù)=》mysql都做一個轉(zhuǎn)換,產(chǎn)生大量轉(zhuǎn)換,難以管理和調(diào)整。


主要通過kettle變量,循環(huán),字段名自動匹配,以及Oracle、mysql數(shù)據(jù)字典來實現(xiàn)。

初步完成Oracle表格=》mysql的初始化同步,后續(xù)增加增量同步,DDL同步,異常處理操作。



基本步驟

1. 在mysql里查找test庫下有哪些表格,輸出到結(jié)果記錄

2. 從結(jié)果記錄里面每次取一行,設(shè)置變量

3. 針對每次使用的變量值,去oracle數(shù)據(jù)源里生成對應(yīng)的表輸入(通過變量生成)

4. 把變量賦給表輸出組件的表名

5. 表輸出其他內(nèi)容不做制定,因為表名和字段都和源端oracle是一樣的

6. 針對每個“輸出到結(jié)果記錄”做循環(huán),插入每個oracle表格數(shù)據(jù)到mysql

 

總體流程

Kettle:Oracle多表格批量同步數(shù)據(jù)=》mysql

步驟1:Tables in mysql(Job)

Kettle:Oracle多表格批量同步數(shù)據(jù)=》mysql

步驟2:insert into mysql(Job)

Kettle:Oracle多表格批量同步數(shù)據(jù)=》mysql

步驟2.1 set tablename(tranfomation)

Kettle:Oracle多表格批量同步數(shù)據(jù)=》mysql

步驟2.2:insert data into mysql(tranfomation)

  Kettle:Oracle多表格批量同步數(shù)據(jù)=》mysql

后續(xù)問題:

l    如何做增量的數(shù)據(jù)遷移

1.        針對oracle這端有時間字段的表格

2.        記錄每次遷移的系統(tǒng)時間

3.        增量時間是》上次系統(tǒng)時間 and 《本次系統(tǒng)時間

每張表格時間字段名字可能不一樣

所以要維護(hù)一張表格時間字段記錄(表名,時間字段名)

4.        每次生成表輸入時,也參照生成表名變量的方式,獲取時間字段名,用在表輸入的sql里

5.        表輸出這端,會復(fù)雜一些,包括刪除、插入、更新等等操作

l    無時間字段或流水號的表格同步

l   如何做DDL同步:

1.       獲取Oracle和mysql的數(shù)據(jù)字典

2.       比較表名和字段名

3.       比較字段數(shù)據(jù)類型

4.       注意數(shù)據(jù)類型映射(如oracle的varchar2《=》MySQL的varchar,oracle的data《=》MySQL的timestamp)

5.       Mysql端的表格和字段同步


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI