Skip to content

How to Query Recent CDC Tables in Snowflake

May 2026

In Snowflake, recent CDC queries are usually straightforward because MERGE makes the target table the right place to read current state.

Short Answer

To query recent CDC tables in Snowflake, read the final-state target table for current rows and filter on a business timestamp or audit timestamp that actually represents recency. Snowflake MERGE applies CDC changes directly to the table analysts will read, so that target table is the right default surface for recent-state queries.

If you need recent deletes, read the companion tombstone table alongside the main table. The _skippr_order_token column protects ordering during apply, but it is not a substitute for a user-facing updated_at or event_time field.

Why Teams Struggle with This

Teams sometimes overcomplicate this because they know CDC involved retries and ordering. Those details matter for correctness, but normal warehouse readers should rarely need to think about them. Their job is to query the reconciled table and use the right domain timestamp.

  • Current-state analytics should start from the target table after MERGE.
  • Recent deletes should come from the tombstone companion.
  • Recency filters need a real timestamp with business meaning.
  • The order token is an apply-time ordering primitive, not a reporting dimension.

How Skippr Handles It

Skippr makes this pattern clean because Snowflake CDC already produces the two tables readers need most: the current-state target and the tombstone companion. That keeps recent queries readable and avoids turning them into replay-debugging exercises.

A concrete example: to see recently updated invoices, query the invoices target table where updated_at >= DATEADD(day, -1, CURRENT_TIMESTAMP()). If operations also wants invoices deleted during that period, read the tombstone companion for those keys instead of trying to infer deletion from absence.

  • Snowflake target tables are the default source for recent current-state reads.
  • Tombstone tables provide explicit recent delete visibility.
  • Order tokens remain internal correctness signals for MERGE ordering.
  • The query path stays simple because final-state reconciliation already happened in the warehouse.

What the First Useful Version Looks Like

Snowflake recent CDC querying works best when the answer stays boring: target table for surviving rows, tombstone table for deletes, timestamp column for recency.

That is a good sign that the ingestion contract is doing its job.