数据转换定义
数据转换是将数据从一种格式或结构转换为另一种格式或结构的过程。数据转换对于数据集成和数据管理等活动至关重要。数据转换可以包括一系列活动:您可以转换数据类型,通过删除空值或重复数据来清理数据,丰富数据或执行聚合,具体取决于项目的需要。
通常,该过程涉及两个阶段。
在第一阶段,您:
- 执行数据发现,以识别源和数据类型。
- 确定需要发生的结构和数据转换。
- 执行数据映射以定义各个字段的映射,修改,连接,过滤和聚合方式。
在第二阶段,您:
- 从原始源提取数据。源的范围可以变化,包括结构化源(如数据库)或流式源(如连接设备的遥测)或使用Web应用程序的客户的日志文件。
- 执行转换。您可以转换数据,例如聚合销售数据或转换日期格式,编辑文本字符串或连接行和列。
- 将数据发送到目标商店。目标可以是处理结构化和非结构化数据的数据库或数据仓库。
为何转换数据?
出于多种原因,您可能希望转换数据。通常,企业希望转换数据以使其与其他数据兼容,将其移动到另一个系统,将其与其他数据连接,或者聚合数据中的信息。
例如,请考虑以下情形:您的公司已购买了较小的公司,您需要为人力资源部门合并信息。购买的公司使用与母公司不同的数据库,因此您需要做一些工作以确保这些记录匹配。每个新员工都已获得员工ID,因此这可以作为一个关键。但是,您需要更改日期的格式,您需要删除任何重复的行,并且您必须确保Employee ID字段没有空值,以便考虑所有员工。在将数据加载到最终目标之前,所有这些关键功能都在暂存区域中执行。
转换数据的其他常见原因包括:
- 您正在将数据移动到新的数据存储; 例如,您正在迁移到云数据仓库,您需要更改数据类型。
- 您希望将非结构化数据或流数据与结构化数据相结合,以便您可以一起分析数据。
- 您希望向数据添加信息以丰富它,例如执行查找,添加地理位置数据或添加时间戳。
- 您希望执行聚合,例如比较来自不同地区的销售数据或来自不同地区的总销售额。
数据是如何转换的?
有几种不同的方法可以转换数据:
- 脚本。一些公司使用SQL或Python通过脚本执行数据转换,以编写代码来提取和转换数据。
- 内部部署ETL工具。ETL(提取,转换,加载)工具可以通过自动化流程来完成脚本转换的大部分痛苦。这些工具通常托管在您公司的站点上,可能需要大量的专业知识和基础架构成本。
- 基于云的ETL工具。这些ETL工具托管在云中,您可以利用该供应商的专业知识和基础架构。
数据转换挑战
由于多种原因,数据转换可能很困难:
- 耗时。您可能需要广泛清理数据,以便转换或迁移它。这可能非常耗时,并且是使用非结构化数据的数据科学家的常见抱怨。
- 费钱。根据您的基础架构,转换数据可能需要专家团队和大量的基础架构成本。
- 慢。由于提取和转换数据的过程可能会给您的系统带来负担,因此通常会分批进行,这意味着您可能需要等待最多24小时才能处理下一批。这可能会花费您时间做出业务决策。