ETL vs ELT

ETL cleans the data before it loads. ELT loads the raw data and cleans it inside the warehouse. Raw events arrive at 60 MB/s, but the warehouse loads at most 50 MB/s, and dashboards need only 4 percent of the data. ELT fails with p99 over 10 s and 5.9 percent errors. ETL passes with p99 14 ms.

Play the level

Each worker adds one network cardDrag or use arrow keys to change the workers

2 workers · 1 TB moves in 1.1 h · 1,000 Mbps per card

Case 1

Raw JSON events arrive at 60 MB/s. Dashboards need only the 4 percent that survives cleaning. The warehouse loads at most 50 MB/s. Shop p99 must stay below 50 ms and no event may be lost.

Case 1
Measure Goal ETL: clean, then load ELT: load, then clean
p99 latency (Shop) under 50 ms 3.3 ms Pass 3.3 ms Pass
p99 latency (Raw) under 2 s 14 ms Pass 10.1 s Fail
Error rate (Raw) under 0.1% 0% Pass 5.9% Fail
Monthly cost 160 USD/mo 128 USD/mo
SQLHTTP/2HTTP/2HTTP/2UsersUsersUsersUsersPostgres8 vCPU · 16 GBAnalytics DB8 vCPU · 16 GBBatch engine2 vCPU · 4 GB × 2
SQLHTTP/2HTTP/2HTTP/2UsersUsersUsersUsersPostgr…Analyt…Batch…
ETL: clean, then load: meets the goals
SQLHTTP/2HTTP/2HTTP/2UsersUsersUsersUsersPostgres8 vCPU · 16 GBAnalytics DB8 vCPU · 16 GB
SQLHTTP/2HTTP/2HTTP/2UsersUsersUsersUsersPostgr…Analyt…
ELT: load, then clean: misses a goal