есть партишн, в нем насобиралось 50кк записей, все помержилось в один большой партишн, но есть желание побить по 1кк записей
Предположительно, просто перелить в другую таблицу
надо под той же табличкой, варианты переналить выставив опцию с макс размером партишна не подходят, уже скомпакчено может быть
Нету операции unmerge
ожидаемо, ну чтож. А как насчет атомарной операции отключить один партишн и вместо него подсунуть другой? Или околоатомарной хотя бы
А что не переналить просто?
вот как раз чтоб не перегадить))) а вообще надо минимизировать время недоступности данных при решарде
insert into tmp table replace partition from tmp table
да да, но тут надо наоборот, для решарда данных. из локальной временной в дистриб избегая дублей
не совсем понял, у вас есть шардированная рандомно, надо перелить в шардированную по ключу?
да, добавили новый шард, надо отбалансить. Хочется минимизировать время когда данные недоступны изза цикла перекинуть под временную + переналить инсерт-селектом
ну должно же работать с replace create table tmp on cluster create table tmp_distributed on cluster for partition in partitions insert into tmp_distributed settings insert_distributed_sync=1 system sync replica tmp on cluster - если replicated alter table main on cluster replace partition from tmp end replace поидее на симлинках работает, данные будут доступны без даунтайма, текущие запросы должны читать из старых партов, новые запросы будут читать из новых
это если таблицу целиком
спасибо, хороший вариант, пока вижу что запись в дистриб нужно будет останавливать, а остальное удобнее чем напридумал
replace partition ?
да оно ближе всего, уже подсказали выше
Обсуждают сегодня