2022年3月,Equifax正在将其数据从本地系统迁移到新的云基础架构,这是一个众所周知的棘手过程。在某个地方出现了错误,影响了信用评分的计算方式。大约12%的公司信用评分数据受到影响,成千上万的人最终的信用评分相差了25分或更多。由于不知道错误的存在,消费Equifax数据的借贷机构改变了他们提供给客户的利率,甚至拒绝了本应被批准的贷款和抵押贷款申请。不幸的是,这并不是最近登上新闻头条的唯一一起数据质量问题混乱的事件:
- 2020年,一项数据错误导致英国近1.6万份新冠病毒检测阳性结果丢失,可能导致5万人未被告知自我隔离。
- 所谓的航空公司"错误票价",有时无意中打了超过90%的折扣,迫使航空公司要么亏损,要么因为未能兑现这些"错误价格"而损害了声誉。
- Facebook向一组社会科学家提供了一个数据集,其中遗漏了一半的美国用户,影响了研究社交媒体对选举和民主影响的学术工作的结果。
- 视频游戏公司Unity在从第三方获取的错误训练数据后,他们的人工智能广告系统损失了1.1亿美元。
这些新闻故事展示了特别严重的数据质量问题可能产生的影响,但这并不是全部。绝大多数数据质量问题都未被发现,在您阅读本文的同时,正在悄悄地为公司破坏价值。而被发现的数据质量问题中,很少有是公开披露的。
以下是两个您可能会有共鸣的轶事,如果您曾经在一个数据团队工作过:
• 有一天,一家大型科技公司的一个产品仪表板显示净推荐分数(NPS)调查结果突然下降。这很可能意味着客户对产品的变化感到沮丧,因此组织内外都引发了警报。高级领导层介入,并创建了一个任务组。工程师和分析师评估了过去一个月的每一个代码变更,并彻底查阅了他们的所有用户数据,以找出可能导致得分暴跌的原因。 最终,数据科学家对NPS数据进行分析后找到了根本原因。在他们的分析中,他们发现10分中的9分或10分的任何得分在最新结果中都不再出现。这引发了工程团队的调查,他们发现NPS调查被嵌入了一个iframe中,导致最高NPS响应值被截断,因此客户无法在物理上(或者,我们应该说,数字上?)选择9或10。
• 一家顺风车公司建立了一个机器学习模型来检测潜在的欺诈新乘客账户,并自动阻止它们注册。他们的模型依赖于第三方信用卡数据。除其他外,该模型学习到当来自第三方的数据为空时,欺诈的可能性更高;这表明该人可能正在使用一张可能不合法的卡注册。 一切都运行良好,直到某天第三方出现了数据质量问题,导致其发送空数据的频率比以前更高。没有人注意到这个错误,公司继续使用机器学习模型进行欺诈预测。这导致许多新用户被拒绝注册该公司的服务,因为他们被错误地归类为欺诈账户。
我们打赌,每个与数据打交道的读者都有类似的经历。当数据处理正确时,它释放了令人难以置信的价值。但当您对数据没有质量保证时,就像试图使用可能被污染的食材经营餐厅一样。您可能会幸运地没有人生病,但有时,您的客户和您的业务可能会受到影响,您可以打赌他们不会再以同样的方式看待您的食物。一项研究发现,91%的IT决策者认为他们需要改善公司的数据质量;77%表示他们不信任自己组织的业务数据。
有没有办法重新建立对数据的信任?您是否可以确保我们刚刚提到的那些问题立即被检测到并迅速解决,以免其他人受到影响,甚至(尤其是)当您处理大量复杂数据时? 我们相信答案是肯定的,解决方案是使用机器学习自动化您的数据质量监控。本书将帮助您发现自动化数据质量监控的力量。您将学习如何实施一个平台,以确保您的业务获得高质量、可信赖的数据。
高质量的数据是新黄金
感觉就像昨天,企业还在努力从孤立的数据库中提取数据。Apache Hadoop使得在大型和复杂数据集上运行更高级的查询成为可能(如果你知道你在做什么的话)。尽管如此,在不久的过去,数据通常仅限于一小部分交易系统------一个"高墙围起"的关键资源,受到严格控制,访问受限。
在几年的时间里,云数据仓库/湖和数据转换工具迅速改变了我们处理数据的方式。现在,组织接触的每一丝信息都被记录和存储。组织中的任何决策者都可以(a)打开一个交互式仪表板或报告以用数据回答问题,或者(b)直接查询数据。建立在数据基础上的机器学习系统正在指导或自动化业务决策,并推动新产品的发展。
"我们坚信未来10年将是数据的十年,"硅谷投资公司Andreessen Horowitz在2022年写道。媒体喜欢将数据称为新石油和新黄金。我们认为对这种说法应该有一个重要的警告:只有在数据本身是高质量的情况下,它们才是正确的。糟糕的数据比没有数据更糟糕。
为了理解其中的原因,让我们看看围绕数据发生的一些趋势以及在每种情况下质量是决定性因素。
数据驱动的公司是当今的颠覆者
通常的故事情节是,当今增长最快、最成功的公司是软件公司。但仔细观察,它们实际上是数据公司。以亚马逊为例。他们不仅通过拥有世界一流的软件工程人才构建了全球最大的零售平台。他们通过找出如何利用数据进行个性化推荐、实时定价和优化物流来实现这一目标。 再举一个例子,Capital One是美国第一批将数据从本地系统迁移到云端的银行之一。他们通过使用数据进行个性化营销和做出更明智的核保决策来区分并加速了他们的增长。
无论您看的是金融服务、商业、数字媒体还是医疗保健,数据和软件的交汇点是竞争的前沿。然而,如果企业使用员工难以信任的低质量数据,它们将无法做出明智的决策,更不用说颠覆一个行业了。如果您的数据质量基础不稳定,投资于新的数据科学、机器学习和生成式人工智能项目将是一个错误。
数据分析已经民主化
为了跟上颠覆者的步伐,或者成为其中之一,公司正在要求每个团队变得更加数据驱动。他们已经将分析专家嵌入到功能单位(市场营销、增长、财务、产品团队等)中,以推动更复杂的数据使用来进行决策:我们能否提取客户过去的浏览和购买活动数据,以便我们编写更加个性化的电子邮件?我们能否查看我们的高活跃用户如何接受最新功能,以确定我们的发布是否成功?
现在有大量的工具可以让分析师------或者实际上是交叉功能团队中的任何人------自助回答与数据相关的问题,而无需编写任何代码。几秒钟内,他们可以创建一个仪表板或报告,而不久前这可能需要工程师一个月的时间才能完成。为了支持这些分析需求,数据不再由一个小型的集中团队维护,也不再作为整个业务的统一事实表可用。相反,数据分散并由更广泛的人群管理,这些人更接近业务线。
没有高质量的数据,我们看到的是,民主化对数据工程团队来说成为一场噩梦。他们被一大堆问题淹没,总是为下一个火灾演练而提心吊胆。与此同时,组织的其他部门在试图使用数据时变得越来越怀疑数据。启发法和直觉再次成为常态。最终,如果对数据没有信任,民主化分析就是在浪费时间。
AI和机器学习是差异化因素
许多公司都将AI/ML列入他们的路线图,因为它可以通过个性化和自动化交互形式创造令人难以置信的价值。机器学习(或ML,我们将与AI交替使用)依赖于先进的统计模型,根据数据中称为特征的历史信号来预测未来。通过足够的特征数据和正确的建模技术,AI可以优化或个性化业务关心的实体(消费者、内容、交易等)的任何频繁交互。
数据质量决定了ML模型的成败。您必须确保在训练和推理过程中都有高质量的数据集。如果模型在生产环境中看到的数据与它们训练时所见的数据分布相匹配,那么模型通常会表现得很好。但是,当模型面对远远超出其之前所见分布的数据时,它们往往会失败得很惨。(与人类相比,人类可以使用更高阶的智能从一个领域或分布泛化到另一个,并考虑到与正常情况显著不同的情况。)
生成式AI和数据质量
说到差异化因素:那么生成式AI呢?这些模型不像传统的ML那样工作。它们不是基于从结构化数据中提取的特征进行预测,而是直接吸收原始的非结构化数据------就像从消防水龙管中喝水一样。 如果企业越来越依赖生成式AI,数据质量是否仍然相关呢?答案肯定是肯定的。提示将需要将企业的结构化数据(如客户信息)纳入其中。如果您使用这些模型自动化了业务的某些部分,您需要跟踪该自动化,并通过高质量的日志确保事情按预期进行。而且,即使生成式AI达到或超过了炒作,我们始终需要能够信任我们聚合、计数和分析的数据,就像时间和金钱一样。 此外,组织提供给这些生成式AI模型的非结构化数据仍然会存在数据质量问题。这些问题使用传统的数据质量监控方法会更难找到,并需要使用自动化的ML或AI来识别。这使得本书介绍的技术作为确保新的生成式AI应用程序使用高质量输入的基础更加相关。
公司正在投资于现代数据堆栈
如今的数据趋势摘要中没有提及现代数据堆栈就不完整(尽管坦率地说,我们迫不及待地希望这个术语过时了!)。如今,一套正确的软件即服务(SaaS)供应商可以完成10年前一支由100名全职数据工程师组成的团队所能做到的事情。企业正在从传统的本地存储迁移到云系统,这让它们能够比以往任何时候更轻松地利用更多的数据。
现代数据堆栈是一项重大投资。当数据质量工具被忽视时(如图1-1所示),这项投资就会受到破坏。特别是因为迁移可能是数据质量问题的主要来源,组织往往在升级后得到处于糟糕状态的数据(请参阅第9页的"数据迁移"部分)。在一个全新的系统中追踪问题的根本原因甚至更加困难,因为每个人都在学习如何操作。
更多数据,更多问题
在前一节中,我们解释了推动企业比以往更加依赖高质量数据的趋势。不幸的是,实现高质量数据比以往任何时候都更加困难。复杂性更多,速度更快,而且缺少了保障。这是同一枚硬币的两面:进步与痛苦。在本节中,我们将探讨导致数据质量下降的一些最重要因素。
对于可能发生的具体数据质量问题类型的分类法,请参阅附录。
数据工厂内的问题
传统上,仓库一直是公司内部数据系统运作方式的比喻,强调了货物的存储和运输。但随着现代数据堆栈的崛起,以及公司处理数据的新方法,这个比喻已经不再完整。相反,我们认为如今的公司更像是在运营一个更接近数据工厂的环境:一个将原材料转化为有用产品的复杂环境。 我们不再摄取钢铁、橡胶和电子器件,而是摄取流式数据集、数据库的复制品、SaaS应用程序的API提取和来自数据源的原始文件。这个工厂建立在一个基础之上,但这个基础不是水泥,而是云数据仓库和数据湖。在这个工厂里操作的机器,本质上是提取、转换和加载(ETL)工具,如Matillion和Fivetran,以及编排平台,如Apache Airflow,以及在dbt、Apache Spark和SQL中进行的转换。在工厂内操作机器的人是现代数据团队的数据工程师和分析工程师。而产出的产品,不再是消费者或工业品,而是由业务用户和数据专业人员制作的精选数据产品,用于支持业务决策、ML算法的训练和预测,以及输送到其他数据系统的直接数据源。
在物理工厂中可能出现的各种问题,在数据工厂中同样可能发生。图1-2提供了一个概览。
机器故障
数据处理或编排工具可能会完全崩溃,导致数据流停止或降级。
调度错误
数据处理作业可能按顺序错误或频率不正确运行,导致数据丢失、计算错误或重复数据。
原材料质量差
由于上游问题,输入到工厂的原始数据可能质量较差,不良影响可能在仓库的其余部分传播开来。
错误的部件
在处理和操作数据的SQL、Spark或其他代码中可能会引入错误,导致无效的连接、转换或聚合。
设置错误
工程师可能在配置复杂数据处理作业时犯错,这可能导致各种各样的问题。
升级失败
尝试升级代码、应用程序版本或整个子系统可能会引入微妙但普遍存在的差异,影响数据的编码或转换方式。
通信失败
为了增加新功能或功能,意图良好的更改可能会与其他受影响的团队沟通不畅,导致数据处理逻辑的不一致,从而产生质量问题。 数据工厂内部的问题通常是数据质量事件最常见的来源,因为它们直接影响数据的流动和内容(并且在生产数据环境之外进行测试可能非常困难)。
数据迁移
随着公司不断追求最新和最优秀的基础设施,数据迁移越来越频繁。这包括从本地数据仓库迁移到云提供商(例如,从Teradata到Snowflake),从一个云提供商迁移到另一个云提供商(例如,从Amazon Web Services [AWS]到Google Cloud Platform [GCP],反之亦然),从一个数据库迁移到另一个数据库(例如,从PostgreSQL到AWS Aurora),或从一个数据库版本迁移到另一个数据库版本(例如,Elasticsearch集群迁移)。
所有这些迁移都容易出现数据质量问题。让我们来看看从本地数据仓库迁移到云/ SaaS提供商的情况。许多公司的数据流水线起源于逐渐过时的主机遗留系统,这些系统被转移到日益过时的本地数据仓库中。这些传统系统已经存在了几十年,随着新功能的添加、团队的来来去去和业务需求的变化,它们累积了大量的增量复杂性。
当将这些错综复杂的数据处理和存储移至云端时,公司试图复制其在本地环境中所做的工作。但在云端重新创建本地流程时可能会引入非常微妙的问题,导致重大的数据质量后果。
例如,我们与一家公司合作时,他们提到他们客户的出生日期在此类迁移中受到了严重破坏(在图1-3中可视化)。在他们的传统主机系统中,出生日期被存储为距离某个特定参考日期(例如1900年1月1日)的整数偏移量。在导出时,这些整数然后被转换为新云数据仓库中的日期。这似乎很简单,但是令人不知不觉的是,云数据仓库自动使用Unix时间戳参考1970年作为偏移量。所有的出生日期都被推迟到了未来。
与许多数据质量问题一样,后果发生在后来,而且是悄无声息的。该公司有一个营销应用程序,根据客户的年龄向他们发送电子邮件。一旦将此应用程序指向新的云数据仓库,直到有人注意到问题,没有客户收到任何电子邮件。(营销团队经常因为数据质量差而承受相当大的痛苦。一项调查发现,营销人员在数据问题上浪费了其总预算的21%。)
第三方数据来源
使用第三方数据------即来自公司外部的数据------比以往任何时候都更容易且更普遍。举几个例子,当Jeremy在Instacart时,经常收集的第三方数据包括:
• 用于需求预测/调度的天气数据
• 用于路由的地图信息的第三方服务
• 用于丰富用户搜索和购物体验的消费品包装(CPG)产品目录数据
• 用于避免退单的欺诈倾向评分数据
• 用于确定每个商店位置上货架上有什么商品的零售商库存数据
通常,第三方数据被编码为两个合作伙伴之间的数据关系:公司A和公司B必须共同为客户X提供服务或实现操作Y,这就需要交换数据。有时,这被称为第二方数据。
在其他情况下,您正在使用公共数据或由第三方服务提供商打包的数据,以一对多的关系进行转售,通常用于对您拥有有限信息的实体(客户、公司、位置)做出决策。如果您浏览在线目录Demyst上的公开可用数据源,您会发现只需点击几下就可以利用全面的税收、财产和业务数据。
第三方数据是数据质量问题的常见来源。这不仅是因为提供者会犯错误,还因为他们经常进行更改,例如对他们的API或数据格式进行更改。除非您已经有一个非常明确的数据合同,否则第三方不会一定考虑他们的更新可能会如何影响您的特定用例,也不会有义务提供通知或减轻措施。
公司的增长与变化
我们认为几乎所有的数据起初都是高质量的。当产品首次构建和仪表化时,由构建它的工程师捕获的关于该产品的数据通常与他们的意图和产品的功能非常一致。 但数据并不孤立存在。在现实世界中,公司不断地调整和改进其产品,这反过来会影响这些产品发出的数据。这就像热力学的第二定律:数据的熵随着时间的推移总是会增加。随着时间的流逝,以下因素会导致数据质量下降:
新功能
新功能通常会扩展系统捕获的数据范围。就像这是一种"添加额外列"类型的变化,数据质量风险并不高。然而,在某些情况下,新功能可能会取代现有功能,这往往会对系统发出的数据产生突然的影响。在许多情况下,新功能可能会改变数据的形状。粒度级别可能会增加------例如,数据现在可能在项的级别上而不是整个产品的级别上进行捕获。或者以前是单个消息的内容可能会被分解并重组为多条消息。
错误修复
根据卡内基梅隆大学的CyLab可持续计算联盟的数据,平均商业软件每1000行代码含有20-30个错误。错误修复可能会产生与新功能相同的影响。它们也可能真正改善数据质量------但当这种突然的改善对依赖于数据的系统造成"冲击"时,可能会产生负面后果(请参阅第16页的"数据冲击"部分)。
重构
重构发生在团队想要改进应用程序背后代码或系统结构而不改变功能的情况下。然而,重构通常会带来意外的变化风险------特别是对于可能没有在应用程序代码中进行强力测试的数据捕获等内容。
优化
频繁地,更改只是为了提高应用程序的速度或效率。在许多情况下,数据的捕获方式可能是性能问题,更改可能会影响系统发出的数据的可靠性、时间粒度或唯一性。
新团队
新团队通常会继承一个遗留应用程序,并且对其与其他系统的交互方式或其生成的数据的消耗方式了解有限。当他们对产品进行更改时,他们可能会无意中与其他团队的现有期望产生冲突,从而引入数据质量问题。
停机
除了有意的更改外,许多系统简单地会发生停机,停止运行或以降级服务的方式运行。在这些停机期间,数据捕获通常会完全丢失。这通常不是数据质量问题本身,因为数据的缺失反映了由于停机而活动缺乏的情况。但在许多情况下,停机可能会影响到发出的数据,而不影响服务本身,这就是一个数据质量问题。
外生因素
当您利用数据进行决策或构建产品时,总会有一些影响数据的因素是您无法控制的,例如用户行为、全球事件、竞争对手行动以及供应商和市场力量。请注意,这些本身并不是数据质量问题,但它们通常看起来和感觉起来像是数据质量问题,可能需要以类似的方式处理。
例如,在某些行业中,公司根据实时数据做出自动决策来应对竞争对手的行动。电子商务公司监控竞争对手的价格数据,并几乎即时调整其价格。航空公司也是如此。在这些情况下,如果竞争对手以突然、急剧的方式改变其行为,业务将立即做出相同的反应,并且会导致数据的大幅度变化。重要的是,公司需要收到有关这些变化的通知,因为它们可能并不总是理想或预期的。
任何关于外生因素的讨论都不能不提及COVID-19大流行。在分析用户行为时,每个人都必须将COVID-19的开始几个月视为特殊情况。例如,图1-4显示了2020年3月芝加哥出租车行程里程数数据发生了巨大变化的情况。
在COVID-19期间,机器学习模型不得不迅速根据新鲜数据进行重新训练,因为它们基于历史趋势的假设不再适用。在一个众所周知的案例中,Zillow用于预测房价的模型------这个模型支撑着Zillow Offers的新业务部门------无法快速适应。在变化莫测的市场中,自动化服务为一些无法销售的房屋支付了过高的价格,令人遗憾的是,由此Zillow不得不裁员近四分之一的员工。
团队通常会发现自己处于以下两种情况之一,涉及到外部因素:
• 在某些情况下,如COVID-19,外部变化的剧烈程度足以使您需要警惕您的决策流程,并可能重新训练您的机器学习模型。这几乎就像是一个数据质量问题------这是一个您希望立即得到通知的变化,以便您能够进行损害控制。
• 在其他情况下,外部因素会产生更微妙的影响,例如影响您订单处理时间的供应链问题。
您需要快速了解这些变化的背景,并排除任何可能的数据质量问题,这些问题通常看起来像是真正的外部趋势。
为什么我们需要数据质量监控
随着高质量数据的重要性日益增加,以及数据质量问题比以往更为猖獗的事实,您可能已经被说服改善数据质量的重要性。但您应该如何思考这样的举措呢?它是一次性修复------在几个月或几个季度的时间内整理您的数据,然后让事情顺利进行呢?
对于软件来说,这种方法通常是有道理的,但对于数据来说则完全不同。代码今天和明天是一样的,除非有意进行更新。您可以在受控的QA环境中进行测试,还可以运行只隔离系统一部分的单元测试。一旦您的测试通过,您基本上就完成了。
另一方面,数据是混乱且不断变化的。它依赖于您无法控制的外部因素,例如用户如何实时与您的产品互动,因此您实际上只能在生产环境中对其进行全面测试。您的测试必须能够过滤掉所有噪音------而真正的数据质量信号中有很多噪音。
因此,虽然软件缺陷通常通过自动化测试和用户反馈很快就能被检测和修复,但我们坚信绝大多数数据质量问题从未被发现。因为团队缺乏适用于数据的正确持续监控工具,问题默默发生并被忽视。
更糟糕的是,自问题发生以来过去的时间越长,修复数据质量问题的成本就会急剧增加:
- 可能导致问题的潜在更改数量随着评估时间的增长呈线性增长。
- 团队对更改原因或更改可能带来的影响的了解随着更改发生后的时间而减少。
- 修复问题的成本(包括回填数据)随问题首次出现后的时间增加而增加。
- 长时间存在的问题最终会成为其他下游系统的"正常行为",因此修复它们可能会引发新的事故。
当事故引入并稍后修复时,实际上会产生两种不同类型的影响。我们将其称为数据疤痕和数据冲击。
数据疤痕
事故发生后,除非数据经过细致修复(通常是不可能或昂贵的),否则它将在数据中留下疤痕。我们最早听到这个术语是由 Faire 的首席数据官兼联合创始人 Daniele Perito 使用的。疤痕是指一段时间内给定数据集的一部分记录是无效或异常的,未来任何操作这些记录的系统都不能信任这些记录。
数据疤痕将影响到机器学习模型,因为这些模型在疤痕期间必须适应学习数据中不同的关系。这将削弱模型的性能并限制其从疤痕期间捕获的所有数据中学习的能力。它还会减弱模型对受疤痕影响的特征重要性的信任度------模型将对这些输入进行轻量化处理,错误地认为它们在数据集中不那么普遍。即使您设法回到过去并修复疤痕,也很容易在下游机器学习应用程序中意外地包含一些当前状态信息,从而引入所谓的数据泄漏。
这会导致模型在离线评估中表现非常好(因为它可以访问来自未来的"时间旅行"信息),但在生产环境中表现不稳定(因为它不再拥有这些信息)。
数据疤痕还将严重影响对该数据集进行的任何未来分析或数据科学工作。它们可能导致更复杂的数据流水线,这些流水线更难编写和维护,因为数据用户必须添加大量的异常处理来避免疤痕引入的偏见。这些异常可能需要在包含疤痕期间的数据的任何报告或可视化中进行记录和处理,增加了任何试图解释数据或从中做出决策的人的认知负担。
或者,疤痕可能需要从数据集中完全删除,导致该期间的"数据遗忘",这可能会影响趋势分析或基于时间的比较(例如,对于这个统计数据,我们的年度结果是什么?)。
数据冲击
除了留下疤痕效应之外,还存在在生产环境中引入数据质量问题和解决数据问题时产生的影响。这就是我们所说的数据质量冲击,它也会影响到人工智能/机器学习和决策制定。
当数据质量问题首次发生时,任何使用从数据派生的特征的机器学习模型都会突然面临与它们训练所用的数据完全不同的数据。这将导致它们对新数据感到"震惊",并且它们对受数据质量事件影响的任何观测结果通常会产生极不准确的预测。这种冲击将持续到模型使用新数据进行重新训练,这在持续部署模型中通常会自动发生。
然后,一旦数据质量问题得到解决,实际上这会给模型带来另一种冲击(除非历史数据得到修复,这通常是不可能的)。修复过程中的冲击通常与数据质量问题首次引入的冲击一样严重!
对于分析/报告用例,这些冲击通常表现为指标或分析出现突然的意外变化。当观察到这些变化时,它们常常被误认为是真实世界的变化(这些报告的整个目的是反映现实中发生的情况),因此操作被更改或者做出其他决策,以对数据质量问题作出响应,就像它是真实的一样。同样,当修复发布时,相反的情况也可能发生。
数据质量问题得不到解决的时间越长,留下的疤痕越深,修复时的冲击就越大。
让疤痕和冲击不断积累的后果是,随着时间的推移,数据的客观质量会逐渐受损。图1-5说明了事件的累积,以至于每个人都相信数据质量低,数据本身不可信。而要回填数据已经很困难了,回填信任更加困难。
因此,组织在思考对抗糟糕数据质量时需要进行框架性的变革。它不应该是一个一次性的项目,只是为了修复给定数据源的数据质量。它需要成为一个持续的数据质量监控倡议,即在出现问题时发现并尽快解决数据质量问题。
没有数据质量监控,问题会一直未被察觉,直到业务用户、数据专业人员或其他系统的客户注意到。以这种方式运作数据工厂就像在没有任何质量控制流程的情况下运行制造消费品的工厂一样。
自动化数据质量监控:新的前沿
当今的数据专业人员正在经历令人兴奋、令人惊叹的变化。无论是投资于生成式人工智能、在企业中推广分析能力,还是从传统数据库迁移到云端,几乎每家公司都在做一些以前从未做过的数据方面的新事物。
因此,对于大多数企业来说,现在是投资数据质量的最佳时机。随着数据使用的增长,风险和数据质量问题的负面影响也随之增加。数据质量是一项需要持续监控并通过及时修复问题来维护的工作。
有效的数据质量监控并不容易,特别是对于大型企业而言,其表数和记录数常常达到数千张表和数十亿条记录的规模。虽然人工手动检查数据明显行不通,但使用传统解决方案,如为数据编写测试和跟踪关键指标,也行不通。你可能想为最重要的表格这样做,但为整个数据仓库实施这样的解决方案是不可行的。
在本书中,我们将向您介绍使用无监督的机器学习自动化数据质量监控的概念。这是一种新技术,具有许多优点。它几乎不需要手动设置,并且可以轻松地在整个数据仓库中进行扩展。通过正确的实施,它可以自动学习何时数据变化足够大以表明存在质量问题。它可以检测广泛的问题,包括没有人曾想到编写测试的未知未知数。
使用机器学习也会带来自己的挑战。构建模型本身就是一项复杂的任务,但您还需要确保它在各种真实世界的数据上能够正常工作,而不会过度或不足警告。您需要构建通知,帮助您的团队有效地处理问题,并与您的数据工具包集成,使数据质量成为您组织的重点。并且您需要制定计划,以长期部署和管理您的监控平台。
别担心------我们将在整个过程中提供您所需的建议和工具。我们认为,使用机器学习自动化数据质量监控与过去几年发生的任何数据创新一样令人兴奋,并且是现代数据堆栈中最重要的突破之一。到本书结束时,我们希望您会同意这一观点。