← All posts

ETL vs ELT: the difference and when to use each

ETL vs ELT explained in plain terms: where transformation happens, when to use each, the tools involved and a real pipeline example.

ETL vs ELT: the difference and when to use each

ETL vs ELT is a question of where the data gets cleaned. In ETL (extract, transform, load) you reshape data before it reaches the warehouse. In ELT (extract, load, transform) you load the raw data first and reshape it inside the warehouse. Microsoft's architecture guide puts it simply: ELT "differs from ETL solely in where the transformation takes place". This post explains both in plain terms, when to use each, and what a real pipeline looks like.

What is the difference between ETL and ELT?

Both start the same way. You extract data from the systems that hold it: accounting, CRM, a booking engine, spreadsheets, an API. Both end with data in one place that reports can read. The difference is the order of the middle steps.

ETL transforms on the way in. Data passes through a separate engine or staging area, where it is filtered, joined, deduplicated and checked against business rules. Only the clean result lands in the warehouse.

ELT loads first. Raw data lands in the warehouse or lakehouse as it came from the source. Transformation then runs inside that same system, usually in SQL, and produces clean tables next to the raw ones.

ETL ELT
Where transformation runs Separate engine or staging area Inside the target warehouse
What lands in the warehouse Clean, modelled data Raw data, then clean tables
Raw history kept Only if you store it separately Yes, by default
Works best with Structured data, strict rules Large or mixed data, a powerful target
Main risk Pipelines are harder to change Raw data, including personal data, sits in the warehouse

Why did ELT become popular?

Cloud warehouses and lakehouses can scale their compute up and down. That made it cheap to run transformations where the data already sits. AWS notes that ETL "has an additional step before it loads data", which can slow things down as volumes grow. Microsoft adds that scaling the target store also scales an ELT pipeline.

Keeping raw data has another benefit. If a definition changes next year, you rerun the transformation on history you already hold. With ETL, data you filtered out on the way in is gone unless you stored it somewhere else.

When should you use ETL, and when ELT?

Microsoft's guide gives a fair rule of thumb, and it matches what we see on projects.

Choose ETL when:

  • The target system is small or busy, and you don't want heavy work running on it.
  • Complex business rules need a dedicated transformation tool.
  • Compliance means data must be checked, masked or approved before it is stored.

Choose ELT when:

  • The target is a modern warehouse or lakehouse with compute that scales.
  • You want to keep raw data for later analysis or changing definitions.
  • Your team is comfortable writing transformations in SQL.

In practice most pipelines mix the two. You might mask personal data before loading, which is a small ETL step, then do all the business logic in SQL inside the warehouse.

What tools are used for ETL and ELT?

The tools fall into a few groups. You don't need all of them.

  • Connectors that copy data from sources on a schedule. Many BI and cloud platforms include them, and there are dedicated ingestion tools too.
  • Transformation in SQL or Python, either in a dedicated engine (ETL) or inside the warehouse (ELT).
  • Orchestration that runs steps in order, retries failures and sends alerts.
  • The target: a Postgres database for smaller volumes, or a cloud warehouse or lakehouse for larger ones.

For many SMEs, a Postgres database, a few scheduled jobs and SQL transformations cover most needs. Bigger platforms earn their cost when data volumes or the number of teams grow.

An example pipeline: TourDesk

TourDesk connects hotels with tours and excursions from many vendors. Its data sat in separate systems for hotels, vendors, suppliers, car rentals and restaurants, each with its own formats.

We built automated pipelines with Qlik Sense Data Integration. They follow a classic ETL pattern:

  1. Extract transactional and operational data from each source.
  2. Transform with cleansing routines that standardise formats and quality.
  3. Stage the results in temporary data stores.
  4. Load them into Qlik Sense, with incremental loads so reporting stays close to real time.

Dashboards on top track bookings, revenue, customer behaviour and regional market performance. Governance covering data quality and GDPR is part of the build. For more on why this matters for operators, see our post on tour operator data analytics.

Does the choice really matter?

Less than people think. A pipeline fails because nobody agreed what "revenue" or "active customer" means, not because of the order of three letters. Write the definitions down, build checks that run on every load, and pick the pattern that suits your target system and your team.

If you want a pipeline that your team can trust and maintain, our analytics work shows how we build data foundations, and you can tell us about your sources.

ETL vs ELT: the difference and when to use each | Gott Data