相信大部分DBA都會遇到異質資料轉換的問題,所以我將介紹微軟的ETL工具"SSIS"在異質資料轉換上的改善。
由於近年金融機構整併風潮,所以台灣資料整合市場也比以前來的活絡
各大RDBMS廠商也極力開發資料整合套裝軟體,或合併其他優秀整合軟體公司來滿足客戶需求
就小弟知道如IBM併購Ascential、Oracle併購Sunopsis,當然在ETL龍頭寶座還是Informatica莫屬
,但該公司也是很注意這些後起之秀的威脅,OK!相關故事就到這裡了,畢竟我不太會說歷史淵源~~。
基於專案需求小弟最近在Survey相關ETL工具,專案資料來源有Access、Excel、SQL SERVER2000和Oracle
早期摸過ODI(Oracle Data Integrator)可說印象深刻(可不是好用才深刻~XD)
Oracle 2008年併購Sunopsis並推出ODI套裝軟體準備搶佔資料整合市場,但ODI整體我想只有軟體名稱改了
大部分都忠於Sunopsis架構及功能(連預設密碼都用Sunopsis.....Oracle似乎有點懶)
可能小弟已經習慣VS所以用起來只有"痛苦"二字可形容
,外加Oracle white paper喜歡搞得很複雜(頁數多重點少~~他X的!沒想到外國人也喜歡寫作文章)
所以這次就來體驗SSIS2008(官方介紹)在ETL方面的效果
是否能符合小弟最大原則~Simple、faster and High Performance
簡單測試Oracle data轉移到SQL2008
Source DB:Oracle 11g x64(11.7),筆數:117655
Destination DB:SQLSERVER 2008 x64
Using Microsoft Connector for Oracle by Attunity(須另外下載安裝)
在資料流程簡單拉出Oracle Source和Sql Destination兩個元件
編輯oracle source
編輯sql destination
執行(F5)
花費時間:107.375秒
Using OracleClient Data Provider
編輯ADO.NET source
編輯SQL SERVER destination
執行(F5)
花費時間:278.25秒
Using Oracle provider for OLE DB
編輯OLE DB source
編輯SQL SERVER destination
執行(F5)
花費時間:249.11秒
總表一覽
結論:SSIS看來小弟比較上手,當初使用ODI實作異質資料轉換(one by one)我就搞了快一個禮拜(汗顏><)
但使用SSIS這需求只花我一天不到時間(人是習慣的動物一點都不假~XD)
SSIS符合小弟最大宗旨:simple and faster
至於Performance後續得在追蹤測試(不知道超過5百萬以上資料會如何??)。
補充:
測試筆數:5392572
花費時間:473.187秒,一秒約可以匯入11400筆,Attunity果然表現不凡
不過應該還可以更快,Disable PK、Unique index和trigger同時依CPU資源調整parallel參數,我想應該可以飛起來了
至於記憶體的用量還滿兇的,不過還好記憶體便宜所以一點也不痛。