Thanks Mehul for driving it. The thing is the same as scan.read-changelog-as-append-only.enabled[1] in mysql cdc. I wonder whether we need $changelog and $binlog Virtual Tables or just a configuration?
Best, Hongshun [1] https://nightlies.apache.org/flink/flink-cdc-docs-master/docs/connectors/flink-sources/mysql-cdc/ On Tue, Dec 16, 2025 at 5:29 PM Yang Wang <[email protected]> wrote: > Very nice proposal! +1 from me (non-binding) > > > Regards, > Yang > > Mehul Batra <[email protected]> 于2025年12月8日周一 13:59写道: > > > Hi all, > > > > Change Data Capture (CDC) is essential for real-time data processing, > > widely used in scenarios like incremental ETL, data synchronization, and > > audit logging. However, Fluss currently lacks a standardized mechanism to > > expose changelog and binlog data through Flink SQL, forcing users to > > implement custom change tracking solutions. > > > > Without native support, users face several challenges: > > > > - No SQL interface to query operation types (INSERT, UPDATE, DELETE) > > - No efficient access to change data for incremental processing > > - No consistent audit trails across applications > > - No visibility into before/after states for UPDATE operations > > > > To address this, I'd like to propose FIP-20: Introduce $changelog and > > $binlog Virtual Tables [1]. > > > > [1] > > > > > https://cwiki.apache.org/confluence/display/FLUSS/FIP-20+Introduce+%24changelog+and+%24binlog+Virtual+Tables+in+Flink+Engine > > > > This proposal introduces: > > > > - *$changelog virtual table*: Flat schema with metadata columns ( > > _change_type, _log_offset, _commit_timestamp) exposing change > operations > > (+I, -U, +U, -D for PK tables; +A for Log tables) > > - *$binlog virtual table*: Nested schema with before/after ROW columns > > providing Debezium-style CDC format with event-level semantics (I, U, > D) > > - *Schema introspection*: Support for DESCRIBE and SHOW CREATE TABLE > on > > virtual tables > > - *Broad table support*: $changelog works for both Primary Key tables > > and Log tables; $binlog for Primary Key tables only > > > > This follows the existing $lake virtual table pattern, ensuring > consistency > > across Fluss's virtual table design. > > > > Any feedback and suggestions are welcome! > > > > Best regards, > > Mehul > > >
