To prawie kwestia semantyki. Dużo gorącego powietrza uwalnia się w dyskusjach na ten temat, ale tak naprawdę nie jestem przekonany, że istnieje jakakolwiek głęboka filozoficzna różnica między tymi dwoma.
Na pewnym poziomie możesz zobaczyć ETL jako transformację danych w narzędziu po stronie klienta przed ostatecznym załadowaniem, przy czym ELT oznacza, że dane są przenoszone do pewnego rodzaju obszaru pomostowego przy stosunkowo niewielkiej zmianie formatu. Następnie następuje „transformacja”.
Są to bardzo puszyste definicje, które można zastosować w wielu różnych architekturach technicznych. Istnieje wiele możliwych projektów, które można by opisać w każdym z tych terminów.
Jestem zdecydowanie zwolennikiem architektury, w której cała logika transformacji i biznesowa może zostać wbudowana w mniej lub bardziej jednorodną bazę kodu, i zrobiłem wiele systemów, w których logika transformacji była dość złożona. Zwykle używało to narzędzia ETL do wyładowywania danych, a następnie cała transformacja została wykonana w procedurach przechowywanych. Prawdopodobnie można to opisać jako ETL lub ELT, przy czym różnica polega jedynie na semantyce.
Niektóre narzędzia są jednak bardzo skoncentrowane na bazach danych (na przykład Oracle Data Integrator jest często nazywany narzędziem ELT). Jeśli zasubskrybujesz ten widok, wówczas „Wyodrębnij” i „Załaduj” mają miejsce przed przetworzeniem danych, gdy są one lądowane w obszarze pomostowym, a następnie poddawane działaniu kodu SQL lub PL / SQL (które mogą być generowane przez narzędzie lub odręcznie). Kilka osób, z którymi rozmawiałem, uważa, że główną zaletą ODI jest to, że nie jest to OWB.
Jeśli korzystasz z narzędzia po stronie klienta, takiego jak Informatica Powercentre lub MS SQL Server Integration Services, narzędzie to może przeprowadzić rozległą transformację danych po stronie klienta. Niektóre narzędzia ETL, takie jak Ascential Datastage i Ab Initio, zostały zaprojektowane z myślą o szybkiej pracy z płaskimi plikami i strukturami danych w pamięci. W tego rodzaju architekturze transformacja została już wykonana przed załadowaniem. Być może ten typ architektury można zdecydowanie sklasyfikować jako „ETL”, chociaż widziałem wiele projektów zorientowanych na narzędzia, w których cała prawdziwa praca jest wykonywana przez mnóstwo kodu procedury składowanej.
Różnorodne narzędzia i podejścia architektoniczne mają zalety, ale nie można ogólnie powiedzieć o zaletach podejść „ETL” vs. „ELT”, ponieważ terminy są tak szerokie, że różnica jest prawie bez znaczenia. Niektóre narzędzia i architektury mogą mieć określone zalety - na przykład duże użycie plików płaskich przez Ab Initio daje znaczącą przewagę wydajności w przypadku dużych woluminów danych.
W praktyce dokonanie rozróżnienia między „ETL” i „ELT” jest dość pozbawione sensu bez głębszej dyskusji na temat wymagań systemowych, platformy i architektury technicznej.