【发布时间】:2021-09-25 02:05:54
【问题描述】:
我必须添加将 Nullable 数据存储到现有表的某些列中的功能,但是此表具有 ReplicatedMergeTree 引擎。所以我有一个问题,如果集群修改列上存在命令 alter table ...? 以及它的时间成本是多少? 谢谢!
【问题讨论】:
-
复制表会自动将此类更改传播到所有副本。如果您使用分片,则需要手动或使用 on_cluster 在每个分片上应用此类更改。如果您有此表,您还需要在分布式和缓冲区表上应用匹配的更改。
-
我建议重新创建列(创建另一列并重新提取数据,或者只是开始将新版本的数据写入新列)。 ClickHouse 中的突变并不“便宜”,并且不能保证您的数据不会以任何方式损坏。
-
我决定使用假设NotNull 函数来替换此列中的空值。它将使分区性能更好。谢谢大家!
标签: clickhouse