本文主要面向那些想要提高数据库和数据仓库中的数据质量的数据从业者,同时也面向其工作影响数据质量的专业人士或受到不良数据质量影响的专业人士。
目标是提供一个思考数据质量指标的框架,以及一个确定团队应该使用哪些指标的流程。读完本文后,您应该了解应该跟踪哪些指标来提高数据质量。
为什么监控数据质量很重要
如果数据集存放在仓库中并且没有人使用它,这还有关系吗?数据的存在是为了被使用,无论是用于销售工具的销售数据、用于训练机器学习模型的产品数据,还是用于通过商业智能 (BI) 仪表板进行决策的财务数据。
使用数据的首要要求是拥有数据。第二个要求是具备处理数据的素养。第三个要求是对数据的信任。如果利益相关者不信任数据,他们不仅现在不会使用它,而且可能会永久不会使用这些数据。
数据质量是一个总括术语,涵盖了影响数据是否可用于其预期用途的所有因素。如果您曾在数据行业工作过,就会知道数据质量很重要。您可能还认为,提高数据质量是一项西西弗斯式的任务,即将巨石推上山,只是让它滚下来。坏消息是你将永远推着那块巨石。好消息是,通过正确的指标、策略和流程,巨石可以变得更小,你可以变得更强,山可以变得更低。
作为使用数据的人,您不需要被告知改进某些事物的最有效方法是对其进行衡量。不仅仅是在某个时间点或干预前后进行分析,而是持续监控。这就是数据质量的维度和指标变得相关的地方:它们是数据质量仪表板上的刻度盘和图表。
数据质量维度和指标简介
数据质量是一个与数据本身一样古老的话题。一个关键概念是数据质量的不同维度,即可以对数据质量进行分组的类别。然后,这些维度可以被实例化为数据质量指标,也称为数据库质量指标或数据仓库指标,具体取决于数据所在的位置,它们是特定的且可测量的。
推理数据质量维度的一种有价值的方法是确定维度是否与任务或用例相关。如果维度独立于用例,则称为内在数据质量维度。一个指导性问题是:如果数据从未被使用过,我们如何衡量其质量?将数据视为产品,这些指标就像衡量产品本身的质量,例如代码库中的技术债务数量、内部错误数量。
相反,外在数据质量维度取决于用例。一个指导性问题是:考虑到数据的使用方式,哪些质量衡量标准对当前的用例最有影响力?再次将数据视为产品,这些指标就像测量产品的停机时间、消费者提交的支持票数以及客户的平均加载时间。
在深入讨论具体细节之前,让我们先假设一个示例用例:假设您是A公司的首席分析工程师,这是一家向高端餐厅销售水培水族馆的电子商务公司。Snowflake是您的数据仓库,您使用dbt将数据转换为可用的形式。当涉及您生产的数据产品时,您可以使用Looker为销售副总裁和最高管理层等决策者创建仪表板,并使用反向 ETL 工具将数据发送到 Salesforce,以帮助销售代表努力完成其销售任务。
内在数据质量维度
好的,我们从独立于用例的内在指标开始进入数据质量维度。暂时回到基础知识,数据描述了现实世界中的实体、这些实体的属性以及在某个时间点发生的涉及那些本身可能具有属性的事物的事件。无论我们选择如何对世界进行建模,都会想到数据质量的几个方面:
准确性:数据是否准确地描述了现实世界?这些实体是否确实存在,它们是否具有您在数据模型中描述的属性,以及事件是否在您声明的时间和属性下发生?准确性是分形的,因此请务必检查每个抽象级别。
问题示例:本月仓库中销售的水族箱数量与销售人员报告的实际销售数量不符。分配给每个销售代表的地理位置不正确。特定销售的价值大幅下降。
衡量指标:数据与参考集的匹配程度、与其他数据的证实、通过对数据错误进行分类的规则和阈值,或者可以由人类验证。
完整性:数据描述现实世界的完整性如何?这里至少有两个层次。首先,数据模型有多完整?其次,在构建的数据模型中,数据本身的完整性如何?
问题示例:A公司的数据仓库有一个用于水族馆的表,但没有用于订阅鱼食的新产品线的表。在水族馆的表中,这些水族馆的新价格是空的。
衡量指标:针对完整映射的验证程度、空数据值或数据元素或缺失数据的数量、满足约束的数量、针对输入机制进行验证。
一致性:数据内部是否一致?如果存在冗余数据值,它们是否具有相同的值?或者,如果值是彼此的聚合,那么这些值是否彼此一致?引用完整性约束是一致性检查的一个示例。
问题示例:工程团队记录的水族箱模型与销售团队记录的模型不匹配。每月利润数字与每月收入和成本数字不一致。
衡量指标:通过检查来跟踪值的唯一性或实体的唯一性、系统内的确证、是否保持引用完整性。
隐私和安全:数据的使用是否符合预期的隐私级别并防止意外访问?这在我们这个经常发生数据泄露的世界中尤其重要,并且如果您的公司有合规性(例如 SOC 2)或监管(例如 HIPAA)要求。
示例问题:客户账单和位置信息存储在仓库中,数据科学团队的每个成员都能够查询该个人数据。对仓库的访问不会定期审核,也不会根据最小权限原则授予。
衡量指标:数据库用户可用的敏感数据值数量、不应访问的数据库用户数量、未屏蔽的敏感数据量。
新鲜度:数据是否描述了当前的现实世界?这个维度与数据的及时性密切相关,但与当前时刻而不是任务的时间进行比较。
问题示例:由于 Salesforce 的数据提取问题,报告的 Aquarium 销售产品数量落后一周。销售代表列表不会从内部人力资源系统更新。
衡量指标:最新时间戳与当前时刻之间的差异、与源系统的差异、针对预期变化率的验证、与其他数据的佐证。
除了这些主要的内在数据质量维度外,其他维度还包括:数据的完备性,这通常是数据的准确性、一致性和完整性的函数;数据的偏差,与准确性有关,但通常与倾斜的结果有关;简洁性,描述了冗余数据的数量。
为什么应该使用内在数据质量指标?首先,原因很重要。投资于改善数据质量的原因是一种预防措施,也可以缩短解决问题的时间。其次,它们通常更容易衡量,或者至少不需要与其他团队协作。
上图示例了内在和外在数据质量维度之间的差异,以及每个维度的示例。
外在数据质量维度
虽然内在数据质量维度可以在不与利益相关者交谈的情况下进行推理,但外在数据质量指标取决于利益相关者及其用例的知识。这些用例可以像产品需求一样进行分析:它们有特定的目的,具有非正式的需求、信任需求和时间限制。
相关性:可用数据是否满足当前任务的需要?利益相关者是否需要更多的数据来满足他们的用例?
问题示例:支持仪表板不包含客户购买的最新型号。Salesforce 不包含产品使用数据,以便销售代表正确向客户收费。
衡量指标:在面向用户的系统中包含更多数据的请求数量、最终用户临时拉取的数量、最终用户系统上未完成工作的数量、提出诸如“您的系统是否包含所需的所有数据”之类的定性评估问题支持你做的工作”.
可靠性:利益相关者认为数据真实可信吗?影响数据可靠性的一些因素包括:数据是否可验证、是否有足够的关于其谱系的信息、其质量是否有保证、偏差是否最小化。
问题示例:财务副总裁不信任季度收入报告中的数据。销售团队认为,由于技术问题,Salesforce中的产品使用数据并不能反映实际使用情况。
衡量指标:验证最终用户系统中数据的请求数量、经过认证的数据产品数量、最终用户可用的谱系的全面性、根据参考集衡量的偏差、使用系统的用户数量。
及时性:数据是否是最新的并可用于预期的用例?这里有两个组成部分:数据是否是最新的,以及向利益相关者提供数据的延迟是多少?例如,数据在仓库中可能是最新的,但如果利益相关者无法及时使用它,那么数据就不及时。
问题示例:营销数据延迟,导致营销支出仪表板滞后一天。或者,支持仪表板依赖于昂贵的查询,需要一个多小时才能完成,使得支持团队无法使用它来应答即时呼叫。
衡量指标:面向用户的系统中最新时间戳通过的规则数量、面向用户的系统检索及时数据所需的时间,整个数据基础设施传输值所需的时间(源到目标延迟)。
可用性:可以以低摩擦的方式访问和理解数据吗?影响可用性的一些因素包括:数据是否易于正确解释以及是否明确。
问题示例:支持团队使用的 Looker 仪表板难以解释。销售团队可用的产品数据水平太细化,他们无法采取行动。
衡量指标:以不同方式呈现数据的请求数量、帮助解释数据的请求数量、仅通过一种解释衡量的歧义量、使用系统的用户数量。
有效性:数据是否符合业务规则或定义
问题示例:报告的财务数据彼此不一致。会计团队确认的收入在不同时间点依赖于不同的定义。
衡量指标:与业务规则的符合程度、最终用户系统中数据违规的数量、数据内的一致性、描述数据用途的元数据量。
其他外在数据质量维度包括:充分性,数据足以完成给定任务的程度;一致性,类似于内在维度,但在面向用户的系统内;易于操作,与可用性维度相关。与内在维度一样,每个维度都可以有很多重叠。
为什么应该使用外部数据质量指标?首先,因为症状很重要。对改善症状的投资与从数据中得出的实际业务影响更加密切相关,并且还可以缩短识别时间。其次,它们通常更容易为另一个团队调整,因为您现在共享模型中的皮肤。
将数据质量指标付诸实践
现在我们有了内在和外在数据质量指标的列表,我们如何决定要测量什么,如何通过数据质量规则来测量它,以及如何使这些测量具有可操作性?我们发现以下一些指导原则有助于许多组织考虑其数据质量:
从用例开始:您的组织内最重要的数据用例是什么?你可能可以滔滔不绝地说出它们,但还是值得把它们写下来。在像A公司这样的电子商务公司,它可能是在季度董事会会议期间做出业务决策的销售预测,以及为营销活动获取适当的数据。写下这些用例可以将您的数据质量指标与最终重要的内容联系起来,并告知应该纳入哪些利益相关者。
确定痛点:在这些用例中,哪些数据质量问题最近造成了最大的麻烦?如果答案是“没有”,那就太好了!对于我们其他凡人来说,答案可能是这样的:在为季度董事会会议创建销售预测时,部分客户的数据不会刷新,业务用户难以解释仪表板,并且计算不符合要求与最新的业务指标保持一致。
连接到数据质量维度并描述如何衡量指标:最近出现问题的原因,它们与之前的数据质量维度有何关系?在前三期中,第一个维度可能是最新的,通过仪表板内数据的最后刷新日期与仪表板的访问时间之间的平均时间差来衡量。第二个指标可能是可用性,由对高管进行的季度调查来确定,该调查回答了“在 1 到 10 的范围内,Looker 仪表板中的数据的可用性如何”这一问题。第三个指标可能是有效性,它是根据一套独立实施业务规则的测试来衡量仪表板上显示的输出数量,从简单的规则(如“收入应该大于0”)到复杂的规则(如“净收入”)留存率与总收入、扩张和收入流失数字一致。”
使指标易于理解且可操作:最后,我们如何使这些指标变得有用?数据团队可能会将这些指标以原始形式包含在其季度目标和关键结果 (OKR) 中。相同的指标可以存储在数据仓库中,并作为单独的视觉元素呈现在仪表板中。或者,对于数据质量指数的想法,可以将这些数字汇总在一起。例如,可以每天测量最新指标,将(访问时间)和(更新时间)之间的差值取幂以警示缓慢的更新。可用性指标可以是所有利益相关者调查的平均可用性。那么有效性度量可以是针对目标数量的规则违规数量。如果这些指标中的每一个都被归一化,则最终的 DQI 可以计算为这三个数字的加权平均值。
以上是识别相关数据质量维度、测量它们和指标并使它们具有可操作性的过程。
当我们浏览这个示例时,您可能想知道“但是有很多方法可以将这些指标转化为数字。没有一种正确的方法可以衡量数据质量。但我们不应该让完美妨碍美好。将上面的列表想象成去医生办公室时测量血压、静息心率等时的生命体征。这些数字本身可能很有用,但这些数字的趋势可能更重要。
一旦您获得了满意的数据质量指标,请记住古德哈特定律,该定律指出“当一项措施成为目标时,它就不再是一个好的措施。”即使指标趋向于理想状态,也应该考虑是否存在其他可能与您已经建立的指标正交的数据质量指标。
提高数据质量指标的策略
我们一开始就说过,我们不会讨论提高数据质量的策略和流程。我们只想留给您两个想法。托尔斯泰说:“幸福的家庭都是相似的。”每个不幸的家庭都有自己的不幸。”数据也是如此:高质量的数据都是相似的;低质量的数据本身就是低质量的。这里没有一刀切的方法,由您决定哪些问题是最优先的。
也就是说,组织内部运营改进的一个富有成效的框架是人员、流程、技术框架:
人员:您的团队成员如何帮助您制定数据质量指标,让组织负责满足这些指标,并在确保高质量数据方面发挥作用?例如,工程组织可以实施拉取请求审查,以尽量减少对上游系统的重大更改,从而影响下游数据产品的可靠性。您可以聘请数据质量工程师、数据管理员或数据治理主管来直接负责数据质量指标的实施和改进。
流程:您的组织如何实施业务流程来提高数据质量?数据团队可以执行一次性数据质量评估。或者,为了持续改进,团队可以围绕数据质量指标、指标记分卡实施季度 OKR,营销和销售团队可以引入培训计划来影响数据输入,从而影响数据准确性和数据有效性,数据团队可以实施补救手册。
技术:技术如何帮助提高数据质量指标?例如,Segment Personas 和 Iteratively 等工具可以确保产品分析数据的一致性和可靠性。Fivetran 和 Airbyte 等 ELT 解决方案以及 Hightouch 和 Census 等反向 ETL 解决方案可以帮助确保数据是最新且及时的。最后,还有用于数据质量测量和管理的数据质量工具,以及用于修复数据值的数据清理工具。
了解数据质量指标并有意识地了解哪些指标与特定业务最相关。如果不衡量,就很难改进。
总结
虽然数据质量始终是一个问题,但定义数据质量指标可以帮助您了解自己的处境,随着时间的推移进行改进,并与团队保持一致。
内在数据质量指标独立于用例,而外在数据质量警报则取决于用例。内在指标更容易定义和预防,而外在指标更容易调整和解决症状。
关键的内在数据质量指标包括准确性、完整性、最新性、一致性和隐私+安全性。关键的外在数据质量指标包括及时性、相关性、可靠性、可用性和有效性。
可以通过识别组织中数据的关键用例、这些用例出现的问题以及选择跟踪这些问题的指标来定义要衡量的指标。
人员、流程和技术是可以开始提高数据质量的三个要素。