È quasi una questione di semantica. Molta aria calda viene rilasciata nelle discussioni su questo, ma non sono davvero convinto che ci sia una vera profondità filosofica in una distinzione tra i due.
Ad un certo livello è possibile visualizzare ETL come trasformazione dei dati in uno strumento lato client prima di caricarlo definitivamente, con ELT che implica che i dati vengono trasferiti in una sorta di area di gestione temporanea con modifiche relativamente ridotte al formato. La "trasformazione" ha luogo dopo.
Queste sono definizioni molto morbide e potrebbero essere applicate a un'ampia varietà di architetture tecniche, e ci sono molti possibili progetti che entrambi i termini potrebbero essere usati per descrivere.
Sono fortemente a favore di un'architettura in cui tutta la trasformazione e la logica aziendale possano essere integrate in una base di codice più o meno omogenea e ho realizzato molti sistemi in cui la logica di trasformazione era piuttosto complessa. Ciò tendeva a utilizzare semplicemente lo strumento ETL per atterrare i dati e quindi tutta la trasformazione veniva eseguita in stored procedure. Probabilmente questo potrebbe essere descritto come ETL o ELT con la differenza che è semplicemente una semantica.
Alcuni strumenti sono molto incentrati sul database (Oracle Data Integrator, ad esempio, viene spesso definito strumento ELT). Se ti iscrivi a questa vista, allora 'Estrai' e 'Carica' stanno accadendo prima che i dati vengano trasformati mentre vengono sbarcati in un'area di gestione temporanea e quindi scricchiolati dal codice SQL o PL / SQL (che può essere generato dallo strumento o scritto a mano). Diverse persone con cui ho parlato sembrano considerare il merito principale di ODI in quanto non è OWB.
Se si utilizza uno strumento lato client come Informatica Powercentre o MS SQL Server Integration Services, lo strumento può effettuare una trasformazione estesa sul lato client dei dati. Alcuni strumenti ETL, come Ascential Datastage e Ab Initio, sono progettati per fare molto lavoro con file flat e strutture di dati in memoria per la velocità. In questo tipo di architettura la trasformazione è già stata eseguita prima del caricamento. Forse questo tipo di architettura potrebbe essere sicuramente classificato come "ETL", anche se ho visto molti progetti incentrati su strumenti in cui tutto il lavoro reale è svolto da un gruppo di codici di stored procedure.
Ci sono vantaggi per vari strumenti e approcci architetturali, ma non si può fare una dichiarazione generale sui meriti degli approcci "ETL" vs "ELT" perché i termini sono così ampi che la differenza è quasi insignificante. Alcuni strumenti e architetture possono presentare vantaggi specifici: ad esempio, l'uso intensivo di file flat da parte di Ab Initio offre un notevole vantaggio in termini di prestazioni su grandi volumi di dati.
In pratica, distinguere tra "ETL" ed "ELT" è piuttosto insignificante senza entrare in una discussione molto più approfondita sui requisiti di sistema, sulla piattaforma e sull'architettura tecnica.