此篇說明對應的kettle版本是6.1,實際使用時7.x應該也是一樣的。 一、 kettle開發流程(規範步驟,防止出錯) (一) Kettle設置檢查 如果不加一下配置項,數據轉換後中文會出現亂碼,很難處理。 本地連接資源庫:配置項 defaultFetchSize 500 useCursorFe ...
此篇說明對應的kettle版本是6.1,實際使用時7.x應該也是一樣的。
一、 kettle開發流程(規範步驟,防止出錯)
(一) Kettle設置檢查
資源庫連接
如果不加一下配置項,數據轉換後中文會出現亂碼,很難處理。
本地連接資源庫:配置項
defaultFetchSize 500
useCursorFetch true
characterEncoding UTF-8
useUnicode true
(二) Kettle註意事項
1、每個trans、jobs的名稱都應該和文件名一致。在使用資源庫的時候,不是按照文件名生成對象,而是按照名稱屬性生成。{所以如果有名稱屬性相同的就會衝突}
2、資源庫方式trans相對job的位置只能通過圖中下麵的一種方式(相對位置)。而不能通過設置trans文件位置的方式(因為是資源庫,並不是真的文件)。
(三) 資源庫方式開發
1、從線上導出一個job(包含了資料庫的連接等信息),直接導出成整資源庫的文件。
2、把這個文件資源庫導入到03測試庫。
3、把這個資料庫連接信息dataCenters對應的ip改成04上的開發庫(只改一個ip,其他連接信息是一致的)。
4、在這個庫上進行相關開發操作。
二、 上線流程
5、開發完成需要上線,直接把前面的資源庫的ip地址換成線上ip地址即可。
6、把開發庫上其他的東西都刪掉,只保留新開發的內容。
7、然後導出成整個文件的資源庫。把這個文件資源庫導入到線上。
(一) 安全流程
為了防止開發過程當中忘了改ip地址,直接連到生產庫去,或者把生產庫上的連接地址衝掉了。這裡加上一個流程:
每次開發:從線上導資源庫到本地先導入到03的預發佈庫去。改完ip地址再導入到04的開發庫去。
每次上線的話:反過來。先導入到03庫,刪除不必要的東西,改完ip地址再導入到線上環境。
(二) 驗證流程
由於kettle的特殊性。需要在任何改動後做驗證。
1、 每次修改、新增了kettle任務。必須要把job、trans都一步一步點開。查看是否能在job里順利找到子trans。同時查看資料庫連接信息是否正確(有沒有被開發庫的設置衝掉)。
2、 給發新增的任務(job或者trans)在jenkins中增加對應的調度。(這裡建議調度名稱和調度要生成數據的表名一致)要有詳細的備註。
4、 每次修改、新增了kettle任務之後,都要在表結構同步好之後,jenkins中先構建一次任務,看看kettle任務是否能夠執行成功。
5、 任務跑成功之後,要連到生產庫查看對應數據是否正確。
6、 啟動web後要點開相應功能查看web展示上是否正確。
(三) 遷移註意事項
如果是新部署的kettle
kettle的資源庫,需要用圖形界面打開,手動再設置一遍(要先刪除/root/.kettle/目錄下的配置文件,重新配置;然後會重新生成配置文件,這時才能正確連上資源庫)