Задать вопрос
@Vigilo
Infernal Server Error

Какой оптимальный способ смены типа столбца с Int32 на Float32 в Clickhouse?

Доброго дня!

Есть заполненная таблица КХ (200 миллионов строк, разбивка на 78 партиций) и необходимость сменить тип у 12 столбцов с Int32 на Float32. Собственно, вижу два варианта: ALTER'ить эти столбцы прямо в текущей таблице, или же создать копию с уже исправленной структурой и перелить данные из старой таблицы в новую.

По ощущениям на идентичной структуре с 10к строками ALTER проходит куда быстрее, чем перелив, но есть ли у кого опыт, какой из путей окажется более безопасный и быстрый на объеме в 200кк?
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    ClickHouse для инженеров и архитекторов БД
    4 месяца
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
  • GB (GeekBrains)
    Искусственный интеллект. Специалист
    12 месяцев
    Далее
Решения вопроса 1
@Vigilo Автор вопроса
Infernal Server Error
Окей, удалось провести полномасштабные тесты:
  • перелив в нужную структуру - 330 сек
  • alter'инг столбцов - 243 сек


оба варианта дают корректный результат и не сильно отличаются по времени выполнения, так что всё упирается в желание сохранить исходную таблицу или нет
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы