關於ETL工具的思考
通常認為ETL就是資料抽取,轉換,載入的過程,完全正確.就像資料庫就是儲存和管理資料的工具一樣,然而資料庫並不全部是資料的儲存,最重要的是管理,即資料的併發性一致性可恢復性管理,包括一系列的程式和記憶體的管理等等.ETL工具本身也是同樣的問題.如果只是抽取轉換載入,相信透過PowerBuilder的資料管道技術並加以封裝或者一系列的語言工具編碼可以做到,並非很難的事情.
之所以思考,是因為閱讀了一下
簡單的總結一下:
Ø 後設資料管理,不管透過DBMS進行儲存也好,透過XML或者自己的管理系統也好.後設資料的管理是必須的,提供了一個視覺化的資料字典.
Ø 和配置工具的整合,或者內建一個配置庫管理工具.
Ø 專案化管理和整合環境,統一對系統內的工作流和任務進行管理
Ø 任務包中都包含源資料,目標資料的管理,其中也包括關聯式資料庫,平面檔案,XML檔案,WebService,COBOL等檔案的管理
Ø 任務包中提供了一系列的排序,轉換,合併,連線,過濾,聚合,查詢表,複製,分裂,條件分割等等一些通用的資料轉換.
Ø 資料流架構和流水線即工作流管理,幾乎所有的ETL工具都是根據時序進行任務流的處理,這也符合資料倉儲的過程化處理要求.其中包括錯誤處理方式,錯誤報表,並行處理,時序等待等等.
Ø 可伸縮硬體環境支援,最大限度的利用硬體的支援.
Ø 並行支援,發揮DBMS的優勢,或者透過內建的記憶體管理進行處理.
不過我有些懷疑ETL的功效,據權威人士統計80%的時間和IO消耗是集中在ETL的抽取和載入環節,而抽取和載入的速度是由DBMS或者其他資料來源所決定的,也就是說無論怎麼最佳化,ETL工具的最佳化也只有20%的餘地.有個玩笑:ETL工具執行的效率肯定比不上最好的程式設計師寫的程式碼的效率,但是起碼要比最差的程式設計師寫的程式碼要強.
也許ETL工具本身就是一個管理的平臺,它的意義在於遮蔽底層編碼的細節和異構資料來源,透過圖形化的方式實現資料流程的排程,從而提供開發和管理上的效率,而並非程式執行效率.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6517/viewspace-145529/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於寫作工具和平臺的思考
- ETL設計與思考
- 關於面試的思考面試
- 關於Ioc的思考
- ETL工具
- 國產ETL工具 etl-engine
- ETL 是什麼 ETL 工具有哪些 ETL 工具對比 engine
- 關於難點的思考
- 關於“開源”的思考
- 關於語言的思考
- ETL介紹與ETL工具比較
- 關於中介軟體的思考
- 關於限流實現的思考
- 關於寫部落格的思考
- 關於Fork和Malloc的思考
- 關於Flux,Vuex,Redux的思考VueRedux
- 關於測試流程的思考
- 關於前端的思考與感悟前端
- 關於技術分享的思考
- 關於創業的思考薦創業
- 關於產品的若干思考
- 關於工廠模式的思考模式
- 關於研發效能提升的思考
- 關於運營邊界的思考
- 關於-生物資訊-入門-的思考
- 關於近期幣安事件的思考事件
- 關於同步的一點思考-下
- 最近關於工作的幾點思考
- 關於git flow的一點思考Git
- 關於知識付費的思考
- 關於 PHP 框架的簡單思考PHP框架
- 關於PWA落地問題的思考
- 關於json的幾點思考JSON
- 關於系統高可用的思考
- 關於Rich Client設計的思考client
- 關於設計原則的思考
- 關於Java棧與堆的思考Java
- 關於多維程式的思考 (轉)