在 1.2.0 新版本中,对数据表的加减列操作,不再需要同步更改数据文件,仅需在 FE 中更新元数据即可,从而实现毫秒级的 Schema Change 操作,且存在导入任务时效率的提升更为显著。与此同时,使得 Apache Doris 在面对上游数据表维度变化时,可以更加快速稳定实现表结构同步,保证系统的高效且平稳运转。如用户可以通过 Flink CDC,可实现上游数据库到 Doris 的 DML 和 DDL 同步,进一步提升了实时数仓数据处理和分析链路的时效性与便捷性。
注意:
作为新的 Feature 默认关闭,用户可以通过在建表时添加下面的 Property 来开启
在新建表的时候指定:
"light_schema_change" = "true"
对历史表不起作用
建表语句示例:
CREATE TABLE `test1` ( `reg_day` date NULL COMMENT '激活日期', `game_main`int(11) NULL COMMENT '主游戏ID', `game_sub` int(11) NULL COMMENT '子游戏ID', `uuid` varchar(100) NULL COMMENT '设备唯一标识', `op_tag_1` tinyint(4) NULL, `create_time` datetime NULL) ENGINE=OLAPUNIQUE KEY(`reg_day`, `game_main`,`game_sub`, `uuid`)COMMENT 'OLAP'DISTRIBUTED BY HASH(`uuid`) BUCKETS 16PROPERTIES ("replication_allocation" = "tag.location.default: 1","in_memory" ="false","storage_format" = "V2","light_schema_change" ="true","disable_auto_compaction" = "false");
修改列名的操作:
alter table test1 rename column op_tag op_tag_1;
快速修改表结构
作为新的 Feature 默认关闭,用户可以通过在新建表时添加下面的 Property 来开启:
"light_schema_change" = "true"
继续使用上面的建表语句,我们将 op_tag_1 字段类型改成 int
ALTER TABLE test1 MODIFY COLUMN op_tag_1 int ;
查看表结构
增加字段
在最后新增一个字段
ALTER TABLE test1 ADD COLUMN new_col varchar(100) ;
查看表结构
删除字段
删除刚才新增的字段
ALTER TABLE test1 drop COLUMN new_col;
查看表结构