-
1 # PM蘇木
-
2 # Discovery2021
ETL的過程我想很多人都談過了,最近我在比較SSIS,OWB和infomatica,結合以前的專案,加深了我對ETL過程的理解和認識。
其實這三種工具,除去應用平臺以為,大同小異,各有利弊。今天我想分享一下我的經驗,主要在擴充套件和維護方面。
1:資料落地和ELT
很多人談到資料落地的概念,說白了,就是ODS或者DWH中,有資料input或者output的,都先把要操作的資料放到臨時表裡面,而資料傳輸的兩端的表的結構都是一樣的,這樣的操作比較便捷,幾乎不用考慮轉換的問題。
同時我們還要提到的就是ELT,ELT和ETL其實各有好處,一個是用工具來轉化資料,一個用SP,工具一般都是一行行的處理,而SP一般都是一列列的處理。我個人認為ELT,用SP處理資料比較好,因為我們的測試或者將來的維護,都需要經常改變表間的mapping關係。而SP只是需要在資料庫裡面做一些修改和操作,而且還比較容易除錯,去發現問題的根源。
2:指令碼檔案
這裡的指令碼檔案可以分為FTP script,table Script,Stored proc Script還有Shell指令碼,不管是dos shell 還是unix shell,這些都是一些作業系統的控制檔案,我們可以暫時不談。為什麼要談談這些指令碼了,其實我們在設計和開發結構的時候很簡單,但是我們修改的時候,就比較麻煩了,特別是ETL工具在開啟一個package的時候,需要載入和驗證,有的時候很慢很慢,如果我們只是修改一些小引數的話,花長時間就不值得,如果我們將指令碼檔案都放在一起的話,那麼開啟txt或者bat檔案就很方便。還有就是我們對於一些臨時表,有的時候需要將資料全部刪掉,我們可以用 truncate table,有的時候用drop和create也是不錯的選擇。
當然,如果用指令碼檔案的話,主機的安全性一定要好,而且對於賬號的表級操作許可權也要分配好。
3. 策略表
我們按照不同的頻率,定時執行package,有的時候可能遇到error,有的時候可能由於其他的問題不能按時執行。其實我們可以做一張策略表,儲存每個package的執行的時間規則,然後每天開始執行前,將所有的package初始化出當天的執行情況,記錄開始結束時間,還有成功標記。執行時,可以先讀取上一個執行日的執行情況,將未完成的package,延續的到當日。
-
3 # Cloudapi
介紹一下簡單易用的ETL產品——RestCloud,是國內商業級輕量級的ETL工具,是谷雲科技基於微服務架構完全自主研發和創新的新一代ETL資料交換產品。跟kettle是差不多的。
透過Web介面的拖、拉、拽即可快速構建ETL流程,支援資料線上預覽、流程全過程除錯,Web介面追蹤除錯日誌等功能。
回覆列表
介紹一下我瞭解的ETL的常用工具:DataX、Datastage、Informatica、Kettle、DataPipeline。
阿里開源軟體:DataX
DataX 是一個異構資料來源離線同步工具,致力於實現包括關係型資料庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構資料來源之間穩定高效的資料同步功能。
Kettle開源軟體:水壺(中文名)
Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,擴充套件性好,資料抽取高效穩定。主從結構,沒有高可用。不支援資料的實時同步,也不支援斷點續傳。
IBM公司商業軟體:Datastage
最專業的商業ETL工具,價格較貴,但是大資料量下處理速度也能保持較快的處理速度和穩定性。實時監控做的也很好,可以看到資料抽取的情況,執行到哪一步,很直觀。售後技術支援強大。
商業軟體:Informatica
專業的ETL工具,價格上比Datastage便宜一點,需要伺服器和客戶端的安裝,處理速度上和Datastage相當。分散式部署,支援實時,但是效率不高。技術支援主要在美國,所以國內用的較少。
國內:DataPipeline
國內收費工具,相比DataX,DataPipeline有視覺化的過程監控,提供多樣化的圖示,輔助運維,故障問題實時預警。而DataX需要依賴工具日誌定位故障問題。支援實時性,DataX則是定時的。支援斷點續傳,DataX則不支援。架構上也是分散式的,支援水平擴充套件。
其中拓展性比較好的就是水壺啦