ETL (Extract, Transform, Load)

ETL是一个从多个数据源提取、转换数据并将其加载到数据仓库或其他统一数据存储库的过程。
https://www.ibm.com/cloud/learn/etl
https://www.163.com/dy/article/GMU9A1S20511805E.html

What is ETL?

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

随着数据库在20世纪70年代越来越流行,ETL被引入作为一种用于集成和加载数据以进行计算和分析的过程,最终成为数据仓库项目处理数据的主要方法。

ETL为数据分析和机器学习工作流提供基础。通过一系列业务规则,ETL清洁和组织数据以满足特定的商业智能需求,如月度报告,但它也可以解决更高级的分析,可以改善后端进程或最终用户体验。ETL经常被组织用于:

  • 从遗留系统中提取数据
  • 清洁数据以提高数据质量并建立一致性
  • 将数据加载到目标数据库中

ETL vs ELT

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

虽然这两个过程都利用了各种数据存储库,如数据库、数据仓库和数据湖,但每个过程都有其优点和缺点。ELT对于大容量、非结构化数据集特别有用,因为可以直接从数据源加载数据。ELT更适合大数据管理,因为它不需要太多的前期数据提取和存储计划。另一方面,ETL过程在一开始就需要更多的定义。需要识别用于提取的特定数据点,以及用于跨不同源系统集成的任何潜在键。即使在工作完成之后,也需要构造用于数据转换的业务规则。这项工作通常依赖于给定类型的数据分析的数据需求,这将决定数据需要具有的汇总级别。尽管ELT随着云数据库的采用而变得越来越流行,但作为一种较新的过程,它也有自己的缺点,这意味着最佳实践仍在建立中。

How ETL works

理解ETL如何工作的最简单的方法是理解流程的每一步都发生了什么。

Extract

在数据提取期间,将原始数据从源位置复制或导出到暂存区域。数据管理团队可以从各种数据源中提取数据,这些数据源可以是结构化的,也可以是非结构化的。这些来源包括但不限于:

  • SQL or NoSQL servers
  • CRM and ERP systems
  • Flat files
  • Email
  • Web pages

Transform

在暂存区,对原始数据进行数据处理。在这里,数据被转换和整合为其预期的分析用例。这个阶段可以包括以下任务:

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

Load

在最后一步中,将转换后的数据从暂存区域移动到目标数据仓库。通常,这涉及到初始加载所有数据,然后周期性地加载增量数据更改,并进行全面刷新以擦除和替换仓库中的数据(这种情况比较少见)。对于大多数使用ETL的组织来说,流程是自动化的、定义良好的、连续的和批处理驱动的。通常,ETL发生在源系统和数据仓库上的流量处于最低水平的非工作时间。

ETL and other data integration methods

ETL和ELT只是两种数据集成方法,还有其他方法也用于促进数据集成工作流。其中包括:

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

The benefits and challenges of ETL

ETL解决方案通过在将数据加载到不同的存储库之前执行数据清理来提高质量。ETL是一种耗时的批处理操作,建议更常用于创建需要较少更新的较小目标数据存储库,而其他数据集成方法包括ELT(提取、加载、转换)、更改数据捕获(CDC)、数据虚拟化用于集成越来越大的数据量的变化或实时数据流。

ETL tools

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

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

此外,许多ETL工具已经发展到包括ELT功能,并支持人工智能(AI)应用程序的实时和流数据集成。

The future of integration - API using EAI

使用企业应用程序集成(EAI)的应用程序编程接口(api)可以用来取代ETL,从而形成一个更灵活、可伸缩的解决方案,其中包括工作流集成。虽然ETL仍然是主要的数据集成资源,EAI越来越多地与基于web的api一起使用。