ETL 和 ELT 有什么区别?



我知道在ETL中,我们转换数据并在数据仓库中加载
在ELT中,我们将数据加载到数据仓库中,然后进行转换。

  1. 除了以上两行,它们到底有什么不同?

  2. 一个比另一个有什么优势?

  3. 在ELT中,我看到有人说,我们利用数据仓库的力量来进行转换。为什么仓库提供转型优势?

  4. 在我的用例中,我在源ADLS(源层(中有源数据,我使用azure Databricks将数据再次摄取到我的ADLS(原始层(中,然后获取原始层数据,使用azure Databricks转换数据,并再次存储在ADLS(最终层(中。现在将最后一层数据从ADLS复制到azure sql server数据库,如下所示。

    来源ADLS->原始层ADLS[使用ADB复制所有内容(安装源(]
    原始层ADLS->最终层ADLS[使用ADB转换]
    最终层ADLS-->SQL Server数据库[使用ADF复制]

    它是ETL还是ELT?

@NickW答案是一个很好的总结。我想补充的是,这在很大程度上取决于你有什么天赋可以支持。如果你的大部分天赋都是基于SQL的,那么ELT(在存储过程中进行转换等(会更有意义,因为你的团队不必学习在ETL工具中对转换进行编码。如果你有ETL天赋,那么在那里进行转换可能更有意义,这将从你的数据仓库服务器上卸载处理。

这个架构问题可能更多地与你现有的天赋和技能有关。

传统上,ETL是大多数人使用的。ETL工具在自己的基础设施上运行,并在将数据写入目标数据库/文件之前使用自己的引擎进行转换。这是因为许多数据库的性能(以可接受的成本(不足以以所需的吞吐量转换数据。

随着RDBMS的性能提高(成本降低(,RDBMS可以承担转换工作负载,ETL工具不需要转换数据库外部的数据,因此转向ELT

最新更新