04 ETL測試基本知識

2022-03-20 15:05:07 字數 2774 閱讀 1354

一、etl測試的重要性:

etl(extract-transform-load的縮寫,即資料抽取、轉換、裝載的過程)作為bi/dw(business intelligence)的核心和靈魂,能夠按照統一的規則整合並提高資料的價值,是負責完成資料從資料來源向目標資料倉儲轉化的過程,是實施資料倉儲的重要步驟。如果說資料倉儲的模型設計是一座大廈的設計藍圖,資料是磚瓦的話,那麼etl就是建設大廈的過程。在整個專案中最難部分是使用者需求分析和模型設計,而etl規則設計和實施則是工作量最大的,約佔整個專案的60%~80%,這是國內外從眾多實踐中得到的普遍共識。 

在技術上,etl主要涉及到關聯、轉換、增量、排程和監控等幾個方面;資料倉儲系統中資料不要求與聯機事務處理系統中資料實時同步,所以etl可以定時進行。但多個etl的操作時間、順序和成敗對資料倉儲中資訊的有效性至關重要。所以做好etl測試也至關重要。 

二、etl測試過程: 

在獨立驗證與確認下,與任何其他測試一樣,etl也經歷同樣的階段。 

1)業務和需求分析並驗證。 

2)測試方案編寫 

3)從所有可用的輸入條件來設計測試用例和測試場景進行測試 

4)執行所有用例直到滿足退出標準 

5)書寫總結報告和測試過程結束。 

三、etl測試的規則: 

測試資料的正確性、一致性、完整性 

四、etl測試的方法 

1.資料量統計: 

源表和目標表資料量統計 

2.轉換規則測試 

首先是資料格式的合法性。對於資料來源中時間、數值、字元等資料的處理,是否符合資料倉儲規則,是否進行統一的轉換。 

其次是值域的有效性。是否有超出維表或者業務值域的範圍。 

第三是空值的處理。是否捕獲字段空值,或者需要對空值進行替換為其他含義值的處理。 

第四是主鍵的有效性。主鍵是否唯一。 

第五是亂碼的檢查。特殊符號或者亂碼符號的護理規則。 

第六是髒資料的處理。比如不符合業務邏輯的資料 

3.關鍵字段測試 

通過轉換規則,查詢關鍵字段是否正確。比如保費收入字段,看其是否乘以匯率,共保比率等; 

一般表中會新增時間戳,時間戳資料和資料格式是否正確 

4.抽樣測試 

通過抽樣,測試源表和目標表對映是否正確。 

5.載入規則測試 

一般載入方式有兩種:全量載入和增量載入 

增量載入一般是先刪後插(delete and insert)。 

全量載入一般是先清空再插入(truncate and insert),但也要分情況,我們做的專案,源-->odssga層為先清空後插入,向外提供的介面資料則為先刪後插,這需要根據不同的情況不同對待。 

增量載入方式 

對於增量抽取,捕捉變化的資料有如下幾種:1)採用快照方式。需要業務系統建立insert,update,delete觸發器。2)時間戳方式,在業務系統表建乙個時間戳字段,一旦資料發生變化,則修改此欄位。3)全表刪除插入方式,每次etl操作先將目標表資料刪除,然後抽取。4)hash比對,是全表比對的乙個擴充套件,通過計算主要業務欄位的md5校驗碼存入hash維表,通過與hash維表的比對進行抽取。5)日誌表方式,跟進業務系統的日誌表進行資料抽取。6)oracle變化資料捕捉,通過分析資料庫自身日誌判斷變化的資料。 

由於我們採取的是時間戳方式,這裡就只介紹這種方式的測試方案。 

1)測試結果是否遺漏資料,如果為時間戳方式,要尤其注意時間戳是否帶時分秒 

2)增量規則是否正確 

對於源表做好足夠的資料探查,明白源表中的資料的增量是怎麼回事,必要時需要討論,然後根據業務規則做增量規則方案。 

3)監控增量資料 

因為專案在上線前一般都會試執行一段時間,所以在這段時間,就要每天做表中資料量的的監控。 

對於日全量表的監控:只要看源表和目標表資料量是否一致就可以對於增量資料量監控:看全量+增量的資料是否與源表資料量是否一致。根據不同的業務規則,檢視是否正確。 

然後通過多日監控,可以發現不管是增量還是全量,資料量基本都會處於乙個值左右,幅度不會太大,如果出現特殊情況,就要去考慮檢查一下它的正確性了。 

4)監控增量執行時間 

通過監控增量的執行時長,可以發現效能問題和批量資料的執行是否成功。對於時間浮動比較大的增量表,可以第一時間發現問題並解決問題。 

全量載入方式 

由於我們採取的是全量載入+增量載入(採用時間戳方式),我這裡指的全量載入即資料倉儲中資料的初始化。 

全量載入的測試方案相對要簡單些。 

1)測試源和目標表的資料量的一致性 

2)執行1,2,3,4測試測試方法測試一般來說即可。    

6.效能測試 

確保資料在規定和預計的時間內被載入到資料倉儲中,以確認改進的效能和可擴充套件性。 

7.測試用例 

專案中的關鍵業務,複雜邏輯部分作為測試重點 

基礎資料:可以為真實資料,也可以單純手工造資料。因為etl資料量較大,並且表中字段數量比較多,各表關聯比較大,所以本人覺得還是用真實資料效率比較高。 

測試用例的編寫:測試用例可以單獨設計,也可以採用排程的思想進行設計,採用排程方法進行設計時,能一次驗證多個用例,另外也方便回歸。 

8.發布實施後 

1).測試datastage中源、目標對映是否一致 

2).測試開發庫和生產庫中etl程式是否一致 

3).監控增量資料和增量執行時間。 

增量資料監控:專案發布後,我們可以觀察資料的波動趨勢,一般來說資料的波動是在一定範圍,遵循一定原則的,如果發現資料波動超出了預計範圍,這個時候就需要特別注意了。 

增量執行時間監控:往往專案上線後,比較在意的是效能問題,以確保在規定的時間內,完成跑批。我們要通過監控增量執行時間,及時發現程式的效能問題。

測試基本知識

測試用例 功能,效能,介面,安全,易用 412教室 椅子 功能 效能 介面 安全 易用 軟體開發的流程 立項 說明該專案是做什麼的,要耗費多少資金,時間等資訊 產品說明書 對立項的詳細說明 需求文件 有些時候可能沒有產品說明書,而是使用需求文件 需求測試 開發人員,需求人員等在需求文件編寫完之後會對...

測試基本知識

在規定條件下對程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程 要點 規定條件 發現程式錯誤 衡量軟體質量 是否滿足設計要求 程式操作過程 用最少人力物力財力找到軟體中問題,修復問題,降低商業風險。是為特定的目的而設計的一組測試輸入 執行條件和預期結果的文件。測什麼...

介面測試基本知識

一 介面測試是指測試介面的功能 效能和穩定性以及安全性。二 介面測試的分類 1 按協議分,可以為http和https協議 2 按內外部,可以分為內部介面和外部介面 內部介面 公司內部自己開發的介面 三 http請求方法分類 根據http標準,http請求可以使用多種請求方法。http1.0定義了三種...