李琳
摘 要:隨著社會經濟的發展和大數據時代的到來,數據在人們日常生活中扮演的角色越來越重要。利用決策支持系統、客戶關系管理系統(CRM)等數據庫應用項目,我們可以從海量數據中提取更有價值的信息。然而,調查發現很多數據庫應用項目的運行效果并不令人滿意。數據數量增長的同時,數據質量的控制也給廣大研究人員帶來一定的困擾。人們越來越意識到,高質量的數據是商業成功的一個重要因素,而數據源中的“臟數據”是導致數據質量低的一個重要原因。為了保證高質量的數據,企業需要采取一系列措施來控制數據質量,并采用一定的手段來處理“臟數據”。然而現實中,檢測與清洗數據源中所有“臟數據”的開銷是昂貴的。因此,如何根據不同的商業的需求來揀選部分“臟數據”進行清洗具有一定的現實意義。文章在文獻分析的基礎上,回顧了數據質量、數據質量維度的定義,探討了常見數據質量問題,闡明了數據質量管理與數據清洗之間的關系。針對“臟數據”揀選問題提出了一種數據清洗方法。最后對數據清洗相關研究進行了展望。
關鍵詞: 數據質量;數據質量維度;數據質量規則;數據清洗
中圖分類號:TP311.13 文獻標志碼:A 文章編號:2095-2945(2017)21-0001-05
1 研究背景
目前,數據在人類日常生活中所扮演的角色越來越重要,利用決策支持系統、客戶關系管理系統(CRM)等數據庫應用項目,我們可以從海量數據中獲得更有價值的信息。然而,調查發現很多數據庫應用項目的運行效果并不令人滿意。其中一個重要的因素就是數據質量問題[1]。普華永道會計事務所在紐約的研究也表明,75%的被調查公司存在因“臟數據”問題造成經濟損失的現象,只有35%的被調查公司對自己的數據質量充滿信心[2]。據統計,一些具有代表性的大公司的數據錯誤率預期在大約1%~5%,大部分數據源中都含有一定比例的“臟數據”[3]。數據是信息的載體,好的數據質量是使各種數據分析(例如數據挖掘等)能夠得到有意義結果的基本條件。根據“進去的是垃圾,出來的也是垃圾(garbage in, garbage out)”這條原則,“臟數據”的存在會造成信息失真[4]。在各種數據處理任務中,數據清洗這一任務是至關重要的。數據清洗是數據質量提高技術研究的主要內容,數據清洗主要研究如何檢測并消除數據中的錯誤和不一致,以提高數據質量,目前有很多數據清洗框架存在[5]。然而研究發現,數據質量問題并沒有引起大多數企業足夠的重視,同時這些企業也沒有應用有效的方法和措施來提高其數據質量。其中一個主要原因是這些企業缺少對各種臟數據類型的了解[6]。因此,為了提高數據質量,有必要了解留存于數據源中的各類臟數據及其清洗方法。目前已有部分學者針對這一任務,展開了研究[3][7][8][9]。在現實中,清洗所有數據源中的臟數據花銷是昂貴的,尤其是考慮到企業的實際需求時,清洗所有數據源中的臟數據是不劃算的。比如某公司只考慮清洗某一組特定類型的臟數據用來提高數據的準確率問題。這樣的問題涉及到如何在臟數據中揀選特定類型的臟數據進行清洗。在本文中,該問題被定義為“臟數據選擇問題”(DDS)。雖然目前有不少文獻針對臟數據的分類進行了研究,但對于DDS這一問題并沒有展開進一步的研究。在現實中僅僅依靠各類臟數據的劃分,很難根據不同企業的實際需求來解決DDS問題來提高相應的數據質量。
為了解決這個問題(DDS),本文提出了一種數據清洗方法。從數據質量維度的這一角度出發,同時配合各類商業規則,將臟數據進一步劃分。進而解決DDS問題。利用該方法,用戶可以根據不同的商業需求來制定不同的優先權,選擇特定的臟數據進行清洗。同時該方法為我們提供了一種基于數據質量維度與數據質量規則的臟數據劃分,該劃分為提高數據質量問題進一步提供了指導準則。
2 數據質量,數據質量維度與數據質量規則
基于目前現有的技術,企業可以創建、存儲、處理大量的數據。但數據質量問題的存在卻降低了某些數據庫應用項目的處理效果。接下來,數據質量、數據質量維度、數據質量規則的相關概念將進一步討論。
2.1 數據質量
針對數據質量問題的研究,最早可以追溯到十九世紀60年帶,由Fellegi與Sunter等人提出[10]。然而,直到1990年,關于數據庫及數據倉庫系統中的數據質量問題才在計算機科學領域中被正式研究。越來越多的人意識到,數據質量的問題是導致數據庫應用項目運行失敗的一個重要因素。目前,數據質量被廣泛的定義為“適合使用的程度(fitness for use)”。Orr提出數據質量從本質上講與我們如何在系統中使用數據有相當大的關系[11]。我們可以從兩個方面對這一說法進行解釋。第一,如果數據有效并且符合用戶需求,則該數據可以直接進行使用。第二,在某些環境下符合用戶需求的數據有可能在另一環境中是不符合用戶需求的。例如,某公司的財務人員要求數據以萬為單位顯示來進行數據分析,而同一公司的審計員則要求數據精確到分。也就是說公司的商業策略或者商業規則在此時決定了數據質量。
通常來說,數據質量可以借由數據維度來進行衡量[12]。常用的數據質量維度包括準確度,完整度,時效度,一致度等。因此,數據質量評估的核心在于如何具體地評估各個維度。對各個維度從定性的角度來分析其“好”或“壞”是目前數據質量評估方法的主流。
2.2 數據質量維度
文獻[12]指出, 數據質量維度是一組數據質量屬性的集合,每一種屬性代表著數據的某一特征。依靠調查研究報告而收集的179種數據質量屬性,Wang和Strong等人將這些數據質量屬性歸納為20種不同的維度。
這些維度從不同的角度對數據質量進行衡量,并且將衡量的結果歸納為不同的類別。Wang和Strong的研究工作認為數據質量的概念是一種多維的概念。文獻[13][14][15]也針對數據質量維度展開了調查研究。大部分學者認為以下六個數據維度組成了最基礎的衡量數據質量的標準:準確度,完整度,一致度,現時度,可解釋性,以及易接近性。在這六個維度中,同具體數據值相關的數據質量維度包括準確度,完整度,一致度和現時度[16]。本文將以這四個數據質量維度為基礎進行臟數據的劃分。接下來,將對這四個數據質量維度進行簡要的介紹。
2.2.1 準確度(accuracy)
假設數據以
2.2.2 完整度(completeness)
Fox等人將數據的完整度定義為對于一切實體的所有屬性,其所對應的值是否完整的程度[16]。數據的完整度可以由三個級別來進行度量:紀錄級別,屬性級別與關系級別。紀錄級別的完整度代表數據庫中每條紀錄中已錄入的值與該條紀錄所有屬性應具有的值的數量百分比。屬性級別的完整度代表數據庫中紀錄的每列屬性中非缺失值與全體值的數量百分比。關系級別的完整度代表每張數據表中所有非缺失值與全體值的數量百分比。
2.2.3 現時度(currentness)
數據庫中所記錄的某些數據是靜態的,也就是說其值是不可變的。比如某人的出生日期,出生地點等。相反人的年齡,住址,體重等信息會隨著時間的變化而發生改變。這樣的數據被稱為時態數據。現時度就是為了衡量時態數據的一個維度。Fox等人提出,如果一個數據在t時刻是準時的,則說明該數據的值在t時刻是正確的。如果一個數據在t時刻是過期數據,說明該數據的值在t時刻是不正確的,但它在t時刻之前的某一時刻是正確的[16]。例如,某人在2008年居住在中國上海,其居住地址在數據庫中已有所記錄。在2016年這個人居住在英國倫敦,則數據庫中反映該人“現居住地址”的信息應進行更新。這樣的數據則被稱為現時度高的數據?,F實生活中,由于數據沒有被及時更新而造成的經濟損失是非常高昂的。例如某調查研究表明,平均每公司每年因郵件地址信息過期而造成的損失高達9000美金[17]。
2.2.4 一致度
當數據的值符合相應的數據模型所定義的一系列約束條件時,該數據是一致的數據。例如,由于不同的商業需求,數據庫在不同環境中可能被設計成不同的模式。因此同一數據的值在不同的數據庫中的表現形式也各不相同,其度量單位也會有差別。當不同數據源的數據進行抽取和整合時,數據的不一致性問題就會出現。例如,為記錄某人的收入信息,在某些數據庫中該人的收入會以人民幣做為結算單位進行記錄,在另一些數據庫中則以美元為結算單位進行記錄。
2.3 數據質量規則
根據Adelman等人的研究, 數據質量規則可以被歸納為以下四組:商業實體規則, 商業屬性規則, 數據依賴規則以及數據有效性規則[19]。表1歸納了這四組規則。
在這四組規則當中,數據有效性規則是專門用來考察同數據值相關的質量規則。由于本文所考慮的數據質量維度僅針對于數據值而言,因此本文將采用數據有效性規則這一組數據質量規則應用于所提出的清洗方法之中。根據文獻[19],數據有效性規則包含六條數據質量規則,分別為數據完整規則,數據正確規則,數據準確規則,數據單一規則以及數據一致規則。本文繼續將這六條規則進行細分進而形成更加詳細的數據質量規則,并為每條規則配備一個規則號。詳細的內容見表2所示。
根據表1,數據單一規則被歸入數據有效性規則組中。在表2中,規則R5.1與R5.2是專門用來衡量由于數據庫中冗余紀錄的存在而引起的一類特殊的數據質量問題?,F實中有很多原因會導致數據庫中冗余記錄的產生,例如數據錄入錯誤,針對同一數據值的不同表達方式等。目前,針對于不同的研究領域,有不同的方法用來解決冗余記錄問題。同時很多學者也開展了相應的研究工作[20]。因此,除了前文所提到的四個數據質量維度,本文同時引入“單一度”作為另一數據質量維度專門用來衡量冗余記錄存在的問題。
3 臟數據類型
臟數據分類系統可以幫助人們更好的理解數據質量問題。目前針對臟數據分類問題已有很多工作展開了相關研究[3][7][8][9]。文獻[8]將數據質量問題分為兩組:單數據源問題、多數據源問題。在每一組中,又將對應的數據質量問題劃分為模式層問題與實例層問題。例如,在單數據源的實例層次上,數據的錯誤有可能來自數據輸入的錯誤,冗余記錄的存在以及矛盾數據的存在等。在多數據源實例層次上,不一致性數據的錯誤會發生在數據整合的過程中。
文獻[7]針對數據質量問題也提出一組臟數據的分類。這組分類包括詞匯錯誤(Lexical error)、域值錯誤(Domain format error)、不規則性錯誤(Irregularities)、條件約束錯誤(Constraint violation)、缺失值(Missing value),冗余值(Duplicates)以及無效記錄(Invalid tuple)。
相比前兩個分類,文獻[3]提出了一個更詳盡的臟數據分類,該分類以分層的方式來表現。根據不同的臟數據表現方式,從各類數據源中所捕獲的臟數據首先可以歸入以下三類:
(1)缺失值
(2)非缺失但錯誤數據
(3)非缺失非錯誤但無法使用的數據
這三類錯誤數據組成了整個臟數據分類的主體。作者進一步對這三類錯誤數據進行細分,最終提出了一個含有33種不同的臟數據類型的分類。
文獻[9]則提供了一個更加完整的臟數據分類系統。作者采用了一種自底向上的方式將臟數據進行分類(從單一數據源中單一記錄的具體的屬性值問題到多數據源中存在的數據問題)。在單一數據源中,數據質量問題從兩個方面進行劃分,最終分為兩組。分別是單數據表數據質量問題與多數據表中的數據質量問題。在多數據源中,數據質量問題被歸納為9類問題。表3總結了文獻[9]提出的數據質量問題。
由于Oliveira等人的臟數據分類在目前現有的研究工作中比較完整地歸納了不同的臟數據類型,因此本文所提出的數據清洗方法將利用表3所提供的臟數據類型進行描述。
4 基于數據質量維度的數據清洗方法
根據前文所介紹的數據質量,數據質量維度,數據質量規則,以及臟數據類型等概念,我們提出一種新的臟數據分類方法。
4.1 數據質量規則與數據質量維度的映射
在表1中所提到的四組數據質量規則中,數據有效性規則組所定義的數據質量規則用來專門制約與數據值相關的數據質量[19]。因此該組提出的具體數據質量規則將用來同前文所提到的五個數據質量維度進行匹配。表4總結了五個數據質量維度與Adelman等人提出的數據質量規則的映射結果。
為了將臟數據類型與數據質量維度進行匹配,需要進一步將數據質量規則與臟數據類型進行匹配工作。
4.2 數據質量規則與臟數據類型的映射
表3列舉了35種不同類型的臟數據,并將每一類臟數據進行了編號(DT.1~DT.35)。根據表2提出的數據質量規則 (R1.1~R6.2),表5將這35種臟數據類型與表2提出的數據質量規則進行了匹配,結果見表5。
4.3 臟數據分類
綜合考慮表4與表5的匹配結果,我們得到了一種基于數據質量維度的臟數據分類,其結果見表6所示。
4.4 臟數據清洗方法
David Loshin提出,企業的商業政策會對該企業的數據質量造成影響[18]。為了量化數據質量,各種度量標準信息應在一個度量框架中有所分類,用來衡量數據是否符合企業所制定的各種標準。為了達到這一目標,數據質量維度可以用來設計一系列的度量標準。企業所制定的各條政策準則可以轉化為一組數據質量規則。同時這組數據質量規則可以用來衡量數據源中的各種數據缺陷[18]。
在本文中,臟數據被定義為不符合數據質量規則的數據缺陷。因此,借由指定的商業政策標準,我們可以定義一系列的數據質量規則。臟數據的捕獲可以通過觀察該數據是否違反了數據質量規則。同時,由于數據質量規則嵌入于不同的數據質量維度之中,因此我們可以建立一種基于數據質量維度與臟數據的映射。依靠這種映射(表6),本文提出一種臟數據清洗方法如下:
(1)依靠企業制定的優先權,將五個數據質量維度進行排序。
(2)識別企業的數據質量問題。
(3)將第二步提出的數據質量問題分別匹配到各數據質
量維度中(依靠表6所示的臟數據分類)。
(4)根據企業能夠接受的開銷,選擇需要處理的數據質量維度。
(5)為數據質量維度中的各類臟數據選擇合適的數據清
洗算法。
(6)執行各數據清晰算法進行數據清洗。
5 一個實例演示
依靠本文提出的臟數據清洗方法,數據清洗可以視為基于五個數據質量維度來提高數據質量的過程。在此我們舉例來說明某企業如何應用該方法進行臟數據的清洗。
在某大學校園里,利用基于網絡的管理信息系統,學生可以獲取各類信息。例如每學年的課程信息,本學年的課程考試信息等。假設該系統中反映學生考試的數據表中包含如下屬性:學生號、學生姓名、考試日期、考試地點、考試科目等。通過檢查各屬性值,根據表3我們有可能會在系統中發現以下臟數據的存在:拼寫錯誤(DT.6),輸入值不在固定值內 (DT.5),單/多數據源中的數據冗余(DT.18,DT.33),屬性值的內容不足(DT.7),單/多數據源中的語法不一致問題(DT.23,DT.27),缺失數據(DT.1),過期數據,過期引用 (DT.3,DT.22)等。
依靠本文提出的臟數據分類方法,表7體現了該校園管理信息系統中的臟數據類型與對應的數據質量維度的映射。
如本文之前所提出的,在現實中,清洗所有數據源中的臟數據花銷是昂貴的,考慮到企業的實際需求時,這一做法是不劃算的。因此基于數據質量維度的權衡就必須在數據清洗時進行考慮。數據質量維度的權衡可以為我們提供有用的信息,例如哪些數據質量維度具有比較高的優先權。在上面所提到的具體實例中,假設該學校無法做到全部清洗表7中提出的全部臟數據,則該學校所面臨的實際問題是如何根據學校制定的優先權選擇一系列臟數據優先進行清洗。這一問題即是本文所提出的DDS問題。根據學校已制定的優先權規則,針對網絡數據而言,時效性是首先必須滿足的。例如學生考試的時間,地點與科目對學生而言,該信息必須做到準確與及時。學校需要保證系統中相關信息應該是準確而及時的以便為學生提供正確的考試信息。因此,相對與其他數據質量維度,現時度與準確度這兩個數據質量維度就顯得尤為重要。根據該學校制定的優先權規則,我們可以為五個數據質量維度以優先權降序的方式進行排序,依次為現時度、準確度、一致度,單一度和完整度。利用本文提出的數據清洗方法可以進一步系統地進行數據清洗。表7列舉出該校園系統中對應于五個數據質量維度的臟數據類型。我們很容易根據該表提供的信息找出對應于現時度與準確度這兩個數據質量維度下的臟數據類型。這些臟數據類型是在本例中應該最先被清洗的臟數據類型。因此,接下來的數據清洗任務則是根據已有的數據清洗算法或者方法針對以下臟數據類型首先進行清洗:DT.3,DT.5,DT.6,DT.7和DT.22。
如果我們僅僅依靠目前存在的臟數據分類系統,我們很難根據企業制訂的優先權來選擇相應的一組臟數據進行清洗。利用本文提出的數據清洗方法,依靠數據質量維度的優先權,我們可以直接選擇同現時度與準確度這兩個數據質量維度相關的臟數據進行數據清洗。其具體清洗步驟如下:
(1)將數據質量維度進行排序:現時度、準確度、一致度,單一度和完整度。
(2)識別系統中的數據質量問題:DT1,DT3,DT5,DT6,DT7,DT18,DT22,DT23,DT27,DT33。
(3)映射工作:見表6。
(4)選擇需要處理的數據質量維度:見表8。
(5)針對臟數據類型選擇合適的清洗算法。
(6)執行各清洗算法。
6 結論和展望
本文在充分分析文獻的基礎上,回顧了數據質量,數據質量維度的定義,探討了常見數據質量問題,闡明了數據質量管理與數據清洗之間的關系。針對臟數據揀選問題(DDS)提出了一種基于數據質量維度的數據清洗方法,該方法可以有效地幫助企業提高數據質量,同時解決DDS問題,降低數據清洗過程中的開銷。未來的研究工作包括數據清洗工具的開發。同時,不同臟數據類型清洗順序是否對整體數據清洗的效率和效果有所影響,以及針對不同問題領域而進行的數據清洗算法的選擇問題也是作者需要進一步研究的問題。
參考文獻:
[1]Ballou,D.P.,Tayi,G.K.: Enhancing data quality in data warehouse environments. Communications of the ACM,vo.42,No.1(1999).
[2]Pierce,E.M.:A progress Report from the MIT Information Quality Conference. http://www.tdan.com/view-articles/5143/.
[3]Kim,W.,Choi,B.,Hong,E.Y.,Kim,S.K.,Lee,D.: A taxonomy of dirty data. Data Mining and Knowledge Discovery,7,81-99(2003).
[4]Mong,L.:IntelliClean: A knowledge-based intelligent data cleaner. Proceedings of the ACM SIGKDD,Boston,USA (2000).
[5]Peng,T.: A Framework for Data Cleaning in Data Warehouses. Proc. of ICEIS 2008,pp.473-478,Spain (2008).
[6]Kim,W.:On three major holes in Data Warehousing Today. Journal of Object Technology,Vol.1,No.4 (2002).
[7]Müller,H.,Freytag,J.C.:Problems,Methods,and Challenges in Comprehensive Data Cleansing. Tech. Rep. HUB-1B-164(2003).
[8]Rahm,E.,Do,H.:Data Cleaning: Problems and Current Approaches. IEEE Bulletin of the Technical Committee on Data Engineering. vol.23,41,No.2 (2000).
[9]Oliveira,P.,Rodrigues,F.T.,Henriques,P.,Galhardas,H.:A Taxonomy of Data Quality Problems. Second International Workshop on Data and Information Quality (in conjunction with CAISE'05), Porto,Portugal (2005).
[10]Fellegi,I.P.,Sunter,A.B.:A Theory for Record Linkage. Journal of the American Statistical Association,vol.64 (1969).
[11]Orr,K.:Data Quality and Systems. Communications of the ACM,Vol. 41,No. 2(1998).
[12]Wang,R.Y.,Strong,D.M.:Beyond Accuracy: What Data Quality Means to Data Consumers. Journal of Management Information Systems,12,4(1996).
[13]Redman,T.C.:Data Quality for the Information Age. Artech House (1996).
[14]Jarke,M.,Jeusfeld,M.A.,Quix,C.,Vassiliadis,P.:Architecture and Quality in Data Warehouses: an Extended Repository Approach. Information Systems,Vol.24,No.3 (1999).
[15]Bovee,M.,Srivastava,R.P.,Mak,B.:A conceptual Framework and Belief-Function Approach to Assessing Overall Information Quality. In Proceedings of the 6th International Conference on Information Quality. MIT Boston-MA (2001).
[16]Fox,C.,Levitin,A.,Redman,T.:The notion of data and its quality of dimensions. Information Processing & Management.,vol. 30,no. 1. pp. 9-19 (1994).
[17]Why Dirty Data May Cost You $180,000. http://www.melissadata.com/enews/articles/1206/1.htm.
[18]Monitoring Data Quality Performance Using Data Quality Metrics.http://www.it.ojp.gov/documents/Informatica_Whitepaper_Monitoring_DQ_Using_Metrics.pdf.
[19]Adelman,S.,Moss,L.,Abai,M.: Data Strategy. Addison-Wesley Professional (2005).
[20]Elmagarmid,A.K.,Ipeirotis,P.G.,VeryKios,V.S.:Duplicate Record Detection: A Survey. . IEEE Trans. on Knowl. and Data Eng. 19,1-16 (2007).