Background
#56191 Streaming jobs have been introduced, and continuous synchronization on S3 is now supported.
This proposal involves extending support for MySQL data sources.
Unlike S3, in MySQL, a single binlog entry may involve multiple tables, making it impossible to represent using TVF.
Grammar
Create mysql sync
CREATE JOB mysql_db_sync
ON STREAMING
FROM MYSQL (
"jdbc_url"="jdbc:mysql://127.0.0.1:3306",
"driver_url"="mysql-connector-j-8.0.31.jar",
"driver_class"="com.mysql.cj.jdbc.Driver",
"user"="root",
"password"="",
"database"="mysqldb",
"include_tables"="user_info,student", "offset"="initial"
)
TO DATABASE target_test_db (
)
Show job like common other streaming job
select*from job(type='insert') where ExecuteType ='streaming'
Design

Introducing the CdcClient role:
- Responsible for consuming full and incremental data from MySQL.
- Starts during job scheduling and terminates following the BE process.
Limitations
- CdcClient can only guarantee at-least-once semantics, but idempotency can be achieved using the primary key table.
Background
#56191 Streaming jobs have been introduced, and continuous synchronization on S3 is now supported.
This proposal involves extending support for MySQL data sources.
Unlike S3, in MySQL, a single binlog entry may involve multiple tables, making it impossible to represent using TVF.
Grammar
Create mysql sync
Show job like common other streaming job
Design
Introducing the CdcClient role:
Limitations