Comparisons

Pairs that get conflated in real conversations. Neither column wins — what decides is the requirement, and each record leads with the confusion, because the confusion is the reason the record exists at all.

ETL vs ELT

What people get wrong about this pair

ELT is presented as the modern answer. The real question is where compute lives and who keeps the raw copy — and the second half of that is usually the deciding one.

ETL
Use it when

Compute at the destination is scarce or expensive, the raw data must be filtered before it crosses a boundary, or the destination cannot read the source format.

ELT
Use it when

The destination has ample compute, and you want the raw copy retained so a transformation bug is a re-run rather than a re-extract.

DimensionETLELT
Where transformation runsIn transit, before loadIn the destination, after load
Raw retainedOften not — you loaded the resultYes, by construction
Recovering from a logic bugRe-extract from the source, if it still has the dataRe-run the transformation over retained raw
Privacy boundaryCan filter before data leavesEverything lands first, including what you must not keep
Destination costStorage and compute for the result onlyStorage for raw plus compute for every transformation