You're operating a daily data pipeline that processes a large batch and writes results into analytics tables used by downstream reporting and operational workflows. One day, the job fails after completing part of the run, and you need to recover it without creating duplicates, losing rows, or leaving consumers with partial data.
How do you handle a scenario where a daily batch job fails halfway through processing 100 million rows?