Episode 03 / Pipelines
Full Refresh vs Incremental Load
Full refresh is simple and easier to trust while logic is still changing, but that simplicity gets expensive as data grows. This sketch is the checklist I use before moving into incremental loads: checkpoint, watermark, late updates, dedup, and merge safety.
By Mario Caesar ·

░░░░░░░░▒░░░░░░░░░░░▒▒░░░▒░░░░░░░▒░░░░░░░░░▒░░░░░░░▒░░░░░░░░░░░░░░▒░▒▒░░▒░▒░░░░░▒░░░░░░░░░░░░▒▒░
░░░░░░░░░░░░░▒░░▒░░▒▒▒▒▒▒▒░▒░░▒▒░░░░░░░▒░░░▒░░░░░░░░░░░░░░░░░░▒░▒░▒▒▒▒░░░░░░▒░░░░░▒░░░▒▒░▒▒░░░░░
▒░░░░░░░░░░░░░░░░▒▒▒░░░░░▒░░░░░░░░░░░░░░░░░░░░▒░░▒░░░░▒░░░░░▒░░▒▒▒░░░░▒░░░░░░░░▒░░░░░░░░░░░░░░▒░
░░░▒░▒░░░▒░░░░░▒▒░░░░░░░░░░░▒░░░░▒░░░░▒▒░░░░░▒░▒░░░░░▒░░▒░░░▒░░░░░░░░▒░░░▒░░░░░░░░░░░░░░░░░▒░▒░░
░▒░░▒░░░▒░░░░▒▒▒░░░░░▒░▒▒░░░░░░░░░▒░▒░░░░░░░░░░░▒░░░░▒▒░░░░░▒░▒░░░░░░░░▒░░▒▒░░▒░▒░▒░░░░░░░░░░▒░░
░▒▒░░░▒░░░░▒░▒░▒░▒░▒░▒░▒░░░░░░░░░░░░░░░▒░░▒░░░░░░▒░▒▒▒░░▒░░░░▒░▒░░░░░░░░▒░░░░░░▒░░░▒░░░░░░▒░░░░▒
░▒▒░░░░░░░░░▒░▒░░░░░░░░░▒▒▒▒▒░░▒░░░░░░▒░▒░▒▒░░▒░░░░░░░░░░░░░▒░░░░░░░░░▒░▒▒░░▒░▒░░░░░░░░░░▒▒░░░▒░
░░░▒░░░░░░░▒▒░░▒▒░░▒▒░░░░░░░░░░▒░░░░░░░░░░░░░░░░░░░░░░░░░▒░░░░▒░░░░░░░▒░▒░▒░░░░░▒░░░░▒▒▒▒░░░░░░░
░░▒░▒░▒▒░▒░░░▒░░░▒░▒░░░░░░░░▒░░░▒▒░░░░░░░░░░░░░░░▒░▒░▒░░░▒░░▒░░░░░░░▒░░▒▒░▒░▒░░░░░░▒░░░░░▒░░░░░░
░░░░░░░░▒░░░▒░▒░░░░░░░▒▒░░░▒░░▒░░░▒▒░░░░▒░░▒░░░▒░░░▒░░░▒░░░░░▒▒░░▒░░▒▒░░▒▒░░▒▒░░░░▒░▒░░░░░░░▒▒░░
░░░░▒▒░░░░░░▒░░░░░░░░░░░░░░░░░▒▒░▒░▒░▒░░░░░░░░░░▒▒▒▒▒░░░░░░▒░░░▒░░▒░░░▒░░░░▒▒░░░░░░▒░░░▒░▒░▒░░░▒
░░▒░░▒░░░░▒░░░░░▒░▒░░░▒░░░░░░▒░▒▒░░░░░░░░░░░░▒▒▒░░░░░░▒░▒░░░░░░▒▒░░▒░░░▒░▒▒░░░░░▒▒░▒▒░▒░▒▒░▒░▒░░
░░▒░░▒░░░░░░▒░░░░░░░░▒░░░░░░░░░░░░▒░░░▒▒░░░▒▒▒▒░░░░░▒░░▒▒░░▒░░▒░░░░▒░▒░░░░▒░░░░░░▒▒░░░░░░░░░▒░░▒
░▒░░░░░░░░░░▒▒░░░░░░▒░░░░░░░░░░░░▒▒░░░░░░░░▒░░░░▒░░░░░░░░▒░░░░░▒░░░▒░░░░▒▒░░░░░░▒░░░░░░░░░▒░▒░░░
▒░░▒░░░░░░░░░▒░░░▒░░░░▒░░░▒░░▒▒░▒░░▒▒░▒░░▒░░░░░░░░░░░░░▒░▒░░░░░▒▒░░░░░░░░░░░▒░░░░░░░░░░░░░░░░░░░
░░░▒▒░░░░░░░░░░░░░░▒░░░░░▒░░░░░▒░░▒░▒░░░░░░░░░░░░░▒░░░░░░░░░░░░░░░░░░░░░░░░░░▒░░▒░░░▒░░░░▒░░░░▒░
░░░░▒░░░░░░▒▒░░░░░▒░░░░▒░▒░▒░░░░░░░░░░░░░░░░░░░▒░░░░▒░░░░▒░░░░░▒░░░░░░░▒░▒▒░░░░░░▒░░░░░░░░▒▒░░░░
░░░░░░░▒░░░░░░░░░░▒░░░░░░░░░░░▒░░▒░░░░░░▒▒░▒▒░░░░░░░░▒░▒░░░░▒░░▒▒░░▒▒░▒▒░░░░░░░░░░░░░▒░▒░░░░▒░░░
▒░▒░░░░░▒▒░░░░▒░▒░░▒░▒░░▒░░░░░▒░▒░░░░▒░░░░░░░░▒░░░▒░░▒▒░▒░░░▒░░▒░░▒░░░▒░░░░▒░░▒░░░░▒░░░░▒░░░░░░░
░▒▒░░░░░░░░░░▒░▒░░▒░░░░░░░░░░░▒░░░▒░░░░░░░░▒░░░▒░░░░░░░▒░░░░░░░░░░░▒░▒░▒░░░░▒▒░░░░▒░░░░░░░░░▒▒░░
▒░░▒░░░▒░░▒░░░░░░░░░▒░░░░░░░░▒░▒▒░░░░▒░░░░░░░░░░░░░░░░░▒░░░▒░░░░▒░░▒▒░░░▒░░░░░░▒▒░░░▒▒░░░░▒░░▒▒░
░░░░▒░░░░░░▒░░░▒░░░░▒░░░░░░▒░░░░░░░░▒▒░░░▒░░░░░▒░▒▒░░░░░░░░▒░▒░░░░▒▒░░░░░▒░▒░░░░░░░▒░▒░▒░▒░░░░░░
▒░░░▒░▒░░░▒░░░░▒░▒░▒░░░▒▒░▒▒░░░░░░▒░▒░░░░░░░░░░░▒░░░▒▒░░▒▒░░░░░░░░░▒░░░░░░░░▒░░░░░░░░░░▒░░░░░▒░░
░▒░░░░░░░░░▒░░░░░░▒░░░▒▒░░░░░░░▒░░▒░░░▒░▒▒░░▒▒░▒░░░░░░░░░░░░░░░░▒░░▒░▒░░░░░░░░░░░▒░░░░░░░░░░░░▒░
░▒░░░░░░▒░░░░░░▒░░▒░░░░░░░░░▒░░░░▒░░░░░░░░░▒░░░░░░░▒░░░░░░░░░▒░░▒▒░░░▒░░░░▒░░▒▒░░░▒▒░░░░▒░░░░░░░
░▒▒░▒░▒▒▒░░░▒░░░░▒▒░▒░░░░▒▒▒▒░░▒░▒░░░░░▒░░░░░░░░░░░░░░░▒▒░▒░░░░░▒░▒░░░░░▒░░░░░░░▒░░▒░░▒░░░░▒░░▒░
░░░▒░░░▒░░▒▒▒░░▒░▒░▒░░▒▒▒░░░░░░░░░░▒░▒░▒░░▒░░░░░░░░▒░░▒▒░░░▒░░░░░░░░░░▒░▒░░░▒░░░░░▒░░░░░░░░░▒░░▒
░░░░░░░▒▒░▒░░░░▒░░░░▒░░▒░░░░░▒░░░░▒░░░░▒░░░░░░░░▒░▒░▒░░░░░░░░░░░░░░░░░░▒░▒░░░░░░░░▒░░░░░▒▒░▒░░░░
▒░▒░▒░░░░░▒▒▒░▒░░░▒░░░░░░░░░▒░▒░░░░░░░▒░░▒░░░▒▒▒░░░░▒░▒░░░▒░░▒░░▒░▒░▒░░░▒░░░░░░░░░▒▒▒░▒▒░░▒░░░░▒
░░░░▒░░░░░░░░░▒░░░░░░░░░▒░░▒░░░░░░░░▒░░░░▒░░░░▒░▒░░░░░░▒░░▒░░▒▒▒░░░░░░░░▒▒░░░▒░░░░▒░░░░▒░░░▒░▒▒░
░░▒▒░░▒░░░░░▒░░░░░░▒░▒▒░░▒░░░▒░░░░░░░░░░░░▒░░░░░▒░░░░░░░░░▒░▒░░░░▒░░░▒░░░░▒░░░░░░░▒░░░░▒░░░░░▒░▒
░░▒░░░▒░▒▒░▒░░░░░░░░▒░░░░░░░░░░░░▒░▒▒░▒░▒░░░▒░░░░░░░░░▒░░░░░░▒░░░░░░░▒▒░░▒░░░░░░░░▒░░▒▒░░▒░▒▒░░░
▒░░▒▒░░░░░░▒░░░░░░░░░░░░░░▒░░░░░░░░▒░░░░░░░▒░▒░░▒▒░░░░░▒░░▒░░░░░░░▒░░░░░░░░░░░▒░░░░░▒░░░░▒░░░░░░
░░▒░░░░░▒▒▒░░▒░░░░░▒░▒░░░░░░░▒░░░░░░▒░░▒░░░░▒░░░░░░▒░░░▒░░░░░▒░▒░░▒░░░░░░░░░░░░░▒░▒▒░░░▒░▒░░▒▒▒░
░▒░░░░▒░░░░▒░░░░░░▒░░░░░▒▒░░░░░░░▒░░▒░▒▒░░░░░░░▒░▒░░░░░░░▒▒░░▒░░░░░░▒░░░░░▒▒▒▒░░░░░░░░▒░░░░░▒░░░
░▒░░░░░▒░░░░░░░░░░░░░░░▒░░░░░░░▒░▒░░░░░░░░░▒░░░░▒░░░░▒░░░░▒░▒▒░░░░░▒░░░░░░░░░░░░░▒░░░░░▒░░░░░░░░
░▒░░░░░░░░░░░▒░░▒░▒░░░░▒░░░░░░░░▒░░░░░░░░▒░░░▒░░░▒░░░░▒░░░▒░░░░░░░▒▒░░░▒░░░░░░░░▒░░░░░░░░░░░░░░░
░░░░░░░░░░░▒▒▒░░░▒░▒▒▒░▒░░▒░░░▒░░░▒░░░░▒░░░░▒▒░░░▒░░░░░░░░░░░░░▒░▒▒░░░░░░▒▒▒░░░░░░░░░░░▒▒░▒░░▒░░
░▒░░░░░░░░▒▒░░░░░░░▒▒░░░▒░░▒░░░░░▒░░▒░░░░░░▒░▒░░░░▒░░░▒░░▒▒░▒░░░░░▒░░▒░▒▒░░░░░░░░▒░▒░░░░░░░░░░▒░
░▒░▒▒░░░▒░░░▒░░░░░▒▒▒░▒░░░░░░▒░░░▒░░▒░░░▒▒▒░░▒▒░░░░░░░▒░░▒░░▒░░░▒▒░░░▒░░░░░░░░░▒░░░░▒░▒▒░░░░░▒░░
░░░▒░░░░░░░░░░░░░▒▒░░░░░░░▒░░░░░░░▒░░░░░▒░░▒░▒░░░░░▒▒░░░░░▒░░▒░░░░░░░░▒▒▒░▒░░░▒░░░░░▒▒░░░░░▒▒░░░
░▒░░░░░░░░░░░░░░░░▒░░░░░░▒░░░░░░░░░▒▒▒▒▒░░░░░░░▒░▒░░░░░░░░▒░░░░░░░░░░░░░░░░░░░░░▒░░▒░░▒░░░░░░░▒░
░░░░░░░░░▒░░▒░░░▒░░▒▒▒▒░░▒░░▒░░▒░░░░░░▒▒░░░░░▒░░░░░▒▒░░░▒▒▒░░▒░░▒░░▒░▒░░░░▒░░▒▒░▒░▒▒░░░░░░░░░▒░░
░░░░▒▒▒░▒▒▒░░░░░░▒░░▒▒░░░░░░▒░░░░░░░░▒▒░░▒░░▒▒░▒▒░░░░░░░░░▒░░░░░░▒░░▒░░░░░░░░░░░░░░▒░░░░░░░░░▒░░
░░░▒░░░░░░░▒░░▒░░▒░░░▒▒░░░░░▒░░░░░░░░▒░░░░▒░░▒▒░░▒▒░▒░░░░░░░░░▒░░░░░░░░░░░░░░░░░░░░░░░▒░░▒░░░░░▒
░░░░▒░░░░░░░▒░░░░░░▒▒░░░░▒▒▒░░░░▒░░░░░░▒░░░░▒░░░▒░▒░░░░░░░▒░░░▒░░░░░░░░░░░░░░░░░░░░░░░░░▒░░▒░░░░
░░░░░░▒░░░░▒░░▒░░░░░░░░░░░░░▒▒░░▒░▒▒░░░░░░░▒░▒▒░░░▒░░░▒░░░░▒░░░▒░░░▒░▒░░░░░░░░░░░▒▒░▒░░░▒░░░░░░░
░░░░░░░░▒▒░░░▒░░░░░░░▒░░░░░░░░▒▒░░░░░░▒░░░░░░▒░░░░░░░░░▒░░░▒▒░░░░░░░░▒░▒░░▒░▒░░░░▒░░▒░░░░▒▒░░░▒▒
░▒▒░▒░░░░░░░░░▒░░▒░░░░▒░░░▒░░░▒░░░░░░░░░░░░░░░▒░░░░░▒░░░░░░▒░▒░░░▒▒▒░▒░░░░░░▒░░░░░░░▒░▒░▒░░▒▒░░░
░░░░░░▒░░░░░░▒▒░░▒░░░▒░▒░▒░░░▒▒░░▒░░░░░░░░░░░░░░░▒░▒░▒░░▒░░░░░░▒░░░░░░░░░░▒░░░░░▒▒░░░░░░░▒░░░░░▒
▒▒▒░░░▒░░▒░░▒░▒░▒░▒░░░░▒▒░░▒▒░░░░░░░░░░░░▒░░░░░░░░▒░░░░░░░░░░░░▒▒░░░░▒░░▒░░░░░░░░▒░░░░░░░░░░░░░░
░░░▒░▒░░░▒░░░▒░░░░░░░░░░▒░░░░▒░▒░░░░░▒░░▒░░▒░░░▒░░░░░░░░░░░░░░▒▒░▒▒░▒░░░░░░▒░░░░░░▒░░░░░░░░▒░░░░
░░░░▒▒▒▒░░▒░░░░░▒░░░▒░▒░░░░░▒░░░▒░▒░▒░░░░░░▒░░░░░░░░░░░▒░░▒░▒░▒░░▒░▒░░░▒░░░░▒░░░░░░░░░▒░░░░▒░░░░
▒░▒░░▒░▒░░░░░▒░▒░░░░▒░░░░▒░░▒░░░▒░░░░░░░░░░░░▒▒░░░░░░░▒░▒░░░░░░░▒░░░░░░░░▒▒▒░▒░▒░░▒▒░▒░░░░░░▒░▒░
▒░░░░▒▒░░░░▒░░░░░░▒░░░░░░▒░░░▒░░░░░▒░▒▒░░░▒░░▒▒░░░░░░░▒░▒░░▒░░░░░░░░▒░░░░░▒▒░░░░░░░▒░░▒▒░░▒░▒░░░
░░░░░░░░░░▒░░▒░░░░░░░░░░░░░░░░▒░░▒░░░▒░▒░░░░░░░░░░░░░▒░▒░▒▒░░░▒░░░░▒░░░▒░░░░░░░░░░░░░░▒▒░▒░░░░▒░
░░░░▒▒░░░░░░░▒▒░░░▒░░▒░░░░░▒░░░▒░░░░░░░░░░░░░▒░░▒░░░░▒░░░▒▒░░░░░▒░░▒░▒░░░░░░░░░░▒░▒░░░░▒▒░░░░▒░░
░░░▒░░░▒░░░▒░░░░░░░░░░░░▒░░░░░▒░░░░▒░▒░░░░░░░░░░▒░▒░▒░▒░▒░▒░▒░░▒▒▒░░░░░░░░▒░░░░▒░░░░░░░░▒░░░░░░░
░▒░░▒░░░░░░░▒░░▒░░░░░░░▒░░▒░░▒░░░░░░░░░░░░░▒▒░░░░░░░░░░░░░░░░░▒░░░░░░░░░░▒░░▒░▒▒░▒░░░░░░▒░░░▒░░▒
░░░░░░░░░░░░░░▒▒░░░░░░░░░░░░░▒▒░░░▒░░░░░░░░░░▒░▒░░░░▒░░▒░░░░░░░░░░░░░▒▒░▒░░░░░░░░░▒▒░░░░░░░░░░░▒
░░░░░░░░░░░░░░░▒░▒░░░░░░░░░░▒░▒░░░░░░░░░▒░▒▒░░▒░░░░░▒░▒░░▒░░░░░░░░░▒░░░░░░░▒░▒░░░░░░░▒░▒░░░░░▒░░
░░▒░░░▒░░░▒░▒░░▒░░░▒▒▒░░░▒░░░▒░░░▒░░░░▒░░▒░▒░░░░░░░░░░░░▒░▒░░░░░░░▒░░░▒░░░▒░░░░▒░▒░░░░▒░░░░░░░░░
▒▒░░▒░▒▒▒░░▒░░░░░░░░░░░░░▒░░▒░░░▒░▒░▒░░▒░░░░░▒░░░░░░░░░░░░░░░░░░▒░▒░░░▒░░░░░░▒░▒░░░▒░░░░░░░░░░░░
▒░▒░░░░░▒░░░░░▒░░░░░░░░▒▒▒░░░░▒░░░░▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒░░░▒░░░░░▒░░▒░░▒░▒░░▒▒░▒░▒░░░
Reading the sketch
Full refresh fits simpler loads
It works well with simple logic, infrequent updates, and rebuild costs that remain acceptable.
Full refresh needs fewer controls
A pipeline can rebuild without a reliable watermark or upsert support.
Incremental load fits growing workloads
It becomes useful when data volume and refresh cost make full rebuilds too slow.
Incremental load needs reliable state
The pipeline needs a dependable watermark and a way to handle upserts.
Late updates affect the decision
Frequent late updates add another constraint to incremental processing.
