[原創] 淺談ETL系統架構如何測試?

賣燒烤的魚發表於2014-10-28

[原創] 淺談ETL系統架構如何測試?

  來新公司已入職3個月時間,由於公司所處於網際網路基金行業,基金天然固有特點,基金業務複雜,基金資料資訊眾多,基金經理眾多等,所以大家可想一下,基民要想賺錢真不容易,首先你要在這麼多基金中選一個靠譜的基金經理,想獲得一份不錯的基金收益,尤如大海撈針,其碼我對這個沒什麼自信。

  閒話少說,哪麼我們來看看ETL系統架構是咋回事,簡單理解ETL就是將資料抽取,資料轉換,資料載入的一個過程,其中每個公司都有不同業務,如下圖所示:

上圖展示了一個典型的ETL系統架構,其中ETL中間還多了一個資料清洗,碰到這樣的系統,測試工作如何開展呢?我理下思路,列舉一些目前我所在公司對這塊的測試實踐:

1、首先,必須要對ETL核心處理過程進行測試,要確保資料提取,轉換,載入核心處理過程的正確性及完整性;

2、各業務需求點及規則驗證是否被正常轉化,如:我們要將系統抓取的一些非標的資料進行提取,轉換後符合公司自己定義的演算法,這塊就比較重要,也是公司核心;

3、各業務需求點及規則對時間要求,效能是否可以滿足,如:我司系統有這樣的需求,對某基金經理,在任職期內,與其他基金經理的業務在10年,3年,1年等不同時間段的回報率等;

4、ETL的測試核心點是資料,諸如資料的準確性,完整性,正確性都應考慮,測試時尤其要多運用等價,邊界及異常值等去檢查驗證,不過建議開發一些測試工具去支援,在實際測試工作中,經常發現資料來源抓取的資料不是很完整,有些還是錯的,這些都要在內部測試時,進行嚴謹的檢查;

5、資料遷移測試,由於每次系統升級,不得不進行更新,這樣會造成新舊資料有可能不一致,我們通常採用遷移一部分生產資料在測試環境,來進行檢查驗證;

6、資料擴充套件性容量測試,初期我們對這塊重視不夠,原以為資料量沒哪麼多,但經過一段時間積累,發現源資料是非常龐大,所以針對這塊我們都會去預估,儘可能按照X10,X20倍等這樣的方式進行測試評估。

  最後總結下ETL測試其實並不複雜,系統的架構也非常簡單,容易理解,難在於測試資料的複雜性構建,資料相容性,及資料的完整性,我們在測試時碰到的最頭疼的問題,主要是這幾種,當然最後提一句,ETL系統上線後,必須要有一個好的監控系統配合,否則真是災難。

  

相關文章