Партицирование
Партицирование в postgres реализовывается модулем pg_pathman, который предоставляет оптимизированный механизм секционирования, а также функции для создания и управления секциями.
Устанавливаем пакет pg_pathman96.
Активация модуля:
Модифицируйте параметр shared_preload_libraries в postgresql.conf:
shared_preload_libraries = 'pg_pathman'
Обязательно перезапустите экземпляр Postgres.
Затем выполните в psql следующий запрос:
#CREATE EXTENSION pg_pathman;
Готово! Теперь пора перейти к настройке схемы секционирования.
Как создать партиции:
Рассмотрю на примере таблицы history из zabbix
#select create_range_partitions('history','clock',1528765200,86400);
Где 1528765200 - это таймштамп, с которого начинать партицирование, берется из селекта таблицы минимальное значение поля clock (сортировка asc)
И так по каждой партицируемой таблице. В итоге получим партиции и примерно такой конфиг:
#select * from pathman_config;
|
Чтобы удалить партиции и слить их в одну таблицу. Например:
#select drop_partitions('trends_uint'::regclass, false);
Как изменить range диапазон партицирования
#select set_interval('trends_uint',604800);