ALTER TABLE my_table_name ADD COLUMN new_column_name varchar(50) default 'default_value' AFTER after_column_name;
2.删除列
ALTER TABLE my_table_name DROP COLUMN column_name;
3.手动增加一个分区(不改变建表时的副本数和分桶数)
如果开启了动态分区,需要先关闭动态分区,添加完新的分区后再打开动态分区。
下面脚本手动增加一个分区,凡是小于某个时间的数据都放入该分区内。可以根据需要调整VALUES后面的数据区间
ALTER TABLE my_table_name SET ("dynamic_partition.enable" = "false");
ALTER TABLE my_table_name ADD PARTITION new_partition_name VALUES LESS THAN ("2015-01-01");
ALTER TABLE my_table_name SET ("dynamic_partition.enable" = "true");
4.开启动态分区,并初始化历史分区数量,且不自动删除分区
PROPERTIES(
--开启动态分区,按月分区
"dynamic_partition.enable" = "true",
"dynamic_partition.time_unit" = "MONTH",
--创建未来分区数量
"dynamic_partition.end" = "3",
--创建历史分区数量
"dynamic_partition.create_history_partition" = "true",
--设置初始创建历史分区数量
"dynamic_partition.history_partition_num"="120"
--设置不删除历史分区
"dynamic_partition.start" = "-2147483648",
--分区名前缀
"dynamic_partition.prefix" = "pp",
--分区分桶数量
"dynamic_partition.buckets" = "6",
--允许数据覆盖
"enable_unique_key_merge_on_write" = "true"
);
5.compaction score过高可能是分桶数太多导致数据合并效率下降,甚至BE节点内存满载,无法写入和读取数据。要解决此问题一方面需要重新考虑分桶数量,一方面可以通过更改配置缓解,在be.conf加入下面参数,之后需要重启be:
cumulative_compaction_max_deltas_factor = 1
max_cumu_compaction_threads = 4
临时的动态调整可以通过api curl -X POST http://{be_ip}:{be_http_port}/api/update_config?{key}={value}来处理。
6.更改建表时的属性
ALTER TABLE my_table_name SET
(
"dynamic_partition.start"= "-2147483648",
"dynamic_partition.create_history_partition" = "false" -- 如果上面单独执行报错,加上此行
);
7.更改表名或者字段名
-- 将表 example_table 中名为 c1 的 column 修改为 c2
ALTER TABLE example_table RENAME COLUMN c1 c2;
-- 将名为 table1 的表修改为 table2
ALTER TABLE table1 RENAME table2;
8.重命名数据库
ALTER DATABASE db_name RENAME new_db_name;