如果西西弗斯是一名数据分析师或数据科学家,他要推上山的巨石就是他证。即使所有采集、处理和建模的工程流程都无可挑剔,数据质量测试在数据管道的任何阶段都是必不可少的。
面对“这样可以吗?”这个问题已经够难了。为什么?因为在数据工程领域很难定义“可以”的含义。
什么是数据质量测试?为什么它很重要?
传统上,数据质量测试分
- 及时性:当您需要时,您的数据是否可以获取?
- 完整性:它是否满足您对全面的期望?
- 准确性:信息如何准确反映现实?
- 有效性(又称一致性):信息是否具有特定的格式、类型或大小?它是否遵循业务规则/最佳实践?
- 一致性:存储在一个地方的数据资产是否与存储在其他地方的相关数据匹配?
- 完整性(又称唯一性):不同的数据集能否正确连接以反映更大的图景?阿富汗电话号码数据 关系是否定义明确并得到实施?
这些维度是在设计数据仓库和针对此场景进行数据质量测试时从广泛角度定义的。它们考虑了定义和收集的所有数据集、它们之间的关系以及它们为组织提供适当服务的能力。
当我们查看单个数据集时,我们的质量考虑更加狭窄:
- 它不需要完整性,因为其他数据集可以进行补偿。
- 由于没有考虑其他数据集,因此一致性和完整性无关紧要。
- 及时性主要取决于工程流水线的功能,而不是数据的质量。
在我们的例子中,询问数据集是否可以等同于询问“它是否有效和准确?”。
在本文中,我将描述有效性测试,分解准确性测试的概念,并回顾可用的测试框架。
数据质量测试的类型
新鲜度检查
定期更新数据可以准确反映数据源。但是,随着数据变得陈旧或陈旧,数据将不再可靠,对下游用户来说也毫无用处。
数据新鲜度检查通过监控数据更新频率(与既定的延迟限制相比,潜在客户转化(第 5 部分,共 7 部分) 例如提取操作预计在某一天加载的时间)来评估表中数据的质量。团队可以使用 SQL 规则手动构建这些数据质量检查。
NULL 值测试
缺失数据(NULL 值)是最常见的数据质量问题之一。当字段故意留空或由于管道问题(如 API 中断)而出现缺失数据时,就会出现缺失数据。NULL 值测试可验证模型运行后,某个模型的定义列中的值是否缺失。
为什么这很重要?假设您正在检查某个事件对各地区销售额的影响,但在某些条目中,“地区”字段留空。因此,缺少地区数据的行将从报告中删除,从而为您提供不准确的数据。请务必使用 NULL 值测试您的数据以避免这种情况。
数值分布检验
我的数据是否在合理范围内?我的值是否在某一列的范围内 ?cg 线索 分布测试有助于回答这些问题。分布测试确定给定表中的数据是否反映现实。
您可以通过指定特定列的最小值和最大值在 SQL 中轻松定义这些规则。
参照完整性测试
数据库中表之间的父子关系就是引用完整性。主键,也称为主键或外键,是我们跨表组合以生成模型并得出见解的基础数据。
但是,如果用于该主键的数据被更改或删除,该怎么办?引用完整性测试可以提供帮助。引用完整性检查是一种数据质量检查,用于验证子数据库中镜像的任何数据是否具有匹配的父表。引用完整性数据质量测试可确保对父键或主键的更改不会影响从属表。
字符串模式
人为错误时有发生,而且由于数据差异现象普遍存在,因此定期使用数据质量测试核对这些记录至关重要,以确保数据保持干净和正确。
字符串搜索方法(例如 RegEx)是一种有效的方法,可以检查列中的字符串是否符合特定模式。UUID、电话号码、电子邮件、整数、转义字符、日期和其他常见模式都可以借助字符串模式进行验证。