最常见的数据质量问题及其来源
2023-05-30伊烨然
伊烨然
据调查,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个错误。这表明即使存在唯一标识符、验证检查和完整性约束,人为错误仍有可能产生并使数据质量下降。