無論是大數據領域,仍是傳統的基礎數據領域,爲了解決數據的流轉問題,都須要各類類型,適應異構環境的小程序來作支撐,一般咱們稱之爲ETL做業。
一想到作數據倉庫項目,你們的第一反應就是去選型各類ETL工具。我我的以爲並非全部的應用場景都須要ETL工具。以前接觸過一個銀行的數據倉庫項目。他們是採用datastage作文本抽取,用oracle 存儲過程作數據轉換,還有一部分shell腳本作文件到達、磁盤清理和控制邏輯轉發的功能。而後用datastage的 sequence job 作業務翻牌控制。
這樣來看,他們的做業類型就相對單一。但datastage自己不太穩定,也知足不了他們的調度控制邏輯需求。因此他們採用了shell腳原本作一部分比較複雜的調度控制。
到最後datastage只做了一個文本抽取的功能。隨着該銀行業務系統的不斷擴建和增長,做業數規模愈來愈大。更主要的矛盾表如今ETL做業自己的管理成本上。
他們意識到,能不能管理好這麼多系統的做業,纔是這些數據項目成功實施的關鍵。所以他們選用了國內的一款專業的ETL調度工具,來管理十幾個系統和上萬個做業。至於datastage的文本抽取做業,都被逐步改造爲shell腳原本作了。
到最後¥80w採購的datastage基本上就閒置了。 實際上就是十幾個系統和上萬個shell腳本程序、oracle存儲過程以及ftp做業,的調度監控管理問題。
因此,我以爲若是做業類型單1、環境簡單的場景,就沒有必要用專門的ETL工具。做業數上規模的狀況下,採購一款專業的ETL調度工具纔是必要的。
若是企業內部做業類型過多、異構環境複雜、技術人員水平良莠不齊的狀況下,採用專業的ETL工具就有必要了,由於它下降了技術門檻。也許簡單的拖拽就能完成複雜的功能。
另外說一句,做業類型多、異構環境多從另外一方面說明企業的IT管理不夠規範(或許是歷史緣由)!在我看來ETL工具如同雞肋 「食之無肉,棄之有味」shell