Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вопрос по работе с партициями / 5 сообщений из 5, страница 1 из 1
17.08.2015, 15:12
    #39030795
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по работе с партициями
Ситуация следующая:

Есть партиционированная таблица, каждый день к ней добавляется новая партиция.
Принцип следующий: архивная партиция (все данные старше недели) и 7 партиций за последние 7 дней.

Хочется, чтобы при добавлении партиции последняя неархивная была удалена, а данные из нее перенесены в архивную партицию.

Как я это сейчас делаю - вывожу таблицу из наследования, меняю check constraint (+1 день к дате), потом insert из выведенной таблицы в архивную партицию, drop table

Есть проблема - при таком режиме работы в процессе "вывожу таблицу из наследования, меняю check constraint (+1 день к дате), потом insert из выведенной таблицы в архивную партицию, drop table" данные из этой партиции недоступны до завершения копирования.

Как этого избежать?
...
Рейтинг: 0 / 0
17.08.2015, 17:12
    #39030975
Oleg Bartunov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по работе с партициями
Arm79,

Рекомендую почитать http://www.keithf4.com/tag/pg_partman/
...
Рейтинг: 0 / 0
18.08.2015, 00:33
    #39031188
Кактуз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по работе с партициями
Arm79,

не нужно копировать данные, просто измените наследование
Код: sql
1.
2.
3.
4.
begin;
ALTER TABLE data_20150101 NO INHERIT data;
ALTER TABLE data_20150101 INHERIT data_archive;
commit;
...
Рейтинг: 0 / 0
21.08.2015, 13:23
    #39033922
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по работе с партициями
КактузArm79,

не нужно копировать данные, просто измените наследование
Код: sql
1.
2.
3.
4.
begin;
ALTER TABLE data_20150101 NO INHERIT data;
ALTER TABLE data_20150101 INHERIT data_archive;
commit;


Хм.. интересное решение, но тут есть вопрос. Это получится, что в архиве будет за несколько лет несколько сот наследников? Это нормально?
...
Рейтинг: 0 / 0
21.08.2015, 14:22
    #39033992
Ivan Durak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по работе с партициями
Arm79КактузArm79,

не нужно копировать данные, просто измените наследование
Код: sql
1.
2.
3.
4.
begin;
ALTER TABLE data_20150101 NO INHERIT data;
ALTER TABLE data_20150101 INHERIT data_archive;
commit;


Хм.. интересное решение, но тут есть вопрос. Это получится, что в архиве будет за несколько лет несколько сот наследников? Это нормально?
не очень. Планировщик тупить будет
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вопрос по работе с партициями / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]