What CDC Can and Cannot Capture
CDC Captures Physical Tables Only
Change Data Capture works by reading the database transaction log (binlog, WAL, oplog, redo log, etc.), which records committed changes to physical tables. CDC can capture:- Base tables (regular tables with physical storage)
- Insert, update, and delete operations on those tables
- Schema changes (DDL) on those tables
Why Views Cannot Be Captured
Views are not capturable because they are virtual—they’re query-time computations over base tables with no physical storage. When you query a view, the database engine executes the underlying SELECT statement against the base tables. Since views don’t store data, they don’t generate transaction log entries. Common non-capturable entities across all databases:- Views: Virtual tables defined by queries, no physical storage or transaction log entries
- Common Table Expressions (CTEs): Query-time constructs, exist only during query execution
- Temporary tables: Session or transaction-scoped, not durably logged
- System/metadata tables: Represent database internals, not user data (e.g.,
information_schema,pg_catalog,sys.*)
The Solution: Capture Base Tables
Solution:Configure CDC on the underlying base tables that power your views. The view logic can be recreated in your destination or transformation layer.