Roadmap › ETL & Data Warehousing Concepts › Module: Fundamentals
Lessons in this course (12)

2. Full load vs incremental (delta) load

Basic★ Must knowLesson 2 of 12
Full loadIncremental load
WhatReload everything each runOnly new/changed rows since last run
Simple?VeryNeeds change detection
Volume/timeGrows with dataSmall and fast
DeletesHandled naturally (truncate + load)Must be detected separately
UseSmall tables, initial load, dimensions with no change trackingLarge/fast-growing tables

Change detection techniques:

  1. Watermark column — ModifiedDate > @LastLoadTime (store the high-water mark in a control table).
  2. Rowversion/timestamp column.
  3. Change Data Capture (CDC) — SQL Server reads the transaction log into change tables (inserts/updates/deletes with before/after values).
  4. Change Tracking — lightweight: which rows changed (not the values).
  5. Hash comparison — compare a hash (e.g. HASHBYTES('SHA2_256', ...)) of columns between source and target.
  6. Triggers writing to audit tables (adds OLTP overhead).
sql
-- Watermark pattern
DECLARE @Last DATETIME2 = (SELECT LastLoaded FROM etl.Watermark WHERE TableName = 'Orders');
DECLARE @Now  DATETIME2 = SYSUTCDATETIME();

INSERT INTO stg.Orders SELECT * FROM src.Orders WHERE ModifiedAt > @Last AND ModifiedAt <= @Now;
-- transform + load ...
UPDATE etl.Watermark SET LastLoaded = @Now WHERE TableName = 'Orders';   -- only after success