объему набор из 4 партов ReplicatedReplacingMergeTree.
В сумме 150 млрд записей.
1) Сколько займет по времени изменение строки на массив во всех записях?
alter table db.SomeTable on cluster ch_cluster modify column Some Array(String)
2) А до изменения типа столбца нужно еще сделать 4 млрд. реплейсов:
alter table db.SomeTable on cluster ch_cluster update Some = concat('[''', Some,''']') where length(Some) > 0
alter table db.SomeTable on cluster ch_cluster update Some = '[]' where length(Some) = 0
У меня есть мысль, что все это очень плохо и в боевое окружение я это не пропущу и предлагаю просто завести новый столбец SomeList нужного типа.
Сможет кто-нибудь меня разубедить в обратном, сказать что КХ не торомозит и дать мне гарантии того, что мол, смело реплейсь и изменяй тип колонки?
Повторю свой вопрос
Добавьте новую колонку в которой default будет преобразование старой в массив, потом делаете materialize column и переименовываете. Будет намного быстрее чем update
Обсуждают сегодня