Hello, 我理解下你场景:d1的 test 表 和 status 表两者之间有关联,比如外键,比如 test 更新一条数据后 status也需要级联地更新一条数据。 希望通过 Flink 的CDC功能同步这两张表到db2后,任意时刻,这两张表的状态是原子的(两张表对应 d1中两张表的一个快照版本), 是这种场景吗?
如果是这种场景,现在是还没有支持的。 Best, Leonard Xu > 在 2020年7月8日,11:59,Jark Wu <[email protected]> 写道: > > Hi, > > 我想先问一下你使用的是刚发布的 1.11.0 版本吗? 还是自己 build 的 release-1.11 分支呢? > > 另外,我理解下你的需求是 db1.test 同步到 db2.test, db1.status 同步到 db2.status? > 多表的*有序*同步是指? > 我理解你只需要像定义 db1.test -> db2.test 一样,定义好 db1.status binlog table 然后 insert > into 到 db2.status mysql table就行了。 > > 感谢反馈使用体验。 > > Best, > Jark > > > On Wed, 8 Jul 2020 at 10:30, jindy_liu <[email protected]> wrote: > >> 场景: canal解析binlog后,将db1实例内的多张表(表数据有关联)的变化发送到kafka的单topic,单分区中,从而保证有序; >> 若我想做数据同步至另一个mysql实例db2中,怎么用flink sql操作多张表,同时保证表与表之间有序呢? >> 例如mysql实例db1中有表test, statusCREATE TABLE `test` ( `id` int(11) NOT NULL, >> `name` varchar(255) NOT NULL, `time` datetime NOT NULL, `status` int(11) >> NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE >> TABLE `status` ( `status` int(11) NOT NULL, `name` varchar(255) NOT >> NULL, >> PRIMARY KEY (`status`)) ENGINE=InnoDB DEFAULT CHARSET=utf8比如,我用flink >> >> sql,可以设置对应的一张test表,然后sink到mysql镜像实例db2的镜像表test,和表status做同步,但status表要怎么操作呢?如何保证有序?我目前能实现单表,确实方便,求助,多表的怎么做有序同步?CREATE >> TABLE test (`id` INT,`name` VARCHAR(255),`time` TIMESTAMP(3),`status` >> INT,PRIMARY KEY(id) NOT ENFORCED ) WITH ( 'connector'='kafka', >> 'topic'='test', 'properties.group.id'='c_mysql_binlog_postgres', >> 'properties.bootstrap.servers'='localhost:9092', >> 'scan.startup.mode'='earliest-offset', 'format'='canal-json', >> 'canal-json.ignore-parse-errors'='true');CREATE TABLE status (`status` >> INT,`name` VARCHAR(255),PRIMARY KEY(name) NOT ENFORCED ) WITH ( >> 'connector'='kafka', 'topic'='test', >> 'properties.group.id'='c_mysql_binlog_postgres', >> 'properties.bootstrap.servers'='localhost:9092', >> 'scan.startup.mode'='earliest-offset', 'format'='canal-json', >> 'canal-json.ignore-parse-errors'='true'); >> >> >> >> -- >> Sent from: http://apache-flink.147419.n8.nabble.com/
