Skip to content

什么是提取、加载、转换(ELT)?

🧑🏻‍💻 作者:俊小赞
🗓️ 发布时间:2025-08-06
🕘 最后更新:1天前
🔢 字数统计:2.4k
📖 预计阅读:7分钟

翻译计划

👉 原文

什么是 ELT?

ELT,即“提取、加载、转换”(Extract, Load, Transform,),是另一种类型的数据集成过程,类似于其对应物 ETL,“提取、转换、加载”。该过程将原始数据从源系统移动到目标资源,例如数据仓库。

虽然与 ETL 相似,但 ELT 是一种根本不同的数据预处理方法,仅在向云环境过渡时才最近获得采用。

ELT 的工作原理

ELT 由三个主要阶段组成:提取、加载和转换。每个阶段将在下文中详细说明。

Extract

在数据提取过程中,数据从源位置复制或导出到暂存区。数据集可以包含多种数据类型,并可能来自任何结构化或非结构化来源,包括但不限于:

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

话说回来,它更常用于非结构化数据。

Load

在这一步中,转换后的数据从暂存区移动到数据存储区,例如数据仓库或数据湖。

对于大多数组织而言,数据加载过程是自动化的、定义明确的、持续的,并且以批处理驱动。通常,ELT 发生在业务时间,此时源系统和数据仓库的流量达到峰值,并且消费者正在等待使用数据进行分析或其他用途。

Transform

在这个阶段,采用写时模式(schema-on-write)方法,使用 SQL 对数据进行模式应用,或在分析前进行数据转换。此阶段可能包括以下内容:

  • 过滤、清洗、去重、验证和认证数据。
  • 基于原始数据执行计算、转换、数据分析或汇总。这可能包括从改变行列标题以保持一致性,到转换货币或计量单位,以及编辑文本字符串和添加或平均值——任何满足组织特定 BI 或分析需求的工作。
  • 根据政府或行业法规,删除、加密、隐藏或以其他方式保护数据。
  • 根据仓库中部署的模式将数据格式化为表或连接表。

ETL 与 ELT

ELT 很容易与其同义词——一个几乎相同的缩写过程相混淆。然而,ELT 和 ETL(提取、转换和加载)之间存在几个显著差异。ETL 是一种数据集成过程,它将来自多个数据源的数据整合到一个单一、一致的数据存储中,然后加载到数据仓库或其他目标系统中。传统的 ETL 工具是为了支持商业智能(BI)和人工智能(AI)应用而设计的数据仓库创建工具。

ETL 和 ELT——有什么区别?

明显的区别在于 ELT 流程在执行转换功能之前先执行加载功能——这是 ETL 流程的第二步和第三步的顺序颠倒。ELT 从源位置复制或导出数据,但不是将其移动到暂存区进行转换,而是直接将原始数据加载到目标数据存储中,在那里可以根据需要对其进行转换。ELT 在传输过程中不会转换任何数据。

然而,步骤的顺序并非唯一区别。在 ELT 中,目标数据存储可以是数据仓库,但更常见的是数据湖,它是一个大规模中央存储,设计用来在巨大规模上同时存储结构化和非结构化数据。

数据湖使用大数据平台(如 Apache Hadoop)或分布式 NoSQL 数据管理系统进行管理。它们可以支持商业智能,但更多时候,它们是为了支持人工智能、机器学习、预测分析以及由实时数据和事件流驱动的应用而创建的。

ETL 和 ELT 之间还有其他区别。例如,因为 ETL 在将数据传输到中央存储库之前会转换数据,所以 ETL 可以使数据隐私合规性比 ELT 更简单或更系统化(例如,如果分析师在使用敏感数据之前不对其进行转换,那么这些数据可能会在数据湖中未加掩码)。然而,数据科学家可能更喜欢 ELT,因为它允许他们在原始数据的“沙盒”中玩耍,并根据特定应用进行自己的数据转换。但是,在大多数情况下,ETL 和 ELT 之间的选择将取决于可用业务资源和需求之间的选择。

ELT 的优势

ELT 为将此流程集成到其工作流程中的用户提供了多项优势。让我们来看看一些显著的好处:

更快地将数据移动到目的地,以实现更快的可用性

当产生大量流数据时,ELT 允许立即加载数据,并在数据到达目的地后进行转换。这避免了在加载函数之前进行转换时可能出现的任何延迟,例如在 ETL 中。通常,需要就这些数据做出决策,且延迟是不可接受的。一个例子是股票市场,它产生大量实时消费的数据。在这种情况下,ELT 是首选解决方案,因为转换发生在数据到达目的地之后。

分离关注点

由于数据在到达目的地时会进行转换,ELT 允许数据接收方控制数据操作。通过 ELT,转换和加载阶段的解耦确保转换阶段的编码错误或其他错误不会影响其他阶段。

避免服务器扩展问题

ELT 利用数据仓库的强大功能和规模,实现大规模的转换或可扩展计算。目标数据仓库可以根据需要增加或减少节点,特别是在云环境中,每个集群内有多节点,且可利用多个集群,这提供了按需的灵活性和可扩展性。

节省成本

ELT 对数据转换所需的服务器要求较低,并利用仓库中已有的资源。这带来了成本节约和资源效率的提升。

灵活性

ELT 能够使用用户选择的存储库,以实现成本和资源的灵活性。数据仓库使用 MPP 架构(大规模并行处理),包括基于列的内存存储大量数据。数据湖处理在数据接收时立即应用模式或转换模型(也称为“读取时模式”)也得到支持。这些高效的过程为大量数据提供了灵活性。

持续运行

持续运行适用于需要快速访问数据的任何环境。ELT 非常适合云环境中使用的数据,这些环境通常包括按需持续访问的应用程序。同样,云原生的 ELT 转换提供了上述的可扩展性和灵活性。

从 ETL 架构迁移到 ELT 架构所面临的挑战

一个组织可能会选择从 ETL 架构过渡到 ELT 架构。过渡的原因可能是其产品或服务的使用方式发生了变化,需要实时响应和交互,或者数据量呈指数级增长,而转换过程由于基础设施在高容量处理需求下延迟了加载阶段。如果一个组织已经迁移到云端,并希望将处理工作卸载或更早地在目标位置使用数据,它也可能选择从 ETL 过渡到 ELT。

在转型场景中,遇到挑战是现实的。首先,ELT 与 ETL 使用完全不同的逻辑和代码。这可能需要完全重新配置,并可能需要新的基础设施或云中的新服务提供商。此外,在 ELT 中,原始数据被发送到目标仓库。因此,安全性是一个需要考虑的问题,必须实施以确保数据安全。

ELT 的过去与未来

ELT 技术并非新事物。以往使用暂存表将数据移入仓库进行处理和转换,通常借助 SQL 脚本。SQL 脚本为硬编码,因此容易存在潜在的编码错误。通过使用 SQL,客户不得不在采用 SQL 脚本进行原生仓库执行与声明式编程(即声明式编写)之间做出选择。声明式编写通过创建描述程序必须实现的目标而非实现方式的代码,提供了更现代、基于云的数据仓库环境的好处。这一过程可避免其他流程中固有的编码错误,尤其是在转换操作发生在加载功能之前时。

用例

  • 需要即时访问的组织。例如股票交易所或大规模批发分销股票、工业组件及其他材料的公司,它们需要实时访问当前数据以立即获取商业智能。
  • 拥有海量数据的组织。例如气象系统,如天气服务,它们定期收集、整理和使用大量数据。交易量大的公司也可能属于此类。像拥有巨型望远镜的天文实验室这样的组织会产生大量数据,这些数据需要被收集和分析。这两个类别之间可能存在重叠,因为许多行业都产生和使用大量数据,并且需要实时访问这些数据。

Released under the MIT License.