Data Engineering Fundamentals · Data Engineering Foundations
21 cards
ETL, ELT, and Incremental Loading
-
Quick check
A pipeline extracts orders, cleans and reshapes them on a separate processing tier, and only then writes them into the warehouse. Which pattern is this, and why?
AELT, because the data reached a warehouse and warehouses always transform on arrival
The target being a warehouse says nothing about where the work ran; ELT means transforming after the load, inside the target.
BETL, because the transformation happens outside the target and before the load is written
Right. ETL transforms on a secondary processing system and loads data that is already target-ready.
CNeither, because a pattern that transforms before loading is not doing extraction
Both patterns extract; the names describe where transformation sits relative to loading, not whether extraction happened.
3 / 21
-
Quick check
A rule states that unmasked personal identifiers must never be stored in the analytical target. Which approach actually enforces it?
ALoad the identifiers first, then mask them with a job that runs in the target
Masking after the load means the raw identifiers were written into the target, which is the thing the rule forbids.
BLet analysts repeatedly re-derive their own views from the retained raw fields
Repeated re-derivation from retained raw values is the opposite of the rule: it depends on the raw values being there.
CMask them during pre-load transformation, so the raw values never arrive
Right. Transforming before the load enforces a boundary that raw sensitive values may not cross.
5 / 21
-
Quick check
Why can loading before transforming reduce the number of systems a team maintains?
ATransformation runs inside the target instead of on a separate processing server
Right. Consolidating transformation with the target's own compute removes a system from the stack.
BExtraction and loading are no longer needed once the target holds the raw data
Both patterns extract and load; only the position of transformation changes between them.
CGovernance stops being a concern, because raw data in a target is never exposed
Retained raw data still needs access controls — the target supplies them, it does not remove the need.
7 / 21
-
Keep your progress in the app
That’s 3 of 9 quick checks. In the app they stay answered, and every lesson remembers where you left off.
-
Quick check
The target must never receive unmasked identifiers, its schema is fixed, a processing tier already exists, and analysts do not need raw values. Which pattern fits?
ALoad raw identifiers into the target first, then mask them there later
The write itself would place unmasked identifiers in the target, which is what the rule forbids.
BTransform and mask on the existing tier, then load the fixed-schema target
Right. The security boundary and the predetermined structure both favour preparing the data before it is loaded.
CRetain every raw identifier in the target for repeated exploration by analysts
Retention is what the rule rules out, and the scenario states that analysts do not need the raw values.
10 / 21
-
Quick check
Compute in the warehouse scales, formats vary, raw access is governed there, and analysts keep deriving new models without re-extracting. What is strongest?
ALoad the raw inputs and then transform them inside the target whenever it is needed
Right. Scalable target compute, varied inputs, governed raw retention, and repeated modeling all point to transforming in the target.
BTransform each use case on a fixed external server before any data is loaded
A fixed external tier makes every new question into upstream work, which the repeated-modeling requirement rules out.
CKeep one predetermined model and discard the raw inputs once it is produced
Discarding the raw inputs removes exactly the material the next derived model would need.
12 / 21
-
Quick check
A load adds each run's new records but never revises rows already written. What is it, and when does it break?
AA full refresh; it breaks when the source is too large to extract in one pass
A full refresh rebuilds the target from a complete extract rather than leaving existing rows untouched.
BA change-based load; it breaks when no reliable saved progress can be kept
A change-based load exists precisely to carry modifications through, which is what this one does not do.
CAn append-only load; it breaks when earlier records are corrected or deleted
Right. Append-only growth suits additive data and misses any later correction or deletion of earlier records.
14 / 21
-
Quick check
A run reads a saved value, copies only the source rows above it, and then stores the new highest value. What is that saved value doing?
AForcing every run to rebuild the target from a complete extract of the source
Rebuilding from a complete extract is a full refresh, which relies on no saved progress at all.
BMarking records as permanently new so that each run reprocesses all of them
If records stayed permanently new, the boundary would save nothing — every run would repeat the same work.
CRecording where the last run stopped, so this run can select a later range
Right. The watermark stores the last processed value so the next run can request only what came after it.
17 / 21
-
Quick check
Of 500 million source rows, about 0.2 percent change daily, updates to old keys matter, and a reliable last-modified watermark can be stored. Which design fits?
ASelect and apply the new and modified rows that lie beyond the saved watermark
Right. The reliable boundary makes change-based loading available, and it carries modifications as well as insertions.
BReplace the whole target every day from a complete extract of all the source rows
A daily full rebuild reads 500 million rows to deliver about a million changed ones, repeating nearly all of its work.
CAppend each new key and leave previously loaded rows exactly as they are
Appending only new keys leaves every corrected old record stale, which the update requirement rules out.
19 / 21
-
Quick check
Which statement keeps the two decisions separate?
AChoosing ELT settles the loading scope too, because target-side work is always full
Transforming in the target says nothing about scope: an ELT pipeline can load incrementally.
BWhere transformation runs and how much each run loads are independent choices
Right. Either pattern can use full or incremental loads, because scope and transformation location are separate.
CA full refresh is only available to ETL, since incremental runs need a raw target
Both patterns can refresh fully or incrementally; neither scope belongs to one of them.
21 / 21
-
9 quick checks · then the test
In the app, finishing the quick checks opens this lesson’s 10-question test, and the ones you miss come back exactly when you’re about to forget them.
The whole course, on your phone
Lessons you can read, audio you can listen to on the way to work, and practice that remembers what you got wrong.