在實時同步場景下,數據寫入不同目的端時,對源端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 | 支持 | 支持 | 支持 | - | - | - | - | - | - | - | - |