tis icon indicating copy to clipboard operation
tis copied to clipboard

mysql同步starrocks,希望支持ddl变更

Open sh-hanson opened this issue 11 months ago • 7 comments

场景描述: 将生产mysql实时同步至starrocks,先同步全量表结构及数据,再同步增量

希望有的功能: 1、全量同步后,能记录最后的binlog信息,这样方便后续配置增量同步 2、增量同步中希望能增加从指定binlog位点进行同步 3、如当前已配置整库同步任务,如果mysql中新建了一张表,希望能自动或手动修改配置,实现新表同步至starrocks 4、支持mysql中的ddl变更同步,如添加字段、删除字段、修改数据类型等ddl操作 5、支持建表类型转换,如starrocks不支持time类型,可以配置类型映射,比如自动建表时把time类型替换为varchar类型

sh-hanson avatar Dec 13 '24 09:12 sh-hanson

对于支持ddl变更,如不能实时同步的话,也可以按这样的场景操作。如上游mysql表增加字段,对应同步任务报错中断,然后手工在starrocks中增加字段后,再重新开启实时同步。不知道这样是否可行

sh-hanson avatar Dec 13 '24 10:12 sh-hanson

对于支持ddl变更,如不能实时同步的话,也可以按这样的场景操作。如上游mysql表增加字段,对应同步任务报错中断,然后手工在starrocks中增加字段后,再重新开启实时同步。不知道这样是否可行

你的意思,不希望通过现在的删除增量通道的过程,而是手动添加完字段之后,可以立即启动运行。 是这样吧?

baisui1981 avatar Dec 14 '24 07:12 baisui1981

场景描述: 将生产mysql实时同步至starrocks,先同步全量表结构及数据,再同步增量

希望有的功能:

  1. 全量同步后,能记录最后的binlog信息,这样方便后续配置增量同步 ==》 这个届时会尝试一下把binlog的偏移量显示在TIS的UI上
  2. 增量同步中希望能增加从指定binlog位点进行同步 ==》 这个之前看flink-cdc的文档应该是支持直接设置gtid的偏移量,从指定的偏移位点开始消费
  3. 如当前已配置整库同步任务,如果mysql中新建了一张表,希望能自动或手动修改配置,实现新表同步至starrocks
  4. 支持mysql中的ddl变更同步,如添加字段、删除字段、修改数据类型等ddl操作 ===》 3,4两点暂时还不能支持
  5. 支持建表类型转换,如starrocks不支持time类型,可以配置类型映射,比如自动建表时把time类型替换为varchar类型 ==》 您说的 starrocks不支持time类型 ,那可否映射成datetime,date部分直接设置成1970年?您说的办法自动建表时把time类型替换为varchar类型 倒是也行,只是需要在flink-sql上设置一下convert语句

baisui1981 avatar Dec 14 '24 07:12 baisui1981

对于支持ddl变更,如不能实时同步的话,也可以按这样的场景操作。如上游mysql表增加字段,对应同步任务报错中断,然后手工在starrocks中增加字段后,再重新开启实时同步。不知道这样是否可行

你的意思,不希望通过现在的删除增量通道的过程,而是手动添加完字段之后,可以立即启动运行。 是这样吧?

我的意思是,如果tis平台暂时不支持ddl变更,短期内可以用另一种方式实现:即上游mysql有ddl变更时,tis侦测到ddl变更后,实时同步任务立即报错中断,然后手工介入,在下游starrocks中执行ddl变更后,再重新开启tis平台的实时同步

sh-hanson avatar Dec 16 '24 01:12 sh-hanson

,tis侦测到ddl变更后,实时同步任务立即报错中断,然后手工介入,在下游starrocks中执行ddl变更后,再重新开启tis平台的实时同步

方案不错能够进一步细化报错规则?例如,上游表加字段,TIS侦测到ddl变更就立即报错并且终止任务执行,这是否有必要?

baisui1981 avatar Dec 16 '24 02:12 baisui1981

如果上游mysql表结构发生变更,说明业务逻辑已发生变化,这时我觉得有必要立即中断同步。比如上游mysql加了个字段,然后starrocks中没有同步到这个字段数据,恰巧下游基于starrocks的数据分析或者报表需要用到这字段,那这可能带来错误的分析或错误的报表。当然,tis平台如果能兼容flink cdc 3.0以上版本,那就可以不中断实时同步了。

中断同步任务,报错规则,常见的兼容mysql以下几类操作就可以 1、建表,删表:create table xxx,drop table xxx 2、增加字段:alter table xxx add column 3、删除字段:alter table xxx drop column 4、修改字段:alter table xxx change/modify column 5、增加索引:alter table xxx add index ,create index 6、删除索引:alter table xxx drop index

sh-hanson avatar Dec 16 '24 03:12 sh-hanson

中断同步任务,报错规则,常见的兼容mysql以下几类操作就可以 1、建表,删表:create table xxx,drop table xxx 2、增加字段:alter table xxx add column 3、删除字段:alter table xxx drop column 4、修改字段:alter table xxx change/modify column 5、增加索引:alter table xxx add index ,create index 6、删除索引:alter table xxx drop index

ok

baisui1981 avatar Dec 16 '24 20:12 baisui1981