通过异常检测确保数据完整性是数据工程师需要掌握的基本工具
扫描二维码
随时随地手机看文章
当前最有趋势的机器学习和人工智能在不知疲倦地创新,为客户提供最先进的解决方案。然而,在这一快速演变过程中,确保一个以高质量和完整性为特征的稳健数据宇宙是不可或缺的。虽然人们经常把重点放在改进人工智能模型上,但原始数据集的重要性有时会被掩盖。
本文旨在探讨各组织在数据工程领域所需的一些基本工具,以有效改进数据质量并对数据进行分类/分析,用于有效的以业务为中心的机器学习分析、报告和异常检测。为了说明这些工具/框架及其重要性,让我们考虑在金融技术产业中的一种情景。
假设情况
想象一个客户支持团队依靠一个客户推荐平台来获得销售或营销领导权。这些代表通过电话与客户接触,讨论各种优惠和方案。最近,他们遇到了这样的情况,推荐的电话号码导致不准确的客户信息,没有明显的模式。这一挑战不仅突出了数据完整性的重要性,而且突出了数据工程师的重要角色 解决这些问题。作为数据宇宙的管理者,主要是数据工程团队负责通过与销售团队密切合作来应对这些挑战。
请参阅下图,其中销售团队与客户合作以确保准确的数据,左侧表示数据工程流程,其中数据来自各种系统,包括文件系统、API和数据库。数据工程师建立和管理复杂的管道和工作流程,将这些数据合并为客户支持团队使用的最后数据集。由于企业组织中管道的复杂性和数量,确定数据来源问题变得具有挑战性。因此,简单的问题比如,"我们从哪里获取这些数据?"和"数据流中有什么中断?"鉴于企业组织可以维护数百条管道,这将成为数据工程师面临的严峻挑战。
工具
为了应对这一挑战,数据工程师需要强有力的工具/框架,以便及时应对简单的客户支持询问,了解最重要的领导层的见解。这些工具应该提供快速分类数据流的能力,很容易地在流的每个层上见证数据值,并主动验证数据以防止出现问题。在基本层面上,下面三个工具/框架将为应对这一挑战增加许多价值。
数据血统
一个工具捕捉数据流从其来源通过各种转换,最后到其目的地。它提供了一个清晰的地图,说明数据来自哪里,如何处理它,以及它走向哪里,帮助数据工程师快速识别构建的数据的血统。
数据观察员
数据监控工具使工程师能够在管道的不同阶段实时监控数据值。它提供了对数据值、与之相关的潜在异常及其趋势的深入了解,从而能够对任何违规行为及时做出反应,甚至授权企业参与筛选。
数据验证器
数据验证工具检查管道中的各个点的数据,以确保它符合预定的标准和规则。这种主动验证有助于在数据问题通过系统传播之前捕捉和纠正这些问题。
更深入地潜入每个工具
为了更深入地研究这些工具中每个工具的概念,我们将考虑一个定义了工作流的数据结构。在本例中,我们有一个客户实体表示为一个表,其中的属性来自一个文件系统和一个API。
来自 数据流程图 注意,工作流程如下,
为了简化,可以考虑一个场景customer_type A 电话号码是通过API获得的,而地址详细信息则来自于一个文件系统。为了再次强调原来的挑战,电话号码在最终的客户支持平台上丢失了。从数据分类的角度来看,数据工程师需要在众多数据管道和数据表中追踪电话号码的来源,首先找到这个电话号码属性的来源,并了解它的血统。
数据血统
在某一特定时间点的任何数据流中,一组数据元素都是持久的, 技术流程 用于加载转换的数据。为了有效地对数据进行分类并找到其血统,需要建立以下基本的设置:
1.将数据元素映射到源
这包括创建一个将每个数据元素与其各自来源链接起来的全面地图。这个映射确保了可追溯性,并帮助理解每个数据的来源。
2.可扩展配置以添加新的下游工作流
在引入新的工作流时,配置应该足够灵活,可以在不破坏现有流程的情况下纳入这些更改。这种可扩展性对于适应数据管道的动态性质至关重要。
3.可演变配置以适应源元素的变化
数据源可能随着时间的推移而改变,无论是由于模式更新、新的数据源,还是由于数据结构的修改。配置必须适应这些变化,以保持准确的数据血统。
如果它通过引用代码基础涉及纯SQL,则可以从代码中推断出这一血统。然而,当不同的语言(如pydn或scala)与SQL一起使用时,它就变得更加复杂。在这种情况下,需要手动干预,以维护配置和识别血统。这可以用半自动化的方式实现。这种复杂性是由于每种语言的语法和语义不同而产生的,使自动推理具有挑战性。
对数据血统的利用
可以通过使用节点和边缘来表示数据元素及其关系来维护数据血统。这种方法允许灵活和可查询的模式,可以很容易地适应变化和新的需求。通过利用GREGQL,组织可以创建一种更加互动和高效的方式来管理和可视化数据血统。
市场上有几个数据谱系工具,每一个都提供了独特的特性和能力:Al1、RISE、Manta、科尔布拉塔、阿帕奇地图集和单个云计算提供者正在提供他们自己的云血统。
在识别源之后,现在我们需要有能力查看来自源的电话号码是否在每个转换或负载中实际传播而不改变其值。现在,为了能够观测到这些数据匹配,我们需要一个非常简单的统一机制,能够将这些数据集中起来并显示出来。
让我们深入研究数据观察。
数据观察员
通过利用不同的数据库连接器从不同的数据源中干净地检索和呈现数据,可以实现数据监视能力。在我们的示例中,电话属性值被正确地从API中获取到表中,但是当写入前端时却会丢失。这是一个典型的数据丢失案例。通过在这个过程中具有可见性,数据工程师可以快速解决这个问题。
下面是一个统一的数据监视方法的显著好处。
· 快速识别差异: 帮助数据工程师快速识别和解决数据差异,确保数据质量
· 简化数据检索和列报: 简化数据检索和显示流程,节省时间和精力
· 统一数据视图: 提供统一的数据视图,使业务利益攸关方更容易获得见解和作出知情决定
· 数据准确性和一致性: 授权最终用户确保来自不同来源的数据准确一致
具备跟踪数据来源、及时性和准确性的能力,可增强整个组织的信心。我们讨论了数据谱系和数据监视的概念,以了解数据来源,跟踪不同摄入和转换点的数据,并在每个阶段观察其价值。没有明确的工具只提供数据监视功能;这些功能往往是一些数据发现或数据编目工具的副产品。各组织需要根据其具体要求建立统一的平台。像重新工具和多莫这样的工具可以将数据统一到一个视图中,提供数据流的统一和清晰的表示。
在下一节中,我们将探讨如何监控数据质量并通知团队问题,以防止不正确的数据传播到最终系统。这种积极主动的方法确保数据的完整性和可靠性,促进组织内部的信任和效率。
数据验证器
数据验证 是确保数据在各种管道和系统中流动时的质量和完整性的关键过程。需要定期更新数据,以保持其准确性和可靠性。数据验证可以使用不同的方法和指标来检查一致性、完整性和正确性。以下是一些用于数据验证的关键指标:
· 新鲜: 衡量数据的最新情况;确保正在处理和分析的数据是最新的和相关的
o 例子 :检查最新数据输入的时间戳
· 失踪人数: 计算数据集中缺失或空值的数目;标识可能影响数据质量的不完整记录
o 例子 :计算列中的空值数
· 失踪百分比: 计算记录总数中缺失值的百分比;更清楚地说明数据集中缺失数据的程度。
o 例子 (失踪价值/记录总数)*100
· 平均: 计算数字数据的平均值;通过比较当前平均值和历史平均值,帮助确定异常值或异常值。
o 例子 :在数据集中计算平均销售额
重复计数:计算数据集中重复记录的数量;确保数据的唯一性,并有助于维护数据的完整性。
o示例:计算表中重复的客户ID的数量。
一些库提供了用于执行数据验证的内置函数和框架,从而使数据工程师更容易实现这些检查。请在下面找到一些库和示例代码,以获得验证和实现的感觉。
SODA:SODA(可扩展的一站式数据分析)是一个用于数据验证和监控的强大工具。它为定义和执行数据验证规则提供了一套全面的特性,支持自定义度量,并允许用户根据其特定需求创建检查。
远大期望:远大期望是一个用于数据验证和文档化的开源库。允许用户定义期望,即数据应该满足的规则或条件。它支持自动配置分析和生成验证报告。
实现数据验证涉及到使用所选的库或框架来设置必要的检查和规则。
作为本文的一部分,我们探索了利用数据血统、数据观察和数据验证的选项,以便组织能够构建一个强大的数据管理框架,确保数据的完整性,提高可用性,并推动业务成功。这些工具共同帮助保持高数据质量,支持复杂的分析和机器学习举措,并使整个组织对数据资产有清晰的了解。
在当今的数据驱动世界,保持准确、可靠和易于发现的数据的能力至关重要,这些工具使各组织能够充分利用其数据资产,推动创新,并有效实现其战略目标。这些框架以及数据编目和数据发现功能等各种工具,使业务用户能够更广泛地了解数据,从而帮助从业务和技术领域进行创新。