在花了一些时间研究数据仓库之后,我创建了ETL (提取转换加载)和ELT (提取加载转换)流程。ELT似乎是一种更新的填充数据仓库的方法,可以更容易地利用集群计算资源。我想听听其他人怎么看待ETL和ELT的优势,以及你什么时候应该使用其中一种。
发布于 2011-02-28 00:07:03
因此,在彻底尝试了ETL和ELT之后,我得出的结论是,你应该不惜一切代价避免使用ELT。ETL在您实际加载数据之前为您的仓库准备数据。但是,ELT将原始数据加载到仓库中,并在适当的位置进行转换。如果你有一个繁忙的数据仓库,这是有问题的。如果您正在尝试更新的表上正在运行报表查询,则查询将被阻止。因此,报告查询可能会阻止或阻止更新。
现在,你们中的一些人可能会说,报告查询不需要阻止更新,您可以设置隔离级别以允许脏读取。然而,报告查询通常不是由软件工程师执行的。它们是由业务用户执行的,所以您不能依赖它们来正确地设置它们的隔离级别。同样,并不是所有的报告都能容忍脏读。
但是,在某些情况下,将ELT引入您的数据仓库是危险的,因此,为了您的理智和可维护性,我建议您避免使用ELT。
发布于 2010-06-23 03:32:42
哪一个更好很难回答--取决于问题。
我更喜欢多步骤ETL -- ECCD (Extract,Clean,Conform,Deliver)。我还在每个提取、清理和符合步骤之后保存中间的csv文件;这会占用一些磁盘空间,但非常有用。每当由于etl中的bug或DW模式更改而不得不重新加载DW时,都不需要再次查询源系统--它已经在平面文件中。当需要时,能够在登台区域中通过平面文件进行grep、sed和awk也是非常方便的。在有多个源系统馈送到同一DW的情况下,只需为每个源系统开发(和维护)提取步骤--清理、符合和交付步骤都很常见。
发布于 2010-06-20 07:36:24
我两者都用。这只是一个便利性和功能性的问题。这完全取决于具体情况。有时我会使用TEL -即转换是在源数据库中完成的(在存储过程或视图中),然后直接提取和加载。
https://stackoverflow.com/questions/3076810
复制相似问题