ETL 和 ELT 的区别

17 Mar 2025 | 4 分钟阅读

ETL (提取、转换和加载)

提取、转换和加载是一种从源 (存在于外部或内部部署等) 提取记录到暂存区域的技术,然后对其执行业务操作进行转换或重新格式化,以满足运营需求或数据分析,然后加载到目标或目标数据库或数据仓库中。

Difference between ETL and ELT

优势

开发时间: 从输出向后设计可以确保仅提取和处理适用于解决方案的信息,从而可能减少开发、删除和处理开销。

目标数据: 由于加载过程的目标特性,数据仓库仅包含与演示相关的信息。 减少仓库内容可以简化安全制度的执行,从而降低管理开销。

工具可用性: 可用于实施 ETL 的工具数量提供了方法的灵活性和识别最合适工具的机会。 工具的激增导致了竞争性的功能之战,这通常会导致可维护性的丧失。

劣势

灵活性: 仅针对输出的相关信息意味着任何未来可能需要原始设计中未包含的数据的需求都需要添加到 ETL 例程中。 由于已开发的方法之间存在紧密的依赖关系,因此通常需要进行根本性的重新设计和开发。 因此,这增加了所涉及的时间和成本。

硬件: 大多数第三方工具都使用其引擎来实现 ETL 阶段。 无论解决方案的估计如何,这都可能需要投资额外的硬件来实现该工具的 ETL 引擎。 使用第三方工具来实现 ETL 流程会强制了解新的脚本语言和流程。

学习曲线:实施使用外部流程和语言的第三方工具会导致学习曲线,这在所有对组织来说都是新技术的情况下都是隐含的,并且由于缺乏经验,通常会导致连续的死胡同。

ELT (提取、加载和转换)

ELT 代表提取、加载和转换,是从数据迁移或移动的角度来看的各种景象。 ELT 涉及从源系统提取聚合信息并加载到目标方法,而不是在提取和加载阶段之间进行转换。 将数据复制或加载到目标方法后,就会发生更改。

Difference between ETL and ELT

提取加载步骤可以与转换过程隔离。 将加载阶段与转换过程隔离会删除这些阶段之间的固有依赖关系。 除了包含转换所需的数据外,提取和加载过程还可以包括将来可能必不可少的数据组件。 加载阶段可以获取整个源并将其加载到仓库中。

分离阶段使项目可以分解为更小的块,从而使其更具体和更易于管理。

在暂存方法中执行数据完整性分析可以在流程中隔离出进一步的阶段,并在流程中最合适的点上进行处理。 此方法还有助于确保仅将经过清理和检查的信息加载到仓库中以进行转换。

将转换与加载步骤隔离有助于鼓励一种更分阶段的方式来设计和实施仓库。

优势

项目管理: 能够将仓库方法划分为特定和隔离的功能,使项目可以基于较小的功能进行设计,因此可以将项目分解为可行的块。

灵活且面向未来: 通常,在 ELT 实施中,来自源的所有记录都作为提取和加载过程的一部分加载到数据仓库中。 这与转换阶段的隔离相结合,意味着可以将未来的需求轻松地纳入数据仓库架构中。

风险最小化: 删除仓库构建系统的每种技术之间的紧密相互依赖关系,可以隔离开发方法,因此也可以分离各个过程设计。 这为更改、维护和管理提供了一个良好的平台。

利用现有硬件: 在实施 ELT 作为仓库构建过程时,可以使用数据库引擎提供的基本工具。

利用现有技能组合: 通过使用数据库引擎支持的功能,可以重新使用对数据库功能的现有投资来开发仓库。 无需学习任何新技能,并且可以充分利用在开发引擎技术方面的经验,从而进一步降低开发过程中的成本和风险。

劣势

逆潮流而动: ELT 是一种新的数据仓库设计和开发方法。 虽然它已通过其在全球范围内的广泛应用多次证明了自己,但它确实需要改变心态和设计方法来对抗传统方法。

工具可用性: 作为一种新兴技术方法,ELT 面临工具可用性有限的问题。

ETL 与 ELT 的区别

基础ETLELT
过程数据传输到 ETL 服务器并移回 DB。 需要高网络带宽。数据保留在 DB 中,除非进行跨数据库加载(例如,源到对象)。
转换转换在 ETL 服务器中执行。转换在(源中或)目标中执行。
代码使用通常用于
  • 源到目标的传输

  • 计算密集型转换

  • 少量数据
通常用于
  • 大量数据
时间维护它需要高度的维护,因为您需要选择要加载和转换的数据。低维护,因为数据始终可用。
计算覆盖现有列或需要追加数据集并推送到目标平台。轻松将计算出的列添加到现有表。
分析Difference between ETL and ELTDifference between ETL and ELT

下一个主题数据仓库的类型