【详述】replication_num和default_replication_num使用疑问
【背景】文档上说 “如果建表时指定了 replication_num
属性,则该属性优先生效;如果建表时未指定 replication_num
,则配置的 default_replication_num
生效”,实际看起来是指定了后者会报错unknown properties。这两者在使用上有啥区别么,前者是不是只适用于建表,而后者只适用于修改表的场景?
【业务影响】影响建表和修改表
default_replication_num 是fe.conf,生效范围是全局,通过添加到fe.conf生效。replication_num是表的属性生效范围是表,写在建表语句中。不需要特别设置,建议使用默认的3即可。
噢噢了解了~ 另一个涉及表属性的疑问:default.replication_num。这个属性建表的时候好像不能配置,这个属性是只适用于修改表吗,单分区表和多分区表应该都支持吧?replication_num这个的话修改表是只适用于修改单分区表,是这个逻辑么
-- 动态分区表修改动态分区默认副本数
ALTER TABLE example_db.my_table set("default.replication_num"="3");
-- 批量修改表所有分区副本数 dynamic_partition.enable
ALTER TABLE example_db.my_table MODIFY PARTITION (*) SET("replication_num"="3");
-- 修改单分区表的实际副本数量(只限单分区表)
ALTER TABLE example_db.my_table SET ("replication_num" = "3");
建表的副本属性是replication_num,动态分区创建的tablet的副本属性是dynamic_partition.replication_num这个参数控制。