Привет.
Хочется сделать что-то типа архивации - есть свойства строк, которые очень нужны для горячих данных, свежих, и практически не нужны для архива, при этом места занимают очень много. Условно, дебаг-информация о событиях. Таблицы - реплицируемые. Место на диске хочется сэкономить, поэтому колонки для старых данных хочется удалять.
Вопрос - будет ли корректно работать следующая схема:
* detach partition.
* переносим партицию в другую таблицу Table2 на том же сервере, аналогичную по структуре.
* alter table Table2 attach partition 201601
* alter table Table2 drop column 'debug'
* alter table Table2 add column 'debug' String default ''
* alter table Table2 detach partition debug
* переносим партицию обратно в Table1/detached
* alter table Table1 attach partition 201601
?
Я правильно понимаю, что на репликах придется вручную проводить все, кроме первого и последнего пункта, причем в нужном интервале?
При attach partition - не возникнет дублирования инфы на репликах?
Если к этой таблице будут привязаны materialized view - при attach part никаких действий с ними не произойдет ведь?
Ну и напоследок - есть ли более простые способы получения желаемого? Регулярность таких процедур - раз в 1-2 месяца. Вариант сделать сразу две таблицы, и просто дропать старые куски в "горячей" - не очень хочется из соображений роста объема данных (за горячий период) и объема инсертов ровно в 2 раза.