Skip to content

How to Query Recent CDC Tables in Redshift

May 2026

In Redshift, recent CDC queries should target the merged table because S3 staging and load intermediates do not define the warehouse truth.

Short Answer

To query recent CDC tables in Redshift, read the target table after the staging-to-MERGE apply step and filter by a real timestamp column that captures business recency. The S3 staging files and staging table exist to support load mechanics, but the final-state target table is the correct object for normal analytics.

If you need recent deletes, query the companion tombstone table as a separate source of delete truth. The _skippr_order_token column is useful for replay ordering inside MERGE, but it should not replace a true time column when analysts ask for the last day or last week.

Why Teams Struggle with This

This matters because Redshift CDC has more visible plumbing than some other destinations. Teams can see the COPY path, the staging objects, and the merge step, and sometimes they start querying the wrong layer because it looks more immediate. That usually creates confusion instead of fresher insight.

  • The merged target table is the query surface for current surviving rows.
  • The staging path is part of data movement, not the final-state contract.
  • Recent-window filters still belong on source-derived timestamps or audit columns.
  • Delete recency belongs in the tombstone table, not in guesses about missing rows.

How Skippr Handles It

Skippr keeps the Redshift pattern understandable by drawing a hard line between staging and destination truth. The warehouse contract lives on the target table and the tombstone companion after MERGE has applied order-token guards.

A concrete example: a dashboard for recently renewed subscriptions should read the subscriptions target table filtered on renewed_at or updated_at. If finance also wants subscriptions deleted this week, it should read the tombstone companion keyed by the same business columns instead of interrogating the staging area.

  • Use the merged target table for current-state reads.
  • Use the tombstone table for recent delete visibility.
  • Use real time columns for recency windows.
  • Treat S3 and staging tables as operational structures, not as reporting surfaces.

What the First Useful Version Looks Like

The Redshift version of this question is mostly about discipline: do not confuse the load path with the read path.

Once that boundary is clear, recent CDC queries look like normal warehouse SQL again.