É quase uma questão de semântica. Muito ar quente é liberado nas discussões sobre isso, mas não estou realmente convencido de que haja uma profundidade filosófica real para uma distinção entre os dois.
Em algum nível, você pode visualizar o ETL como a transformação de dados em uma ferramenta do lado do cliente antes de finalmente carregá-los, com o ELT implicando que os dados são transferidos para algum tipo de área de preparação com relativamente pouca alteração no formato. 'Transformação' ocorre depois.
Essas são definições muito simples e podem ser aplicadas a uma ampla variedade de arquiteturas técnicas, e existem muitos projetos possíveis que qualquer um dos termos poderia ser usado para descrever.
Sou fortemente a favor de uma arquitetura em que toda a lógica de transformação e de negócios possa ser incorporada a uma base de código mais ou menos homogênea, e já fiz vários sistemas em que a lógica de transformação era bastante complexa. Isso costumava usar apenas a ferramenta ETL para aterrar os dados e, em seguida, toda a transformação era feita nos procedimentos armazenados. Indiscutivelmente, isso poderia ser descrito como ETL ou ELT, com a diferença sendo apenas uma semântica.
Algumas ferramentas são muito centradas no banco de dados (no entanto, o Oracle Data Integrator, por exemplo, é frequentemente chamado de ferramenta ELT). Se você se inscrever nesta visualização, 'Extrair' e 'Carregar' ocorrerão antes que os dados sejam transformados, à medida que são aterrados em uma área intermediária e depois processados por código SQL ou PL / SQL (que pode ser gerado pela ferramenta ou escrito a mão). Várias pessoas com quem conversei parecem considerar o principal mérito do ODI por não ser OWB.
Se você usar uma ferramenta do lado do cliente, como o Informatica Powercentre ou o MS SQL Server Integration Services, a ferramenta poderá fazer uma transformação extensiva no lado do cliente de dados. Algumas ferramentas de ETL, como Ascential Datastage e Ab Initio, foram projetadas para trabalhar muito com arquivos simples e estruturas de dados na memória para maior velocidade. Nesse tipo de arquitetura, a transformação já foi feita antes de ser carregada. Talvez esse tipo de arquitetura possa ser definitivamente classificado como 'ETL', embora eu tenha visto muitos projetos centrados em ferramentas em que todo o trabalho real é feito por um monte de código de procedimento armazenado.
Existem vantagens em várias ferramentas e abordagens arquiteturais, mas não se pode fazer uma declaração geral sobre os méritos das abordagens 'ETL' vs. 'ELT' porque os termos são tão amplos que a diferença é quase sem sentido. Algumas ferramentas e arquiteturas podem ter vantagens específicas - por exemplo, o uso intenso de arquivos simples do Ab Initio oferece uma vantagem significativa de desempenho em grandes volumes de dados.
Na prática, fazer a distinção entre 'ETL' e 'ELT' é sem sentido, sem entrar em uma discussão muito mais profunda dos requisitos do sistema, plataforma e arquitetura técnica.