伊燁然
據調查,56 %的組織面臨至少4種不同類型的數據質量問題,而71 %的組織面臨至少3種不同類型的問題。組織在設計數據質量框架和解決數據質量問題時花費了大量時間和資源。但要獲得良好的結果,了解這些問題的確切性質并確定它們如何最終出現在系統中是很重要的。
數據質量問題是指數據集中存在無法容忍的缺陷,從而降低了該數據的可靠性和可信度。
跨不同來源存儲的數據必然包含數據質量問題,由于多種原因,這些問題可能會被引入系統,例如人為錯誤、不正確的數據、過時的數據或組織中缺乏數據素養技能。由于數據為關鍵業務提供動力,因此此類問題可能會給公司帶來一些嚴重的風險和損害。
在所有業務流程中利用高質量數據的需求非常明顯。領導者正在投資招聘數據質量團隊,因為他們想讓人們負責獲得和維持數據質量。并且設計了復雜的數據質量框架,采用先進的技術,確保數據質量管理快速準確。所有這些努力都是為了讓清潔數據夢想成真。
但是,如果不首先了解是什么污染了數據以及它究竟來自何處,這一切都是不可能的。
一個擁有200~500名員工的普通組織使用大約123個SaaS應用程序,用于捕獲、管理、存儲和使用數據的應用程序數量龐大且種類繁多,是導致數據質量差的主要原因。在這種情況下最常見的問題是為同一實體存儲多個記錄,例如,將客戶在購買過程中與品牌進行的所有互動都記錄在數據庫中的某個位置。這些記錄可能來自網站、登陸頁面表格、社交媒體廣告、銷售記錄、賬單記錄、營銷記錄和購買點記錄等領域。如果沒有系統的方法來識別客戶身份并將新信息與現有信息合并,最終可能會在整個數據集中出現重復信息。要修復重復,必須運行高級數據匹配算法來比較2個或多個記錄并計算它們屬于同一實體的可能性。
一個數據集通常引用多個數據。但是,當2個或多個不同的數據之間沒有定義和強制執行任何關系時,最終可能會得到很多不正確和不完整的信息。
以這種情況為例:含今年贏得的新業務以及從去年升級的現有客戶的記錄。除了基本客戶信息外,肯定有一些客戶字段僅適用于New Business或僅適用于New Customer。可以使用相同的通用數據模型處理這2種情況,但它可能會導致許多數據質量問題,例如缺少必要的信息,以及客戶記錄中的模糊或不正確的信息。
要處理此類情況,應該始終創建特定的數據模型并加強它們之間的關系。通過在實體之間強制執行父/子(超類型/子類型)關系,可以使處理此信息的人員更好地捕獲、更新和理解數據。需要將基本Customer字段與其子子類型(即New Business和Existing Customer)分開。
參照完整性意味著數據記錄與其引用對應物是真實的。要了解由于缺乏參照完整性而產生的問題,假設有一家零售公司可能將他們的銷售記錄存儲在Sales表中,每條記錄都提到在進行銷售時售出的產品,因此,希望可以在Sales表中找到銷售ID和產品ID。但是,如果Sales記錄引用Product表中不存在的ProductID,則很明顯,數據集缺乏引用完整性。
這些問題可能會導致團隊創建不正確的報告、運送不正確的產品或將產品運送給不存在的客戶等。
關系基數是指2個實體之間可以擁有的最大關系數。通常,可以在數據對象之間創建不同類型的關系,這取決于公司允許如何進行業務交易。
參考以下示例以了解不同數據對象之間的基數,例如客戶、購買、位置、產品:
一個客戶一次只能有一個位置;
一個客戶可以進行多次購買;
許多客戶可以來自一個位置;
許多客戶可以購買許多產品。
如果基數約束沒有明確定義,它可能會在數據集中引起許多數據質量問題。
我們經常發現與數據集屬性或列相關的問題,很多時候數據模型沒有明確定義,因此結果信息被認為是不可用的。發現的常見問題有:
存在具有相同名稱的多個列,其中包含一條記錄的不同信息;
存在具有不同名稱的多個列,這在技術上意味著相同的事物,因此存儲相同的信息;
列標題不明確,會使數據輸入操作者混淆要在列中存儲的內容;
有些列總是留空;要么是因為它們已被棄用,要么是沒有獲取此類信息的來源;
有些列從未使用過,因此被不必要地存儲。
所有這些場景都描述了數據集中的屬性管理不善,并增加了數據質量問題的數量。
大多數數據質量問題都是由于缺乏驗證約束造成的。驗證約束確保數據值有效且合理,并根據定義的要求進行標準化和格式化。例如,缺少對CustomerName的驗證約束檢查會導致以下錯誤:
名稱中的額外空格(前導、尾隨或中間的雙空格);
使用不適當的符號和字符;
名稱的長度太長;
單字母中間名不大寫或不以句號結尾,名字、中間名和姓氏的所有字母都大寫,而不是僅將第一個字母大寫。
此外,某些字段可能包含不正確的縮寫和代碼,或其他不屬于屬性域的值。如果這些約束未在數據模型中定義并在數據入口點上強制執行,最終會在數據集最關鍵和最基本的字段(例如客戶姓名)中出現大量驗證錯誤。
數據集中的許多字段是從其他字段派生或計算得出的。因此,每次在相關字段中輸入或更新新數據時,都會設計、實施并自動執行公式。公式或計算中存在的任何錯誤都可能導致數據集的整個列中獲得不正確的信息。這會使用于任何預期目的的字段無效。
根據其他字段計算的字段示例包括根據生日計算的年齡、根據購買產品數量計算的適用折扣或任何其他百分比計算。
與數據相關的最常見挑戰之一是在所有節點或數據源中維護關于同一“事物”的一個定義。例如,如果一家公司使用CRM和一個單獨的計費應用程序,則客戶的記錄將出現在這2個應用程序的數據庫中。隨著時間的推移,在所有數據庫中保持一致的客戶信息視圖是一項艱巨的任務。
缺乏一致性可能會擾亂企業所有職能和運營的報告。一致性不僅與數據值的含義有關,還與它們的表示有關。例如,當值不適用或不可用時,必須使用一致的術語來表示所有來源的數據不可用。
數據完整性是指數據集中存在必要的字段。數據集的完整性可以垂直(屬性級別)或水平(記錄級別)計算。通常,字段被標記為必填以確保數據集的完整性,因為并非所有字段都是必需的。
通常會在大量字段留空的數據集中發現此數據質量問題———大量空格,但空并不一定意味著不完整。數據集的完整性只能通過首先對數據模型的每個字段進行如下分類來準確衡量:
字段是必填項嗎?是否不能留空,例如,客戶的名稱;
該字段是可選的嗎?是否必須要填寫,例如,客戶的愛好字段。
該字段在某些情況下不適用嗎?根據記錄的上下文,它是否變得無關緊要,應該留空,例如,未婚客戶的配偶姓名。
數據老化得非常快———無論客戶是否更換了他們的住址、電子郵件地址、聯系電話等。此類更改可能會影響數據集的流通性,并導致產生數周或數月的舊數據,從而導致根據過時的信息做出關鍵決策。為確保數據集的流通性,可以設置提醒以更新數據,或對屬性的年齡設置限制,以確保所有值在給定時間內接受審查和更新。
盡管為保護數據及其跨數據集的質量做出了所有正確的努力,但組織中缺乏數據素養技能仍然會對數據造成很大的損害。員工經常存儲錯誤的信息,因為他們不理解某些屬性的含義。此外,他們不知道自己行為的后果,例如在某個系統或某個記錄中更新數據會產生什么影響。
這種差異只能通過創建和設計數據素養計劃與課程來消除,這些計劃和課程向團隊介紹組織數據并解釋:
它包含什么;
每個數據屬性的含義;
其質量的可接受標準是什么;
輸入/操作數據的錯誤和正確方法是什么;
使用什么數據來實現給定的結果。
錯誤輸入或拼寫錯誤是最常見的數據質量錯誤來源之一,人類在輸入10 000個數據時至少會犯400個錯誤。這表明即使存在唯一標識符、驗證檢查和完整性約束,人為錯誤仍有可能產生并使數據質量下降。