更新時間:2022-09-01 來源:黑馬程序員 瀏覽量:
每個ETL工具都會有自己的設(shè)計原則,Kettle也不例外。Kettle的設(shè)計原則一共有7點,具體內(nèi)容如下。
1.易于開發(fā)
作為數(shù)據(jù)倉庫和ETL的開發(fā)者,如果只想把時間用在創(chuàng)建BI解決方案上,那么任何用于軟件安裝和配置的時間都是一種浪費。例如,為了創(chuàng)建數(shù)據(jù)庫連接,很多與Kettle類似的工具都要求用戶手工輸入數(shù)據(jù)庫驅(qū)動的類名和JDBC URL連接串,雖然用戶可以通過互聯(lián)網(wǎng)搜索到這些信息,但這明顯把用戶的注意力轉(zhuǎn)移到了技術(shù)方面,并非業(yè)務(wù)方面,而Kettle就是盡量避免這類問題的出現(xiàn)。
2.避免自定義開發(fā)
一般來說,ETL工具的作用是使復(fù)雜的事情變得簡單,簡單的事情更簡單。ETL提供了標準化的構(gòu)建組件滿足ETL開發(fā)人員不斷重復(fù)的需求,通過手工編寫Java代碼或Java腳本代碼實現(xiàn)一些功能,但是增加的代碼會給項目增加復(fù)雜度和維護成本,因此要盡量避免手工開發(fā),可組合使用已提供的組件完成任務(wù)。
3.所有功能都是通過用戶界面完成
對于“所有功能都能通過用戶界面完成”這一黃金準則也有幾個例外(如kettle.properties和shared.xmr文件就是兩個例外,不能通過Kettle界面修改這兩個配置文件,而是需要通過手工修改),如果不直接把所有功能通過界面的方式提供給用戶,那么就是在浪費開發(fā)人員的時間,也是在浪費用戶的時間。
4.沒有命名限制
ETL轉(zhuǎn)換里有各種各樣的名稱,如數(shù)據(jù)庫連接、轉(zhuǎn)換、步驟、數(shù)據(jù)字段、作業(yè)等都有一個名稱。若在命名時考慮到一些限制(如長度、選擇的字符),就會使工作變得煩瑣。ETL只需要足夠智能化的處理ETL開發(fā)人員設(shè)置的各種名稱。
5.透明
如果有ETL工具需要了解轉(zhuǎn)換中某一部分工作是如何完成的,那么這個ETL工具就是不透明的。若想實現(xiàn)ETL工具里的某一個功能,就需要準確地知道這個功能是如何完成的。允許用戶看到ETL過程中各部分的運行狀態(tài)也很重要,這樣可以加快開發(fā)速度,降低維護成本。
6.靈活的數(shù)據(jù)通道
對ETL開發(fā)者來說,創(chuàng)造性極為重要,不但可以讓你享受到工作的樂趣,而且還能讓你以最快的方式開發(fā)出ETL方案。Kettle在數(shù)據(jù)的發(fā)送、接收方式上設(shè)計得盡可能靈活。Kettle可以在文本文件、關(guān)系數(shù)據(jù)庫等不同數(shù)據(jù)源之間復(fù)制和分發(fā)數(shù)據(jù)。
7.只映射需要映射的字段
在一些ETL工具里可以看到數(shù)百行的輸入和輸出映射,對于維護人員來說,這是一個很強大的功能。在ETL開發(fā)過程中,字段在不斷地變化,大量的字段映射也會增加維護的成本,而Kettle的一個核心原則是將ETL流程中所有未指定的字段自動傳遞到下一個組件中,因此極大地降低了維護的成本。也就是說,輸入的字段會自動出現(xiàn)在輸出流中,除非中間過程專門設(shè)置了終止某個字段的傳遞。