ETL transforms data before it lands. ELT loads it first and transforms it where it landed, usually with SQL. Both describe sequencing, not a specific tool.
No credit card. 14 days. Cancel in one click.
Quick answer: ETL (Extract, Transform, Load) transforms data in a separate step before loading it into the destination. ELT (Extract, Load, Transform) loads raw data first, then transforms it inside the destination, usually with SQL run in the warehouse itself. Modern cloud warehouses made ELT the more common default because they're cheap and fast at large-scale SQL; ETL still fits destinations that can't run heavy transforms, or logic that needs more than SQL.
ETL (Extract, Transform, Load) and ELT (Extract, Load, Transform) describe the same three operations in a different order. ETL transforms data in a separate processing step before it ever lands in the destination: extract from the source, apply the transformation logic in an intermediate engine, then load the already-shaped result. ELT loads raw or lightly-shaped data into the destination first, then runs transformation logic as SQL (or a tool like dbt) inside the warehouse itself, using the warehouse's own compute to do the reshaping. Neither term describes a specific product; both describe a sequencing choice that any tool, including a hand-written script, can implement.
Modern cloud warehouses (Snowflake, BigQuery, Databricks, Redshift) got cheap and fast enough at large-scale SQL that it usually makes more sense to load raw data in and transform it there, rather than maintaining a separate transformation engine outside the warehouse. This also means the raw, untransformed data is preserved in the destination, which is useful if a transformation turns out to be wrong and needs to be rebuilt, since you're re-running SQL against data you still have, not re-extracting from the source. ETL's older transform-before-load pattern still makes sense when the destination isn't a large SQL-capable warehouse at all, when compliance requires certain fields to never leave a transformation boundary before landing anywhere, or when the transform logic genuinely needs a general-purpose language and libraries a SQL-based warehouse transform can't easily express.
This page is about the generic industry terms; it isn't the same question as Data Sync vs. ETL, which compares QueryFlow's own Data Sync feature name against the general concept of ETL as a category. Here, ELT and ETL are both generic terms describing where transformation logic runs, independent of any specific product.
-- ELT: load raw rows into BigQuery first, transform with SQL after -- Step 1 (load): raw orders land in `my-gcp-project.raw.orders` unchanged. -- Step 2 (transform, run inside BigQuery): CREATE OR REPLACE TABLE `my-gcp-project.analytics.orders_clean` AS SELECT order_id, UPPER(TRIM(status)) AS status, CAST(total_cents AS FLOAT64) / 100 AS total_usd FROM `my-gcp-project.raw.orders`; -- ETL: clean and cast the data before it ever reaches the warehouse -- (transform happens in the pipeline tool, not in the destination's SQL)
In the ELT example, a bad transform is fixed by rewriting the SQL and re-running it against data already sitting in BigQuery; nothing needs to be re-extracted from the source. In the ETL example, if the transform logic was wrong, you'd typically need to re-run the extraction and the transform step together, since the destination never held the untransformed version.
QueryFlow's Data Sync leans ELT by default: it moves rows from a source into a destination table using Insert, Update, or Upsert, and any real transformation you want to apply is written as SQL against the source query itself (the SELECT you write feeding the sync) or run separately in your warehouse after load, in a Flow Book, or in the SQL Editor. It isn't a dedicated transformation engine with its own DAG of transform steps the way a dbt-centric ELT stack is; it's closer to the L in ELT, with a T you write yourself in plain SQL wherever makes sense for the job.
Some modern pipeline tools do a small amount of transformation before load (deduplication, basic type coercion) and the bulk of business-logic transformation after load in the warehouse, sometimes labeled ETLT to acknowledge that the split isn't always clean. In practice this isn't a third category so much as a recognition that "transform" covers a range of work, from light cleanup that's easiest to do close to the source, to heavier business logic that benefits from a warehouse's compute and from being expressed in version-controlled SQL that a team can review.
A useful question when deciding where a specific transform should live: would you ever want to see the pre-transform version of this data again, to debug a wrong number or rebuild a changed business rule. If yes, load it raw and transform with SQL after, so the raw version stays available. If the transform is something like stripping personally identifiable information before it's allowed to leave a compliance boundary, that has to happen before load, full stop, regardless of which pattern is otherwise in use.
The ELT/ETL distinction shows up often enough in job postings and interviews that it's worth being able to state plainly: it describes when the transform runs relative to the load, not a brand, a specific product, or a level of sophistication. A candidate who can only describe one pattern, or who conflates either term with a specific vendor's product name, is often working from marketing language rather than the underlying mechanics.
No. ELT usually wins when the destination is a capable SQL warehouse and you want raw data preserved for re-processing. ETL still makes sense for destinations that can't run heavy SQL, or when a transform genuinely needs logic outside SQL's reach before landing anywhere.
You can transform data before it's written by shaping the source query itself, or process it in a Flow Book before a sync writes it, so a transform-before-load pattern is possible; it's just not QueryFlow's default posture.
No, that page compares QueryFlow's own feature name to the general term ETL. This page compares two generic industry terms, ELT and ETL, to each other.
In ELT it usually does, since the warehouse itself is the transform engine. In ETL, transform logic can be written in any language the pipeline tool supports.
14-day free trial, no card. Data Sync moves the rows; your SQL does the rest.
No credit card. 14 days. Cancel in one click.