劉雙紅 余建國
(鄭州航空工業管理學院,河南 鄭州 450005)
數據倉庫技術在電信、金融、零售等多個行業都得到了廣泛應用,在優化企業資源配置、提升企業的協同和資源共享,提高企業的核心競爭力和創新力等諸多方面發揮了重要作用。 但是由于數據倉庫的數據來自于多種異質業務數據源及Web 數據,因而這些數據源可能分布在不同的網絡中,以不同的方式存在不同的數據庫中, 使用不同的硬件平臺及不同的操作系統。 所以對系統中的數據進行嚴格地質量控制已成為系統面臨的一個關鍵問題,否則基于劣質數據進行的分析非但不能達到預期的效果還會給企業帶來損失。
由于數據倉庫中的特殊作用,它不同于一般的數據庫。 存儲在數據倉庫中的數據具有面向主題性,數據集成,數據的歷史性,來源廣泛、變化和支持決策的特征。
2.1.1 面向主題
主題是一個抽象的概念,是數據分類標準更高的水平。 每一個主題對應一個宏觀分析,是用戶關心的對企業決策最重要的方面。 一個主題通常與操作型信息系統的多種數據類型關聯。 數據倉庫中的所有數據都是以主題的形式組織,數據倉庫的創建、使用,都圍繞主題實現。 例如,企業將有幾個特殊的數據庫,如定價數據庫,財務數據庫,客戶數據庫,市場信息數據庫,每個數據庫等按主題來組織,如客戶服務數據庫記錄客戶的咨詢和投訴情況,財務數據庫記錄客戶的支出。
2.1.2 大量集成、隨時間變化的數據
集成是指數據進入數據倉庫之前必須通過數據處理和集成的,這是創建數據倉庫的最重要的和復雜的步驟。 數據倉庫中的數據不是直接來自源數據庫系統。 原有的數據庫系統每天記錄每個業務處理,這些數據不適合分析,所以進入數據倉庫前的數據必須經過統一,綜合計算和處理,及對有用的數據項的處理分析,并且不需要全面的數據清除,并可能添加一些涉及到的外部數據,以有利于更好的決策分析。
2.1.3 來源廣泛
數據倉庫中和每個主題相對的數據來自與多個分散、不同的數據庫系統,因此會有很多重復的和一致的,這些數據必須轉換為統一的定義和標準,以消除重復,誤差,確保數據的質量,以獲得更可靠的結果數據分析。 企業的決策并不取決于企業內部的環境, 還需要決策者考慮企業外部環境的多種因素。因此,除了企業內部數據,一個企業的數據倉庫中還包含了許多外部數據。
2.1.4 用于企業的決策
采用傳統的數據庫實現數據的分析和處理是困難的,因為傳統數據庫是為企業日常事務處理設計的。 數據倉庫不僅通過聯機分析處理手段分析數據, 而且提供通用的數據視圖,支持高層次的決策分析。 數據倉庫能從龐大的信息量中為用戶獲取戰略信息的解決方案。 它是基于大規模數據庫的決策支持系統環境的核心,彌補了傳統數據庫系統的缺點。
2.2 數據質量度量因素
數據是組織最具價值的資產之一, 高質量的數據可以使企業保持競爭力并在經濟動蕩時期立于不敗之地。 根據全面質量管理(TQM),客觀的度量機制必須要附加在主觀的方法和建議之上來保證最終產品的質量。 下面給出TQM 中衡量數據質量重要的幾個公共參數[1]:
有效性(Validity):指單個屬性的值是否符合客觀邏輯和業務邏輯。 如:客戶資料中的地址郵編、電話區號、年齡、收入情況等是否在有效的取值范圍之內。
準確性(Accuracy):是指數據是否真實客觀。在信息有效性的基礎上獲得真實的數據。 例如,由于客戶在個人隱私方面的自我保護,往往有意地提供不符合實際的信息,如謊報地址、收入、工作單位等等。
一致性(Consistency):指不同系統、不同業務之間關聯的數據是否一致,包括源系統之間同一數據是否一致,源數據與抽取的數據是否一致,數據倉庫內部各處理環節數據是否一致。
完整性(Completeness):指所有信息、屬性是否按照業務規則完整填寫,包括數據源是否完整、維度取值是否完整等。
惟一性(Uniqueness):數據值被約束成一組獨特的條目,每個值只有惟一的類型(如主鍵值、索引等),與惟一性沖突的記錄的比率(重復的主鍵值)。
數據倉庫中的數據質量與數據源、 數據處理和應用都有關系。 數據倉庫裝載數據流程包括:ETL 是數據抽取(Extract)、轉換(Transform)、清洗(Cleansing)、裝載(Load)的過程。 用戶從數據源抽取出所需的數據,經過數據清洗、轉換,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫。 在這個過程中,任何一個環節都會影響數據質量[2]。
3.1 數據源
數據源是數據倉庫系統的基礎。通常包括企業內部信息和外部信息。 內部信息包括原有操作型系統中的各種業務處理數據和各類文檔數據。外部信息包括各類法律法規、市場信息和競爭對手的信息。所以數據倉庫會集成多個數據源的數據,有來自關系數據庫的,有來自ERP 數據庫的,有來自普通文件的。
在一個單獨的數據集可能會出現數據質量問題, 如那些發生在一個文件或數據庫。 這些問題包括數據遺漏,數據異常,數據重復等等。 數據的遺漏意味著有一些記錄的屬性沒有數據。 一般來說,這個問題是因為沒有答案,或在市場調查的誤操作,或一些在數據庫或數據倉庫中的數據被破壞。 數據異常是指數據庫中的孤立點。 這些孤立的點不符合通用數據模型,它們與不同或相同的數據集的其他數據不一致。 例如,如果記錄一個人的年齡150 歲,這個錯誤可能會在數據輸入過程中產生的。 此外,孤立點可能是事情的真實反映,如一個公司總裁的薪水高于普通職工的收入時產生的孤立點。 數據重復性指的是在許多記錄是一樣的現象。
多數據源集成后數據倉庫數據質量的發生尤為突出。 每個數據源都是為特定的目設計,部署和維護的。 換句話說,數據源的設計與開發是獨立的。 結果是,數據源的數據庫管理系統方面,如數據模型,模式的設計和公式有很大的不同。 模式相關的多個數據源的問題主要包括名稱和結構沖突。 名稱沖突的事實,一個相同的名字,代表不同的對象或不同的名字代表同一個對象;結構沖突的現象,同一對象采用不同的表示方法在不同來源的系統顯示。 例如,在屬性不同數據源的表,同一個對象可以在不同的組件結構的分析,數據模型和完整性約束。
3.2 ETL 過程
ETL 是構建數據倉庫的重要一環, 用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去,這一過程非常復雜。 在ETL過程中,也會產生數據質量問題。
數據抽取:從源系統中抽取數據,一般要編制代碼或者借助一些工具配置進行數據抽取,若編寫的代碼錯誤或工具配置不當,都會導致原始數據正確而抽取出來的數據不正確。
數據清洗、轉換:數據清洗的任務是過濾那些不符合要求的數據,不符合要求的數據主要是有不完整的數據、錯誤的數據和重復的數據三大類。 數據轉換的任務主要是進行不一致的數據轉換、數據粒度的轉換和一些商務規則的計算。 在數據清洗和轉換的過程中,少有疏漏就會產生劣質數據,對數據質量造成影響。
數據加載:數據轉換完成之后要進行數據加載,在系統運作時可能會出現重復加載或者加載失敗的情況,會導致數據量異常。
這里試圖建立一種質量分級, 并基于一套質量指標和質量驗證架構來實現。 保持原貌,準確地進行前端展示是數據從數據源裝載到數據倉庫過程中的要求, 為了滿足這樣的需求,在系統將數據展現給最終用戶之前需要對每次數據裝載進行質量評級。
4.1 分級原則
具體可分為三級:第一級,數據準確,在預料的范圍內產生可以接受的誤差,可以提交前端展現,交付使用;第二級,數據可疑,需要進一步分離異常數據,定位可疑原因,查明原因確認后,可以提交;第三級:數據錯誤,需定位具體原因,重新裝載,直至達到第二級以上質量標準以后方可提交[3]。 要實現質量分級需要有一個足夠的質量驗證架構能夠準確地表達這些級別,保證數據質量逐漸從第三級通往第二、一級。
4.2 數據表象
建立滿足質量分級的一套架構,不光要有一套技術架構,還需要再定義一套質量指標,基于這些指標才能進行某種規則的運算然后再進行質量分級。
一般情況下,數據的數值變化不能有異常的波動,出現零值或是特別大的值,這些一般都被懷疑是有問題的。 質量驗證架構就要解決上面提到的三種情況,數值波動、偏離標準和違背邏輯,稱其為“數據表象”,它的具體表現就是一系列指標,例如數值增長率、誤差率等。 如果已經有一個指標標準,例如生產系統的報表,那么它就成為標準,如果發現數據倉庫中統計的指標和標準值不一致,在不能說明標準存在問題并排除外部原因的情況下,應查找數據處理是否存在問題,數據處理的規則是否正確、ETL 流程是否順暢、實現方法是否錯誤等。
4.3 數據稽核
數據稽核是數據質量管控的一個核心內容, 重點就是實現數據的完整性和一致性檢查,提升數據質量。 在數據處理過程中,為ETL 過程的每一步留下操作、稽核記錄,以作為數據表象和質量分級的底層支持,這一步我們可以稱為“數據稽核”。
“稽核”根據預定義的數據稽核和校驗規則,對數據進行差異分析和異常分析,一般分為總量、分量和標準量稽核。 總量稽核,在兩個相鄰環節中,對數據的總量進行驗證。 總量指標包括:總記錄數,所有度量指標的總值、均值等。 總量正確說明數據沒有被丟棄,沒有不符合裝載邏輯規則的臟數據存在。 總量不正確, 則需要檢查本環節裝載日志中是否有被拋棄的記錄,如果沒有數據丟失,則需要檢查數據運算邏輯規則。 分量稽核是指對相鄰的兩個環節中,在總量正確的前提下,對數據分布情況的稽核,在這個過程中,需要對每個維度上分布的度量進行查詢,如果數據在每個維上的分布都正確,則在組合維查詢時數據也正確,可以保證多維分析的正確性。 標準量稽核,則是用一組數據的統計值和標準值對比[4]。
稽核應該在每個ETL 環節運行完之后及時進行, 保證每個環節都得到驗證,輸出數據稽核報告,如果發現數據不一致,并產生警告信息發送給系統管理員,避免下一環節使用錯誤數據繼續裝載。
4.4 ETL 單元
ETL 單元是不能細分的ETL 過程, 從數據源到數據倉庫及數據展現,通過若干個ETL 處理完成。例如可以將抽取、轉換放在一個ETL 單元中,抽取和轉換只能同時運行,而如果將他們分作兩個單元,可以分別運行,這有利于錯誤恢復操作。 ETL單元的細分程度應該依據具體應用。 ETL 單元在質量架構中,是數據稽核的最小單位。通過控制每個ETL 單元的入口、出口,稽核流入和流出的數據。
4.5 數據質量分級框架
面對海量數據, 人工發現其中的潛在的錯誤, 是不現實的,非自動化的行為根本無法保證數據質量檢查可以成為例行的工作,也就無法保證質量。 這需要一個自動化系統來幫助實現,功能框架包括如下功能:
(1)定義管理:定義ETL 單元、元數據;定義數據的度量、度量腳本以及表象指標。 定義ETL 單元遵循先小后大,循序漸進的原則。大的ETL 單元容易忽略內部的過程。因此,通常先將一個表的裝載或中間數據生成定義成一個小的ETL 單元。當系統運行穩定,數據質量逐漸改善以后,再去掉一些小ETL 單元,提高效率。
(2)配置管理:配置稽核流程、數據稽核規則,對數據質量檢查規則、數據質量任務、考核規則進行維護配置。
(3)執行管理:數據質量任務的分派、處理、審核、同步、監控。
(4)報表管理:提供數據質量相關報表以及對于考核結果的展示和查詢。
(5)分級管理:根據稽核報告及分級原則,形成數據質量分級結果。
討論了數據倉庫中數據質量管理的問題, 結合數據源及ETL 過程對數據質量問題進行分析, 建立了數據質量分級體系,并給出了具體的功能架構,為數據倉庫中數據質量的控制提供了一種有效、可行的方法。 今后將以該質量分級體系為基礎,進一步優化設計該體系結構并實現其分級功能。
[1]袁滿,張雪.一種基于規則的數據質量評價模型[J].西安:計算機技術與發展,2013,3(23):81-84
[2]劉雙紅.數據倉庫中數據質量問題研究[J].鄭州:光盤技術,2008,(12):16-17
[3]dwdmstudio. 數據倉庫中的數據稽核方法.http://www.itpub.net/thread-378952-1-1.html,2013.6.20
[4]happysboy. 談談數據質量.http://dwdmstudio.bokee.com/167070.html,2013.5.26