這節(jié)主要說Kettle的數(shù)據(jù)庫連接方式和常見問題的解決方案。
你可能會問,數(shù)據(jù)庫連接有什么好說的?一看就會呀,為什么作為產(chǎn)品經(jīng)理,需要將數(shù)據(jù)庫連接作為一節(jié)單獨說?
因為回憶起來也都是淚啊!!!!!!
說正經(jīng)的,對于產(chǎn)品來說,Kettle的數(shù)據(jù)庫連接方式還是有很多的借鑒意義的。
價值一:科普價值,不要被開發(fā)鄙視到塵埃里
你系統(tǒng)地知道有哪些類型的數(shù)據(jù)庫么?你知道有幾種數(shù)據(jù)庫的連接方式么?你知道不同數(shù)據(jù)庫類型的連接參數(shù)有哪些么?你知道如何更好地進行數(shù)據(jù)源管理么?
坦白說,在做TO C產(chǎn)品時,距離數(shù)據(jù)庫比較遠,自己也沒有怎么實操過連接數(shù)據(jù)庫去查看數(shù)據(jù);在轉(zhuǎn)到TO B產(chǎn)品時,每天都和數(shù)據(jù)打交道,數(shù)據(jù)庫相關(guān)的知識不可缺少。
而kettle作為工具集,可以管理不同數(shù)據(jù)庫的數(shù)據(jù),以上的疑問,你都可以獲得答案。
價值二:專業(yè)價值,為TO B 產(chǎn)品的數(shù)據(jù)庫模塊產(chǎn)品設(shè)計方式提供參考
數(shù)據(jù)處理工具,經(jīng)常涉及到數(shù)據(jù)庫管理,其中,數(shù)據(jù)庫的添加/編輯/測試是基礎(chǔ)功能,一般也有通用的設(shè)計規(guī)范。作為產(chǎn)品經(jīng)理來說,kettle的設(shè)計也是值得借鑒的。
價值三:應(yīng)用價值,熟練使用Kettle數(shù)據(jù)庫連接方式提升工作效率
工具主要是提升效率,在工具類產(chǎn)品產(chǎn)品經(jīng)理的日常工作中,還需要對業(yè)務(wù)方進行產(chǎn)品的培訓(xùn),使用Kettle工具更高效地進行操作,是工具使用業(yè)務(wù)方需要掌握的,也是產(chǎn)品需要同步到位的。
言歸正傳,下文將介紹從Kettle Spoon客戶端的數(shù)據(jù)庫連接方式、關(guān)于全局數(shù)據(jù)源和局部數(shù)據(jù)源、可能出現(xiàn)的問題和解決方案等模塊進行介紹。
一、Kettle Spoon客戶端的數(shù)據(jù)庫連接方式
打開Kettle Spoon,可以在【文件】-【數(shù)據(jù)庫連接】、【DB連接】等入口進行數(shù)據(jù)庫的連接。? ??
在數(shù)據(jù)庫連接界面,我們可以看到創(chuàng)建數(shù)據(jù)源時需要配置相應(yīng)的參數(shù),這塊主要根據(jù)數(shù)據(jù)庫類型進行相應(yīng)的配置。可是有2種方式來獲取數(shù)據(jù)庫。
方式一:數(shù)據(jù)庫表連接信息固定值輸入
一般情況下,會選擇【一般】,輸入【連接名稱】,選擇【連接類型】如MySQL,連接方式默認為【Native(JDBC)】,不同的連接類型需要配置的具體參數(shù)略有不同。
填寫好數(shù)據(jù)庫連接信息后,點擊”測試”按鈕,進行數(shù)據(jù)庫連接的驗證。
方式二:數(shù)據(jù)庫表連接信息變量值選擇
kettle中如果輸入框末尾出現(xiàn)$符號標識說明此處可以使用變量參數(shù)來定義,數(shù)據(jù)庫連接的主機名稱、數(shù)據(jù)庫名稱、端口號、用戶名、密碼等配置信息即可選擇變量值。
變量值的選擇需要進行如下步驟:
1、在安裝目錄下找到“.kettle”文件夾,找到kettle.properties文件;
2、使用編輯器打開kettle.properties文件,在文件底部添加新的數(shù)據(jù)庫連接信息后保存文件。
變量信息示例:
kettle_mysql_host=10.11.255.60
kettle_mysql_port=63306
kettle_mysql_database=kett***
kettle_mysql_username=root
kettle_mysql_password=Encrypted************09409fe62d2b38cff
說明:
等號“=”左側(cè)為變量名稱,右側(cè)為變量值。變量名稱需要與已有的數(shù)據(jù)庫連接中變量名稱不同。
除了在“.kettle”文件夾下找到kettle.properties文件進行編輯之外,還可以在Spoon 的【編輯】-【編輯kettle.properties】進行編輯。
注意:對于ETL運行過程中,數(shù)據(jù)庫也是分環(huán)境的,可以根據(jù)不同的數(shù)據(jù)庫環(huán)境下的連接信息,kettle.properties保存多份連接信息,方便切換環(huán)境進行數(shù)據(jù)庫連接。
3、進入數(shù)據(jù)庫連接界面,在輸入框中添加存在于kettle.properties文件的變量名。
變量名必須事先在kettle.properties文件定義,可以通過以下2個操作來添加。
????變量名輸入,注意輸入格式為“${變量名}”
????變量名選擇,使用CTRL-ALT-SPACE選擇一個變量
4、填寫好數(shù)據(jù)庫連接信息后,點擊”測試”按鈕,進行數(shù)據(jù)庫連接的驗證。
二、關(guān)于全局數(shù)據(jù)源和局部數(shù)據(jù)源
Kettle中對于數(shù)據(jù)源有作用域的定義,也就是說有局部數(shù)據(jù)源和全局數(shù)據(jù)源兩種。
?從上文可以看到,在kettle.properties文件中定義好的數(shù)據(jù)庫信息,可以作為全局數(shù)據(jù)源來使用,在后續(xù)的轉(zhuǎn)化腳本和工作腳本可以使用數(shù)據(jù)庫信息。
關(guān)于變量的配置,有2種,一種是永久性,一種是臨時性,永久性是存在于用戶名稱下面的.kettle文件夾中的kettle.properties文件,適用于所有的轉(zhuǎn)化文件和工作文件。
臨時性的變量配置是屬于某個配置的轉(zhuǎn)換文件或工作文件。
點開后可以進行環(huán)境變量配置,如下圖。
另外,數(shù)據(jù)庫配置成功后默認情況下數(shù)據(jù)源作用域為局部數(shù)據(jù)源,也可以通過右擊【DB連接】中的數(shù)據(jù)庫名稱進行【共享】操作,將該數(shù)據(jù)源變更為全局數(shù)據(jù)源。
那如何查看數(shù)據(jù)源是否為全局數(shù)據(jù)?
有兩種方式,一種是直接打開轉(zhuǎn)化腳本或者作業(yè)腳本查看數(shù)據(jù)源,黑色粗體字為已共享的全局數(shù)據(jù)源;
另一種是直接打開當前用戶下.kettle文件夾中的shared.xml文件是否有對應(yīng)的數(shù)據(jù)源名稱,如果有則表示是全局數(shù)據(jù)源名稱。
三、數(shù)據(jù)庫連接的可能出現(xiàn)的問題和解決方案
顯示測試連接參數(shù)信息,如果連接錯誤則會顯示JAVA連接錯誤信息,一般連接錯誤會是以下幾種情況:
問題一:? 缺少數(shù)據(jù)庫驅(qū)動包
解決方案可以參考:Kettle連接MySQL數(shù)據(jù)庫出現(xiàn)問題,連接不上
問題二:數(shù)據(jù)庫無法正常訪問
解決方案:檢查數(shù)據(jù)庫是否正常訪問,正常訪問后重試
問題三:?數(shù)據(jù)庫連接參數(shù)配置錯誤
解決方案:檢查數(shù)據(jù)庫連接參數(shù),注意空格等,密碼不要直接快捷鍵粘貼,而是右鍵粘貼等
以上幾種情況僅供參考。
四、kettle.properties變量未生效的原因
kettle.properties文件中的數(shù)據(jù)庫變量名在界面上未出現(xiàn),可能有如下幾種情況:
問題一、.kettle文件夾中的kettle.properties文件不在C盤用戶文件夾下,導(dǎo)致未讀取到kettle.properties
解決方案:將.kettle文件夾復(fù)制一份到【C盤】-【用戶】文件夾下
問題二:Spoon客戶端開啟中,沒有獲取到最新的kettle.properties信息
解決方案:重啟spoon后,再打開。
以上是Kettle Spoon數(shù)據(jù)庫連接的分享,雖然數(shù)據(jù)庫連接不是很難,網(wǎng)上的教程也比較多,但是在實際操作過程中,還是會遇到問題,以上分享算是最新的總結(jié)吧,希望可以給你幫助。
參考文件: