对于希望实现良好盈利的组织而言,拥有干净数据的健康系统至关重要。不健康的数据会导致决策失误、机会浪费和成本增加。维护高质量数据需要勤奋地清理数据以保持其健康。
G. Loabovitz 和 Y. Chang 的研究提出了数据质量的 1-10-100 规则。该规则强调了由于数据质量差而导致的数据错误成本不断增加:如果验证一条记录的成本为 1 美元,则修复错误的成本为每条记录 10 美元,如果错误得不到解决,则每条记录的成本为 100 美元。该研究表明,您越积极主动地确保数据的健康,就越能避免数据质量成本。
完整的数据健康策略从数据库结构到应用程序考虑数据健康,可带来更高质量的数据。数据和系统需要在三个层面进行清理和评估。
数据库和数据表需要有效组织并正确运行以避免错误。有效的数据库修复流程可以从源头上解决数据质量问题。
数据库中的数据必须经过定期的数据清理过程,以查找错误、不一致、重复和缺失的条目。
数据转换和移动时会产生新的数据错误。组织需要制定策略来通过不同的转换确保数据健康,包括 ETL(提取、转换、加载)和数据整理流程。
确保数据库及其结构处于良好状态可以显著影响您的数据健康策略。通过关注数据源,可以减少重复的下游数据质量问题。保持数据健康的第一步是升级数据库技术和修复结构不良的数据库。
评估数据库的组织和结构,可以减少不健康数据的出现。将数据格式整合到一个通用结构中可以减少冲突和重复的数据。创建标准电话号码格式就是一个例子。组织可以定义一个只包含数字的文本字符串格式,供所有系统使用,而不是维护带有破折号、点、区号和国家代码的多种格式。这种策略减少了数据类型的数量,降低了混淆的可能性。
更改架构以提高性能是组织数据库以促进数据健康的另一种方法。示例包括合并主键以提高一致性。修复和标准化源表可以减少每次提取数据进行分析时标准化数据所需的工作量。虽然调整架构以使其更加统一可以限制未来的错误,但它可能会导致近期问题,因为下游应用程序需要进行调整以纳入架构更改。作为数据库网关的联合层可以帮助检测架构更改,以确保下游应用程序得到适当更新。
与数据库修复不同,数据清理侧重于数据本身。数据库清理是一个需要持续和定期关注的过程。在医院里,污染物不断进入设施,因此定期消毒是必要的,以防止细菌使人生病。您的数据库也不例外。
定期清洁过程应重点关注:
重复数据会浪费数据库空间并造成混乱,妨碍信息准确。由于数据孤岛收集和存储的数据量很大,因此经常会出现同一记录的多个版本。数据去重是一项重要的数据清理工作,因为重复计算相同的数据点会使您的分析产生偏差。
拼写错误、大写错误和命名不一致等错误可能会使依赖标准化格式的应用程序和分析产生混淆。查找和修复这些错误有助于保持数据清洁。
缺失数据可能会扭曲分析。解决缺失数据问题可能需要添加具有合理假设的数据,或者如果缺失数据过多则删除整个列或数据集。
旧的或不相关的数据会占用存储空间,造成混乱。旧数据还可能与新数据发生冲突或被误认为是新数据,从而影响分析。
数据集中的异常值可能表示存在错误,但并非总是如此。识别异常值、确定其原因并采取适当的措施可减少数据集中的错误数据点数量。
数据验证有助于避免数据输入过程中的一些错误。构建验证规则并将其纳入数据堆栈可以支持实时测试,以便尽早发现错误。
当数据从一个数据库传输到另一个数据库、进行转换或与新数据集合并时,流程会变得复杂。确保转换过程不会引入或延续不良数据对于维护健康数据至关重要。当数据来自不同的数据库时,数据重复的可能性很高。数据库之间的不同标签也会导致错误。
数据的转换方式有很多种,但通常情况下,数据要么被转换并准备进行分析,要么被标准化以便加载到数据库中以供应用程序或将来的分析。
提取、转换和加载 (ETL) 过程是将数据从一个数据库移动到另一个数据库的最常见转换方法。ETL 过程从一个数据库提取数据,对其进行转换,然后将其加载到目标数据库中。目标数据库的结构通常决定了这些转换,这些转换定义明确且系统化。它们具有良好的可扩展性,适用于大型数据集。
数据整理流程有所不同,而且更加灵活。这些流程是准备用于分析的数据集的关键。数据整理技术既适用于结构化数据,也适用于非结构化数据。
了解这些差异对于支持更健康的数据非常重要。
ETL 流程通常从组织良好且结构化的数据开始。这种结构可实现更加自动化和系统化的转换流程。这些转换程序由技术导向的开发人员使用 Python 和 Scala 等强大的技术构建。虽然更高的自动化程度可以提高效率,但它也会更快地延续不良数据和错误。这些自动化也很难创建,因此很难更改,从而使 ETL 流程的灵活性大大降低。第一次就做对是保持数据健康的关键。
ETL 流程的第一步是从源数据库中提取数据。当源数据不干净时可能会出现错误,因此进行一些数据分析以了解数据质量非常重要。如果一开始数据质量就不高,有缺失值、重复值和超出范围的值,您将不得不回去进行一些数据清理。
转换过程会重新格式化数据,以便将其输入目标数据库。这包括规范化数据,以使源数据库和目标数据库之间的格式一致。如果数据标签错误或数据结构不一致,则可能会发生错误,因此数据清理是转换过程的重要组成部分。可以将识别脏数据和纠正错误的例程内置到 ETL 程序中。过滤数据可以删除不需要的数据,从而降低复杂性。最后,运行验证检查以检查是否存在不一致或识别异常值。
该流程的最后一步是将数据加载到目标数据库中。如果在此阶段出现错误,则必须建立版本控制流程,以便您可以回退到早期版本的代码来排除错误。
与 ETL 一样,数据整理是一个转换过程,其中可能会出现数据错误。数据整理是创建用于定义的分析用例的数据资产的过程。分析用例的要求推动了转换。这一要求需要更高的灵活性和整合非结构化数据的能力。
数据整理需要更加手动和动态的过程。为了确保分析基于最高质量的数据,团队必须发现、组织、清理、丰富和验证数据。
对于数据整理,质量分析的第一步是了解底层数据集的健康状况和适用性。这意味着了解哪些数据可用、哪些数据符合要求以及评估数据集的质量。分布测试和有效性范围测试等数据质量指标可以洞悉数据健康状况。在使用数据支持分析之前,需要考虑的因素包括现有问题、数据集的大小和数据格式。与 ETL 流程不同,数据整理不受预构建自动化的限制。这种差异意味着分析师可以灵活地搜索最佳数据集,避免使用未经充分处理的数据。可访问且可维护和跟踪这些数据的强大数据目录有利于衡量数据健康状况。
组织用于分析的数据集是另一个关键过程。处理非结构化数据时,这个过程变得更加困难。非结构化数据需要组织成行和列才能进行分析。标记技术可用于围绕这些数据创建更多结构,并提供有关非结构化文档的更多信息,以便更有效地组织它们。这个过程正在成为 GenAI 的一个可行用例。这些技术可以分析文档以了解其含义并对其进行相应的标记。健康的数据标签可以减少 GenAI 犯错的机会。
就像在 ELT 中一样,数据清理过程在数据整理中至关重要。清理策略可以通过消除数据中的噪音并确保数据集的相关性来识别异常值并准备数据以供分析。处理非结构化文本时,修正拼写和标准化缩写要复杂得多。可以利用 AI 来解决这些问题。
数据整理中的数据规范化过程与 ETL 略有不同,因为标准是由业务用例驱动的,而不是由固定的数据库结构和模式驱动的。强大的元数据管理引擎可以改进这一过程。借助集成的 GenAI 和业务词汇表,业务用户可以根据业务定义和计算规范化和组合数据。
数据丰富是另一种技术,它涉及组合数据集或预构建的数据产品,以便为更深入、更清晰的分析提供更大的背景信息。用合成数据填充缺失数据是另一种提高数据集质量的策略。
与 ETL 过程一样,数据验证测试对于确保数据整理过程执行后的数据清洁度至关重要。
拥有正确的工具和流程来构建数据转换是遵循最佳实践并减少数据转换中出现错误的可能性的最佳方式。与软件领域的 DevOps 工具一样,数据构建工具通过开发工作台和质量控制支持数据转换流程。功能包括版本控制、测试和日志记录。
数据转换在不断发展。为了确保质量,每次更新代码时都需要对其进行测试。创建或调整查询可能会导致许多问题,包括不良数据连接导致管道下游出现错误。拥有创建转换的流程是避免错误的关键。
dbt(数据构建工具)等工具可实现健康的转换工作流程。该工具使分析师能够:
在完成所有数据清理工作之后,使用有效的工具和工作流程来减少引入不良数据的机会是有意义的。
将这些工具与您的数据堆栈集成,可让它们更易于使用,并简化您的数据转换流程。可以轻松访问和实施模板和预先测试的转换。此功能不仅可以减少潜在错误,还可以减少创建数据产品和流程的工作量。
结合工具、工作流和数据可创建一个支持健康数据的框架。通过 dpt 适配器,Data to AI 平台 Avrio 的用户可以编写和测试利用 Avrio 联合查询引擎的复杂 SQL 转换,从而满足您的数据质量要求。
了解如何清理数据并在从收集到分析的整个过程中保持数据清洁对于建立数据信任至关重要。GenAI 为分析准备非结构化数据的能力不断增强,为获得更深入的见解创造了新的机会,但新的复杂性可能会导致数据混乱。从源系统到分析,在结构化和非结构化数据中制定复杂的数据健康策略将有助于确保将干净且相关的数据交到决策者手中。