哪个更好,ETL还是ELT?

时间:2010-06-19 18:53:52

标签: data-warehouse etl

花了一些时间研究数据仓库,我创建了ETL(提取转换加载)和ELT(提取加载转换)过程。似乎ELT是一种更新的填充数据仓库的方法,可以更轻松地利用群集计算资源。我想听听其他人认为ETL和ELT相互之间的优势以及何时应该使用其中一种。

4 个答案:

答案 0 :(得分:5)

哪个更好是很难回答 - 取决于问题。

我更喜欢多步ETL - ECCD(Extract,Clean,Conform,Deliver)。我还在每次提取,清理和符合步骤后保留中间csv文件;占用一些磁盘空间,但非常有用。每当由于etl中的错误或DW模式更改而必须重新加载DW时,就不需要再次查询源系统 - 它已经在平面文件中。在需要时,通过暂存区域中的平面文件能够 grep sed awk 也非常方便。如果有多个源系统输入同一个DW,则只需为每个源系统开发(和维护)提取步骤 - 清洁,符合和交付步骤都很常见。

答案 1 :(得分:5)

因此,在完全使用ETL和ELT之后,我得出结论,你应该不惜一切代价避免使用ELT。在您实际加载仓库之前,ETL会为您的仓库准备数据。但是,ELT会将原始数据加载到仓库中,然后将其转换到位。如果您有一个繁忙的数据仓库,这是有问题的。如果您尝试更新的表上运行报告查询,则您的查询将被阻止。因此,报告查询可能会阻止或阻止更新。

现在有些人可能会说报告查询不需要阻止更新,您可以设置隔离级别以允许脏读。但是,报告查询通常不由软件工程师执行。它们由业务用户执行,因此您无法依赖它们来正确设置其隔离级别。同样,并非所有报告都能容忍脏读。

有些情况下,ELT可以通过将其引入您的数据仓库来运行,这是危险的,因此,我建议您的理智和可维护性,避免它。

答案 2 :(得分:4)

我同时使用两者。这只是一个方便和功能的问题。这一切都取决于具体情况。有时我做TEL - 即转换在源数据库中完成(在存储过程或视图中),然后直接提取和加载。

答案 3 :(得分:2)

我更喜欢ELT。可以说它违反了规范。它确实需要改变传统方法的心态和设计方法。但它利用现有硬件和技能集,进一步降低了开发过程中的成本和风险。

如果我们想要确保ETL方法中的参照完整性,那么必须将数据从目标下载到ETL服务器(引擎)。但我们不需要在ETL方法中这样做。

要从ELT方法中获得最大收益,需要开放思想。

相关问题