大資料測試之ETL
之前釋出過一篇關於ETL的文章,無奈被人說太簡單。。。。唉,小編也是剛接觸啊,自然不能那麼高深,所以只是對學習的過程做了記錄轉換為文章分享給大家,如果對你有幫助,不要吝嗇點贊+轉發,如果對你沒有幫助,那就請轉身離開。。。。或者你寫一篇更詳細的給我,我申請紅包給你(邪惡的笑~)
好啦,迴歸正題,這次作為補充在詳細介紹下。ETL是什麼?其實ta指的是一個過程,就是大資料中對資料處理的過程(抓取>轉換>裝載),並不是一個技術!
小編也是慢慢的學習下大資料測試的知識,一直有個問題也困擾著我,就是怎麼能判定資料的正確性?是,可以有多種手段去判定,但沒辦法保證100%的正確吧?(明白的朋友可以告訴我哈~)
反正,總而言之ETL測試的核心就是要保證資料的正確性、一致性,其他都是浮雲~
常見的ETL測試方 法(主要就是對資料處理中的各個關鍵點進行驗證)
那麼,怎麼測試呢?莫急,看~
1、資料量。這個應該不用多說,你從源頭拿來多少,存到目標表裡又是多少,是否一致,是否正確
2、轉換。主要是對資料格式的合法性進行驗證。參考點為:
-
源中的時間、數值、字元等資料的處理,是否符合資料倉儲規則,是否進行統一的轉換
-
是否有超出維表或者業務值域的範圍
-
是否捕獲欄位空值,或者需要對空值進行替換為其他含義值的處理
-
主鍵是否唯一
-
特殊符號或者亂碼符號的處理規則
-
髒資料的處理
3、抽樣。在轉換完成之後要對轉換之後的關鍵欄位驗證,還有源表和目標表的對映是否正確
4、載入。這塊比較麻煩,有 全量載入(先清空再插入)和增量載入(目標表僅更新源表變化的資料)。選擇哪種方式要看實際的系統是怎麼設計的,沒有標準。實際應用中,增量載入用的比較多,下面我們就說說ta。
觸發增量載入的方式(此處內容部分來自於網路的收集,自己做了下總結)
觸發器方式
在要抽取的表上建立需要的觸發器,一般要建立插入、修改、刪除三個觸發器,每當源表中的資料發生變化,相應的觸發器就會將變化的資料寫入一個臨時表,抽取執行緒從臨時表中抽取資料,臨時表中抽取過的資料被標記或刪除。
優點:資料抽取的效能高,ETL 載入規則簡單,速度快,不需要修改業務系統表結構,可以實現資料的遞增載入。
缺點:要求業務表建立觸發器,對業務系統有一定的影響,容易對 源資料庫 有傾入。
時間戳方式
在源表上增加一個時間戳欄位,系統中更新修改表資料的時候,同時修改時間戳欄位的值。當進行資料抽取時,透過比較上次抽取時間與時間戳欄位的值來決定抽取哪些資料。
有的資料庫的時間戳支援自動更新,即表的其它欄位的資料發生改變時,自動更新時間戳欄位的值。有的資料庫不支援時間戳的自動更新,這就要求業務系統在更新業務資料時,手工更新時間戳欄位。
優點:同觸發器方式一樣。
缺點:時間戳維護需要由業務系統完成,對業務系統也有很大的傾入性(加入額外的時間戳欄位),特別是對不支援時間戳的自動更新的資料庫,還要求業務系統進行額外的更新時間戳操作;另外,無法捕獲對時間戳以前資料的delete和update 操作,在資料準確性上受到了一定的限制。
全表刪除插入方式
這個就比較好理解了,每次ETL 操作均刪除目標表資料,由ETL 全新載入資料。
優點:ETL 載入規則簡單,速度快。
缺點:不可以實現資料的遞增載入
全表比對的方式
ETL 工具事先為要抽取的表建立一個結構類似的臨時表,該臨時表記錄源表主鍵以及根據所有欄位的資料計算出來,每次進行資料抽取時,對源表和臨時表進行的比對,如有不同,進行Update 操作,如目標表沒有存在該主鍵值,表示該記錄還沒有,即進行Insert 操作。
優點:對已有系統表結構不產生影響,不需要修改業務操作程式,所有抽取規則由ETL完成,管理維護統一,可以實現資料的遞增載入,沒有風險。
缺點:ETL 比對較複雜,設計較為複雜,速度較慢。與觸發器和時間戳方式中的主動通知不同,全表比對方式是被動的進行全表資料的比對,效能較差。當表中沒有主鍵或唯一列且含有重複記錄時,全表比對方式的準確性較差。
PS:說了這麼多,可能會有朋友問那用什麼進行ETL測試啊!答案:手工或ETL測試工具Informatica 或Hivetest (後續有機會我們會介紹該工具如何使用,如果有朋友很熟悉了,也歡迎投稿給我們哈)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2652995/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ETL測試或資料倉儲測試入門
- 大資料之ETL設計詳解大資料
- 竟然拿ETL當測試資料生成工具使用
- 大資料測試之hadoop初探大資料Hadoop
- 大資料測試學習筆記之測試工具集大資料筆記
- 大資料測試之揭秘大資料的背景與發展大資料
- 大資料測試與 傳統資料庫測試大資料資料庫
- 小白學習大資料測試之hadoop大資料Hadoop
- 功能測試之存量資料新與增資料測試
- 解密!傳統測試 vs 大資料測試解密大資料
- 大資料測試技術——課堂測試大資料
- [原創] 大資料測試大資料
- 什麼是大資料測試?大資料測試實現步驟有哪些?大資料
- 測試資料之自動生成
- Go 單元測試之Mysql資料庫整合測試GoMySql資料庫
- 一文了解主流大資料ETL工具大資料
- [原創]淺談大資料測試大資料
- 軟體測試之資料庫測試技術系列七資料庫
- Restcloud ETl實踐之資料行列轉換RESTCloud
- [原創]ETL效能測試和優化優化
- 大資料的測試思維與探索大資料
- 大資料測試 - 相關性評估大資料
- 軟體測試之資料庫系列六資料庫
- 軟體測試之資料庫系列五資料庫
- 軟體測試之資料庫系列四資料庫
- 軟體測試之資料庫系列三資料庫
- 軟體測試之資料庫系列二資料庫
- 軟體測試之資料庫系列一資料庫
- 資料驅動測試之——CSV+TestNG
- 資料驅動測試之—— Excel+TestNGExcel
- 測試資料
- 小白學習大資料測試之hadoop hdfs和MapReduce小實戰大資料Hadoop
- 最快方式搭建docker大資料 測試叢集Docker大資料
- ETL資料整合平臺,RestCloud視覺化ETLRESTCloud視覺化
- 國產 ETL工具 ETL產品 資料交換系統
- Restcloud ETL實踐之Excel檔案資料採集RESTCloudExcel
- 介面測試之 post 常見資料提交方式
- 介面測試之post常見資料提交方式