DML 及 DDL 支持情况概览
说明:
1. 读:“是” 表示读端可感知对应 DDL 操作,传递变更给下游。
2. 写:“是” 表示写端可跟随响应对应 DDL 变更。
类型 | 名称 | DML | DDL | |||||||||
| | 插入 | 删除 | 更新 | 新增列 | 删除列 | 更新列名 | 修改列类型 | 新增表 | 修改表名 | 删除表 | 清空表 |
读 | MySQL | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
写 | DLC | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 是 | 否 | 否 | 否 |
| Iceberg | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 是 | 否 | 否 | 否 |
| Doris | 是 | 是 | 是 | 是 | 否 | 否 | 否 | 是 | 否 | 否 | 否 |
| Kafka | 是 | 否 | 否 | NA | NA | NA | NA | NA | NA | NA | NA |
DDL 解析语法要求
注意:
仅符合 DDL 类型及语法要求的 SQL 可被源端解析并响应,不支持的 SQL 语句可能会导致任务异常重启等情况。请评估业务表结构变更常用语法是否符合要求,并为任务配置符合业务要求的 DDL 变更响应及写入异常处理策略。
MySQL:
1. 重命名表(rename table)支持下列语法:
RENAME TABLE tbl_name TO new_tbl_name
2. 新建表(create table)支持下列语法:
CREATE TABLE [IF NOT EXISTS] tbl_name (create_definition,...) CREATE TABLE new_tbl LIKE orig_tbl; CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
警告:
不支持 CHECK \\ TemporaryTable 等约束。
说明:
创建表时支持建表语句中设置字符集,例如 utf8 等。
3. 修改列(modify \\ change column) 与 重命名列(rename column)支持下列语法:
ALTER TABLE t1 MODIFY b INT NOT NULL; ALTER TABLE t1 CHANGE b a INT NOT NULL;ALTER TABLE t1 CHANGE COLUMN b a INT NOT NULL;
4. 增加列(add column) / 重命名列 支持下列语法:
ALTER TABLE table_name ADD new_column_name column_definition [ FIRST | AFTER column_name ];
5. 删除列(drop column)支持下列语法:
Alter table t2 DROP [COLUMN] col_name
6. 清空表(truncate table)支持下列语法:
truncate table a;
7. 删除表(drop table)支持下列语法:
drop table a;