TL;博士; ETL 和 ELT 之间的区别仅仅是转换后的数据在加载到仓库之前是具体还是抽象?
所以请原谅我的主题标题过于宽泛,因为它掩盖了细节,但我试图以明确的方式理解 ETL 和 ELT 的不同之处。它们看起来非常相似,以至于您可以将它们描述为 ELTL。在这两种情况下,您都从原始数据开始,最终以表格中的具体转换数据结束。似乎介于两者之间的是差异,它可以采取多种形式,具体取决于从开始状态到结束状态的转换的数量/复杂性。
根据我对ETL的了解,步骤如下:
- 从源系统中提取数据并加载到原始表中
- 将原始表中的数据转换为临时表
- 将临时表中的数据加载到您的仓库中
在我见过的一些 ELT 定义中,这些步骤似乎是:
- 从源系统中提取数据并加载到原始表中
- 通过创建表示临时表的视图从概念上转换原始表中的数据
- 将暂存视图中的数据加载到您的仓库中
但是后来我看了其他关于ELT的文章,好像是:
- 从源系统中提取数据并加载到原始表中
- 通过创建表示临时表的视图从概念上转换原始表中的数据
- 恭喜,不再有从原始状态到转换状态的数据硬复制,一切都是视图!用户只需启动他们的查询并立即查看嵌套的n级*返回数据!
*结果可能会有所不同,具体取决于您是否有数百万美元可用于云处理和/或大规模量子计算是否可用
不。
你描述的都是ELT的变种。
ETL 和 ELT 之间的区别在于您执行“T”的位置。“传统”ETL 流程将使用 DataStage、Informatica、Talend 等专用工具在 DBMS 之外实现“T”(数据转换)。然后将转换为目标模型的数据简单地加载到目标 DBMS 表中.
ELT 流程的不同之处在于它是执行“T”的目标数据库引擎;您将原始数据加载到目标数据库中的临时表中,然后使用 DBMS 工具将它们“按摩”成最终形式并复制到目标表中。当源和目标数据类型阻抗相对较低且相关 DBMS 具有完成这项工作的工具和能力时,这是一个合适的替代方案。