Incremental Extraction Watermark

An incremental extraction watermark is a stored position used to choose the next portion of source data. It may be a reliably maintained update timestamp or a sequence. After a successful load, the pipeline records the position it has covered. This is different from an event-time watermark used to decide progress in streaming windows.

Choose a fixed upper bound for a run, extract the agreed interval, and advance the checkpoint after destination commit. Advancing it first can lose data after a failed write. If the destination commits but checkpoint saving fails, the next attempt may repeat rows; use a retry-safe destination operation.

A timestamp can be shared by several rows. A timestamp-and-key cursor can order a stable extraction, but cannot discover a later commit carrying an older timestamp. Overlapping reads help only when paired with deduplication or version-aware upserts and a justified bound on lateness. Otherwise use a source mechanism with stronger change tracking or periodic reconciliation.

Reading current rows after a timestamp normally cannot see hard-deleted rows. Use deletion markers, a change feed, or comparison of complete snapshots when deletions matter. Record the initial-load boundary and recovery policy too; a watermark alone is not a history of every intermediate change.

Reference: Microsoft: incremental copy. See Designing End-to-End Data Architecture for the worked example.


Discover more from Insightful Data Lab

Subscribe to get the latest posts sent to your email.

Similar Posts

Questions, corrections, or additional insights?

This site uses Akismet to reduce spam. Learn how your comment data is processed.