Es ist fast eine Frage der Semantik. In Diskussionen darüber wird viel heiße Luft freigesetzt, aber ich bin nicht wirklich davon überzeugt, dass eine Unterscheidung zwischen beiden eine echte philosophische Tiefe hat.
Auf einer bestimmten Ebene können Sie ETL als Datenumwandlung in einem clientseitigen Tool anzeigen, bevor Sie es endgültig laden. Dabei bedeutet ELT, dass die Daten in eine Art Staging-Bereich übertragen werden, wobei das Format relativ wenig geändert wird. Anschließend erfolgt die Transformation.
Diese Definitionen sind sehr unübersichtlich und können auf eine Vielzahl von technischen Architekturen angewendet werden. Es gibt viele mögliche Designs, für deren Beschreibung beide Begriffe verwendet werden könnten.
Ich bin sehr stark für eine Architektur, in der die gesamte Transformations- und Geschäftslogik in eine mehr oder weniger homogene Codebasis integriert werden kann, und ich habe viele Systeme entwickelt, in denen die Transformationslogik recht komplex war. Dabei wurden die Daten in der Regel nur mit dem ETL-Tool abgelegt, und anschließend wurde die gesamte Umwandlung in gespeicherten Prozeduren durchgeführt. Möglicherweise könnte dies als ETL oder ELT bezeichnet werden, mit dem Unterschied, dass es sich lediglich um eine Semantik handelt.
Einige Tools sind jedoch sehr datenbankorientiert (Oracle Data Integrator wird beispielsweise häufig als ELT-Tool bezeichnet). Wenn Sie diese Ansicht abonnieren, werden "Extrahieren" und "Laden" ausgeführt, bevor die Daten umgewandelt werden, während sie in einem Staging - Bereich abgelegt und dann mit SQL oder PL / SQL - Code (der vom Tool oder generiert werden kann) komprimiert werden handgeschrieben). Einige Leute, mit denen ich gesprochen habe, scheinen den Hauptnutzen von ODI als das zu betrachten, dass es nicht OWB ist.
Wenn Sie ein clientseitiges Tool wie Informatica Powercentre oder MS SQL Server Integration Services verwenden, kann das Tool umfangreiche Transformationen auf der Daten-Client-Seite durchführen. Einige ETL-Tools, wie Ascential Datastage und Ab Initio, sind so konzipiert, dass sie aus Gründen der Geschwindigkeit viel Arbeit mit Flatfiles und speicherinternen Datenstrukturen leisten. In dieser Art von Architektur wurde die Transformation bereits vor dem Laden durchgeführt. Vielleicht könnte diese Art von Architektur definitiv als 'ETL' klassifiziert werden, obwohl ich viele werkzeugzentrierte Projekte gesehen habe, bei denen die gesamte eigentliche Arbeit von einer Reihe von Code für gespeicherte Prozeduren erledigt wird.
Verschiedene Tools und Architekturansätze bieten Vorteile, aber man kann keine pauschale Aussage über die Vorzüge von ETL- und ELT-Ansätzen treffen, da die Begriffe so weit gefasst sind, dass der Unterschied fast bedeutungslos ist. Einige Tools und Architekturen haben möglicherweise spezifische Vorteile. Beispielsweise bietet Ab Initio durch die häufige Verwendung von Flatfiles einen erheblichen Leistungsvorteil bei großen Datenmengen.
In der Praxis ist die Unterscheidung zwischen 'ETL' und 'ELT' ziemlich bedeutungslos, ohne auf die Systemanforderungen, die Plattform und die technische Architektur näher einzugehen.