Answers:
关于ETL和ELT的大量讨论。
VS ELT ETL之间的主要区别是在处理发生 数据的ETL处理在ETL工具发生(通常记录在-A-时间和内存中)数据的ELT处理在数据库引擎发生
数据相同,两种方法都可以达到数据的最终结果。
这在很大程度上取决于您和您的环境如果您拥有强大的数据库引擎和良好的硬件,并且可以对其进行繁重的处理,则ELT对您有利;如果您拥有繁忙的数据仓库引擎,则需要将其从处理中解放出来。用于ETL。
请注意,拥有ETL工具可为您提供两种选择,例如ETL(T),您可以在ETL工具中进行转换,也可以在数据库引擎中进行转换。
但是ELT您只能在数据库引擎中进行转换,但是您应该知道数据库比基于一次记录的ETL工具在基于集合的操作上更好。
这几乎是语义问题。关于这一点的讨论中释放了很多热议,但我真的不相信两者之间的区别有任何真正的哲学深度。
在某种程度上,您可以将ETL视为在最终加载之前在客户端工具中转换数据的方式,ELT表示将数据传输到某种暂存区,而格式的更改相对较少。之后发生“转变”。
这些定义非常松散,可以应用于多种技术体系结构,并且有许多可能的设计可以用这两个术语来描述。
我非常支持这样一种体系结构,在该体系结构中,所有转换和业务逻辑都可以构建为或多或少的同类代码库,并且我已经完成了许多转换逻辑非常复杂的系统。这往往只是使用ETL工具来放置数据,然后所有的转换都在存储过程中完成。可以将其描述为ETL或ELT,区别仅在于语义之一。
但是,某些工具是以数据库为中心的(例如,Oracle Data Integrator通常被称为ELT工具)。如果您订阅此视图,则在将数据转换到暂存区中然后由SQL或PL / SQL代码处理(可能由工具或手写)。我与之交谈的几个人似乎认为ODI的主要优点在于它不是OWB。
如果使用客户端工具(例如Informatica Powercentre或MS SQL Server Integration Services),则该工具可以对数据客户端进行大量转换。一些ETL工具(例如Ascential Datastage和Ab Initio)旨在处理平面文件和内存中数据结构以提高速度。在这种架构中,转换已在加载之前完成。尽管我已经看到许多以工具为中心的项目,其中所有实际工作都是由一堆存储过程代码完成的,但也许可以将这种类型的体系结构明确地归类为“ ETL”。
各种工具和体系结构方法都有其优点,但是人们不能一概而论地说明“ ETL”与“ ELT”方法的优缺点,因为术语如此广泛,以至于差异几乎毫无意义。一些工具和体系结构可能具有特定的优势-例如,Ab Initio对平面文件的大量使用使其在大数据量上具有显着的性能优势。
实际上,在不深入讨论系统要求,平台和技术体系结构的情况下,区分“ ETL”和“ ELT”是没有意义的。