在实时同步场景下,数据写入不同目的端时,对源端DDL和DML操作的支持情况不同,您可以根据本文了解写入目标数据源时,对源端DDL及DML操作的支持情况。
背景信息
- 进行同步任务配置时,您可以根据需要同步的来源与去向数据源,及DataWorks各模块对数据源的支持情况,选择对应的功能模块进行同步任务的配置。详情请参见:支持的数据源与读写能力。
- 您还可以根据源端待同步的库个数、表个数与需要写入目标端的表个数,选择对应的数据集成模块进行同步任务的配置。详情请参见:支持同步的库或表个数。
注意事项
当源端新增列,并在目标端正常执行后,会有以下限制:
- 当新增DEFAULT VALUE列后,目标表该新列不会有值,会一直为NULL,后续当源端新增列中新增数据时,实时同步任务会将新增数据同步至该列。
- 当新增VIRTUAL列后,目标表该新列不会有值,会一直为NULL,后续当源端新增列中新增数据时,实时同步任务会将新增数据同步至该列。
MySQL和PolarDB MySQL源端实时同步,建议您在源端新增列时采用末尾追加列方式,不要采用在中间字段加列方式。如果源端无法避免中间字段加列,需要注意以下约束条件:
- 全增量解决方案中,在全量同步阶段不要进行中间字段加列,否则会导致实时同步阶段数据异常。
- 实时同步阶段,同步位点重置时间需要设置在中间字段加列DDL事件之后,否则会导致后续实时同步数据异常。
DML及DDL支持情况
实时同步场景下,目的端DML和DDL的支持情况如下表所示。
数据源 | DML | DDL-表命令 | DDL-列命令 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
插入 | 更新 | 删除 | 新建表 | 删除表 | 重命名表 | 清空表 | 新增列 | 删除列 | 重命名列 | 修改列类型 | |
AnalyticDB for MySQL 3.0 | 支持 | 支持 | 支持 | - | - | - | 支持 | 支持 | - | - | - |
DataHub | 支持 | - | - | - | - | - | - | - | - | - | - |
DRDS(polardb) | 支持 | 支持 | 支持 | - | - | - | - | - | - | - | - |
Elasticsearch | 支持 | 支持 | 支持 | - | - | - | - | 支持 | - | - | - |
Hologres | 支持 | 支持 | 支持 | - | - | - | 支持 | 支持 | - | - | - |
Kafka | 支持 | - | - | - | - | - | - | - | - | - | - |
MaxCompute | 支持 | - | - | - | - | - | 支持 | 支持 | - | - | - |
MySQL | 支持 | 支持 | 支持 | - | - | - | - | - | - | - | - |
OSS | 支持 | - | - | - | - | - | - | - | - | - | - |
Oracle | 支持 | 支持 | 支持 | - | - | - | - | - | - | - | - |