ETL vs ELT – 它们之间的区别
ETL 与 ELT 的关键区别
- ETL 代表提取(Extract)、转换(Transform)和加载(Load),而 ELT 代表提取(Extract)、加载(Load)、转换(Transform)。
- ETL 首先将数据加载到暂存服务器,然后再加载到目标系统,而 ELT 直接将数据加载到目标系统。
- ETL 模型用于本地、关系型和结构化数据,而 ELT 用于可扩展的云结构化和非结构化数据源。
- 比较 ELT 与 ETL,ETL 主要用于少量数据,而 ELT 用于大量数据。
- 当我们比较 ETL 与 ELT 时,ETL 不提供数据湖支持,而 ELT 提供数据湖支持。
- 比较 ELT 与 ETL,ETL 易于实施,而 ELT 需要专业技能才能实施和维护。

什么是 ETL(提取、转换、加载)?
ETL 是提取(Extract)、转换(Transform)和加载(Load)的缩写。在此过程中,ETL 工具从不同的RDBMS 源系统提取数据,然后对数据进行转换,例如应用计算、连接等,然后将数据加载到数据仓库系统。
在 ETL 中,数据从源流向目标。在 ETL 过程中,转换引擎负责处理任何数据更改。
什么是 ELT(提取、加载、转换)?
ELT 是一种看待数据移动工具方法的不同方式。ELT 不在写入数据之前对其进行转换,而是让目标系统执行转换。数据首先复制到目标,然后就地进行转换。
ELT 通常与 NoSQL 数据库一起使用,例如 Hadoop 集群、数据设备或云安装。这是一些您可以考虑用于数据管理需求的最佳 ETL 工具的全面列表。
ETL 与 ELT:并排比较
以下是 ETL 和 ELT 的主要区别
参数 | ETL | ELT |
---|---|---|
过程 | 数据在暂存服务器上转换,然后传输到数据仓库数据库。 | 数据保留在数据仓库的数据库中。 |
代码使用 | 用于
|
用于大量数据 |
转换 | 转换在 ETL 服务器/暂存区域进行。 | 转换在目标系统中执行 |
加载时间 | 数据首先加载到暂存区,然后加载到目标系统。耗时。 | 数据只加载到目标系统一次。速度更快。 |
转换时间 | ETL 过程需要等待转换完成。随着数据量的增长,转换时间会增加。 | 在 ELT 过程中,速度从不取决于数据的大小。 |
维护时间 | 需要高维护,因为您需要选择要加载和转换的数据。 | 低维护,因为数据始终可用。 |
实施复杂性 | 在早期阶段,更容易实施。 | 要实施 ELT 过程,组织应具备深厚的工具知识和专家技能。 |
数据仓库支持 | ETL 模型用于本地、关系型和结构化数据。 | 用于支持结构化和非结构化数据源的可扩展云基础设施。 |
数据湖支持 | 不支持。 | 允许使用非结构化数据的数据湖。 |
复杂性 | ETL 过程仅加载在设计时确定的重要数据。 | 此过程涉及从输出向后开发并仅加载相关数据。 |
费用 | 中小型企业成本高。 | 使用在线软件即服务平台,入门成本低。 |
查找 | 在 ETL 过程中,事实和维度都需要在暂存区中可用。 | 所有数据都将可用,因为提取和加载是在一个单独的操作中进行的。 |
聚合 | 数据集中的数据量增加会增加复杂性。 | 目标平台的强大功能可以快速处理大量数据。 |
计算 | 覆盖现有列或需要追加数据集并推送到目标平台。 | 轻松将计算列添加到现有表。 |
成熟度 | 该过程已使用二十多年。它有完善的文档,最佳实践也易于获取。 | 相对较新的概念,实施复杂。 |
硬件 | 大多数工具都有昂贵的独特硬件要求。 | 作为 SaaS,硬件成本不是问题。 |
非结构化数据支持 | 主要支持关系型数据 | 随时支持非结构化数据。 |