问题:doris建好表后对表结构进行修改,使用alter语句修改,但多个alter执行就会报Table[xxxx]'s state is not NORMAL. Do not allow doing ALTER ops。这是因为一个表同时只能进行一个schema chanage任务。
解决:需要开启轻量级schema change。1.2.0版本后有light_schema_change"="true"选项,1.26版本修改可以直接使用 ALTER TABLE example_db.my_table SET ("light_schema_change"="true"); 但之前的版本只能重建表,在建表的时候设置此选项。
建表示例
CREATE TABLE `fc_0818_57` (`tong_id` bigint(20) NOT NULL COMMENT '主键',`tong_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',`op` varchar(30) NOT NULL COMMENT '操作类型',`map_varchar_test` varchar(255) NULL COMMENT '企业主键',`map_char_test` varchar(255) NULL COMMENT '目录编码'
) ENGINE=OLAP
UNIQUE KEY(`tong_id`)
COMMENT 'ws测试数据'
DISTRIBUTED BY HASH(`tong_id`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 3",
"in_memory" = "false",
"storage_format" = "V2",
"light_schema_change" = "true",
"disable_auto_compaction" = "false"
);