ETL(提取、转换、加载)

menu icon

ETL(提取、转换、加载)

ETL 是将数据从多个来源提取、转换并加载至数据仓库或其他统一数据存储库的过程。

什么是 ETL?

​ETL 代表 提取 (Extract)、转换 (Transform) 和加载 (Load) ,是一个数据集成过程,将来自多个数据源的数据合并至单个、一致的数据存储中,再加载至 数据仓库 或其他目标系统中。

随着 20 世纪 70 年代数据库的普及,ETL 应运而生,用于集成和加载数据以进行计算和分析,最终成为数据仓库项目处理数据的主要方法。

ETL 为数据分析和机器学习工作流奠定了基础。 按照一系列业务规则,以解决特定商业智能需求为目标,ETL 对数据进行清理和整理,例如月度报告。此外,它还可处理更高级的分析,从而改进后端流程或 最终用户 体验。 组织通常采用 ETL 策略来: 

  • 从旧系统中提取 数据 
  • 清理数据以改善数据质量并建立一致性
  • 将数据加载至 目标数据库

ETL 与 ELT 对比

ETL 和 ELT 最明显的区别是作业顺序的不同。 ELT 从源位置复制或导出数据,但不是将其加载至暂存区进行转换,而是将原始数据直接加载至目标数据存储,然后根据需要进行转换。

虽然这两种流程都会使用各种数据存储库,例如数据库、数据仓库和数据湖,但每种流程各有其优缺点。 ELT 对于大容量、非结构化数据集特别有用,因为可以直接从数据源加载。 它更适合大数据管理,因为不需要对数据提取和存储进行太多前期规划。 另一方面,ETL 流程从一开始就需要更多的定义。 需要识别特定的数据点以进行提取,还需要任何潜在的“键值”以跨不同的源系统完成集成。 即使在作业完成后,也需要构建数据转换的业务规则。 这项工作通常需要依赖相关的数据需求,以适用于数据分析的某个给定类别,以用于确定数据需要具备的汇总级别。 虽然随着云数据库的采用,ELT 变得越来越流行,但作为较新的流程,也存在其自身的缺陷,最佳做法还处于摸索阶段。

ETL 的工作原理

了解 ETL 工作原理最简单的办法,是了解该流程的每个步骤具体做些什么。

提取

数据提取阶段是将原始数据从源位置复制或导出至暂存区。 数据管理团队可以从各种数据源提取数据,可以是结构化的或非结构化的格式。 这些来源包括但不限于:

  • SQL 或  NoSQL  服务器
  • CRM 和 ERP 系统
  • 平面文件
  • 电子邮件
  • 网页

转换

原始数据会在暂存区进行数据处理。 在这里,数据将经过转换和整合以用于预期的分析用例。 此阶段可能包括以下任务:

  • 过滤、清理、删除重复、验证和认证数据。
  • 根据原始数据执行计算、转换或汇总。 还可 包括更改行和列标题以保持一致、转换货币或其他计量单位、编辑文本字符串等。
  • 进行审计以确保数据质量和合规性
  • 删除、加密或保护由行业或政府监管机构治理的数据。
  • 将数据格式化为表或连接表,以匹配目标数据仓库的架构。

加载

在最后一步中,转换后的数据将从暂存区移入目标数据仓库。 通常,这包括所有数据的初始加载,然后是定期加载增量数据更改,而完全刷新以擦除和替换仓库中的数据则不太常见。 对于大多数使用 ETL 的组织,流程是自动化、明确定义、连续且由批处理驱动的。 ETL 一般会在源系统和数据仓库流量最低的非工作时间进行。

ETL 和其他数据集成方法

ETL 和 ELT 只是数据集成的两种方法,还有其他方法也可用于开展数据集成工作流。 其中一些包括:

  • 更改数据捕获 (CDC) 仅识别和捕获已更改的源数据,并将这些数据移动至目标系统。 CDC 可用于减少 ETL“提取”步骤所需的资源;也可独立用于实时移动已转换至数据湖或其他存储库中的数据。
  • 数据复制 将数据源中的更改实时或批量复制到中央数据库。 数据复制 常常被列为一种数据集成方法。 但事实上,它最常用于为 灾难恢复创建备份。
  • 数据虚拟化 使用软件抽象层来创建统一、集成、完全可用的数据 视图 ,无需将源数据物理复制、转换或加载至目标系统。 数据虚拟化 功能可让组织从相同的源数据创建虚拟数据仓库、数据湖和数据集市以进行数据存储,而无需为每个数据存储库构建和管理单独的平台,从而减少费用,降低复杂性。 虽然数据虚拟化可与 ETL 一起使用,但它越来越被视为可替代 ETL 和其他物理数据集成方法。
  • 数据集成 (SDI) 正如其名,持续实时地使用数据流,对其进行转换,然后加载至目标系统进行分析。 此方法的关键词是 连续。 SDI 无需集成在给定时间从源中提取的数据快照,而是在数据可用时不断集成数据。 SDI 可为分析、机器学习和实时应用程序提供数据存储功能,从而提升客户体验、加强欺诈检测等。 

ETL 的优势和挑战

ETL 解决方案在数据加载至不同的存储库之前执行数据清理,以此提高质量。 ETL 是一项耗时的批处理操作,经常推荐用于创建更新频率需求较低的较小目标数据存储库,而另一些数据集成方法,包括 ELT(提取、加载、转换)、更改数据捕获 (CDC) 和数据虚拟化,则推荐用于集成更改数据量逐渐加大的存储库或实时数据流。

进一步了解数据集成

ETL 工具

过去,组织需要自己编写 ETL 代码。 现在则有许多开源和商业 ETL 工具和云服务可供选择。 这些产品的典型功能包括:

  • 全面自动化和易用性: 领先的 ETL 工具会对整个数据流进行自动化改造,从数据源直至目标数据仓库。 许多工具会推荐用于提取、转换和加载数据的规则。
  • 可视化的拖放界面: 此功能可用于指定规则和数据流。
  • 支持复杂的数据管理: 包括协助复杂的计算、数据集成和字符串操作。
  • 安全性和合规性: 最好的 ETL 工具会对动态和静态数据进行加密,并且经认证符合 HIPAA 和 GDPR 等行业或政府法规的要求。

此外,许多 ETL 工具已发展到内含 ELT 功能,可支持 为人工智能 (AI) 应用程序集成实时和流数据

​数据集成的未来 —  使用 EAI 的 API

使用企业应用程序集成 (EAI) 的应用程序编程接口 (API) 可用于代替 ETL,打造更加灵活、可扩展性更强、包含 工作流 集成的解决方案。 虽然 ETL 仍然是主要的 数据集成 资源,但在基于 Web 的设置中, API  使用 EAI 的情况也日益增多。

ETL、数据集成和 IBM Cloud®

IBM 提供多种数据集成工具和服务,可支持业务就绪的数据管道,为您的企业提供有效扩展所需的工具。

作为数据集成领域的领导者,IBM 在管理大数据项目、SaaS 应用程序和机器学习技术时可赋予企业所需的信心。 借助  IBM Cloud Pak® for Data 等行业领先的平台,组织可实现其  DataOps  流程的现代化,同时使用一流的虚拟化工具来达到所需速度和可扩展性,满足当前和未来的业务需要。

如需进一步了解您的企业如何构建和执行有效的数据集成策略,请探索 IBM 的 数据集成产品和服务套件。

立即注册 IBMid 并 创建 IBM Cloud 帐户

资源

FlightSafety International

从飞行中飞机的驾驶舱观赏下方群山的画面

FlightSafety International 与 IBM Garage™ 合作开发了 FlightSmart,这是一种与飞行模拟器集成的自适应学习技术。

阅读成功案例 →