doris修改列名

1.Doris 是否支持修改列名?

在 1.2.0 版本之后, 开启 "light_schema_change"="true" 选项时,可以支持修改列名。

在 1.2.0 版本之前或未开启 "light_schema_change"="true" 选项时,不支持修改列名, 原因如下:

Doris支持修改数据库名、表名、分区名、物化视图(Rollup)名称,以及列的类型、注释、默认值等等。但遗憾的是,目前不支持修改列名。

因为一些历史原因,目前列名称是直接写入到数据文件中的。Doris在查询时,也是通过列名查找到对应的列的。所以修改列名不仅是简单的元数据修改,还会涉及到数据的重写,是一个非常重的操作。

2.如何添加light_schema_change参数呢?

新建表的时候指定:"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"
);

建表成功后,即可对列名进行修改,语法:

alter table table_name RENAME COLUMN old_column_name new_column_name; 

你可能感兴趣的:(数据库)