Skip to content

[SPARK-56923][SDP] Implement SCD1 Batch Processor; Merge Microbatch onto Auxiliary#55995

Open
AnishMahto wants to merge 21 commits into
apache:masterfrom
AnishMahto:SPARK-56923-SCD1-merge-microbatch-onto-auxiliary
Open

[SPARK-56923][SDP] Implement SCD1 Batch Processor; Merge Microbatch onto Auxiliary#55995
AnishMahto wants to merge 21 commits into
apache:masterfrom
AnishMahto:SPARK-56923-SCD1-merge-microbatch-onto-auxiliary

Conversation

@AnishMahto
Copy link
Copy Markdown
Contributor

@AnishMahto AnishMahto commented May 19, 2026

Approved AutoCDC SPIP: https://lists.apache.org/thread/j6sj9wo9odgdpgzlxtvhoy7szs0jplf7


This is a stacked PR. Review incremental diff here: AnishMahto/spark@SPARK-56249-merge-tombstones-onto-microbatch...SPARK-56923-SCD1-merge-microbatch-onto-auxiliary


Preamble:

The SCD type 1 flow is a foreachBatch streaming query on an input change-data-feed, and is responsible for reconciling the incoming change data onto some target table that follows SCD1 replication semantics.

SCD1 flows also maintain an "auxiliary" table to keep track of early-arriving out-of-order received events state. Each microbatch will need to reconcile against this auxiliary table as well, and update the auxiliary table's state appropriately for future microbatches.

Merge Microbatch onto Auxiliary:

The auxiliary table should be updated such that;

  1. Stale tombstones (delete events now succeeded by upserts/deletes in the incoming microbatch) should be removed from the auxiliary table. They will never be meaningful for SCD1 again.
  2. New tombstones introduced in the incoming microbatch should be persisted in the auxiliary table, for future microbatches to reconcile agianst.

Implement this update operation as a MERGE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant