Poorva21
Contributor II

Row tracking gives each Delta row a stable internal ID, so Delta can track inserts/updates/deletes across table versions—even when files are rewritten or compacted.

Suppose we have a Delta table:

id value
1A
2B

When row tracking is enabled, Delta Lake stores an internal row ID (not visible to users):

id value _row_id (internal)
1A001
2B002

Think of row_id as a stable fingerprint for that row.

Row tracking ensures:

Correct incremental pipelines- Even after compacting files, you still get accurate row-level changes.

Accurate CDF outputs- Pre-image and post-image rows are correctly paired.

Safe MERGE, UPDATE, DELETE- Delta knows exactly which rows were modified.

Better performance- Delta avoids expensive file-level scans because it knows exactly which rows changed.