случае добавит в таблицу кластера новый column? Через distributed таблицу получится?
вообще, дропаешь дистрибутед, альтеришь локальные таблицы на кластере, пересоздаёшь дистрибутед
А нельзя не дропать? Как то обновить. Так же получается простой.
теоретически может и можно, но дистрибутед же создаётся на основе локальных таблиц, и в случае ручного альтера дистрибутеда нужно будет следить, что всё совпадает (это мысли вслух). вот есть кусочек из доки: For tables that don’t store data themselves (such as Merge and Distributed), ALTER just changes the table structure, and does not change the structure of subordinate tables. For example, when running ALTER for a Distributed table, you will also need to run ALTER for the tables on all remote servers.
Спасибо. Ну впринципе можно сделать копию distributed таблицы новую и подменить ее через rename
у вас прямо жёстким потоком летят запросы, что пару секунд критично?
сначала альтеры на физические таблицы (alter ... on cluster ... add column ... ) потом альтер на дистрибьютед
Ну вот сейчас ещё не так критично, но в обозримом будущем будет чит критично. С учётом того что бывают сервисы которые отправили данные, таблица не доступна и они их не держат в очереди, а уже запишут следующую порцию данных
Да, так было бы не плохо. Вот просто нет понимания что distributed таблица адекватно воспринимает ручной alter table
дистрибьютед - это просто интерфейс, не привязанный а задекларироанный т.е. если в шардах есть колонка а в дистрибьютед нету - ничего страшного - инсерт поймет а вот наоборот - чуть опаснее - можно очередь отрастить и не заметить (но при этом тож ничего необратимого не должно случиться)
Спасибо, понял. Такой вариант тогда подходит, добавления в поочередно в обе таблицы
сразу поправка про в "обе" лучше привыкните к мысли что каждая "физическая таблица" - это отдельная сущность (несмотря на то что они легко создаются и альтерятся с инструкцией on cluster) т.к. в КХ каждый сам-себе мастер
alter table MergeTreetable add column ... alter table Distributedtable add column ...
create .... AS ... это вообще не то что вы подумали. AS создает список полей, его можно и вручную задать.
Обсуждают сегодня