powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вопрос по partitioning
13 сообщений из 13, страница 1 из 1
вопрос по partitioning
    #35617767
Sergey Levchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

У меня есть довольно большая таблица - пул транзакций, но я использую для своих вычислений только данные за последний месяц и год.
Что я хочу сделать, так это разбить на партиции эту таблицу, чтоб была отдельная таблица для данных за текущий месяц, за текущий год и архив, но я не могу использовать при партицировании не константные объекты в CHECK, т.е. я не могу написть что-то вида extract('month' from CURRENT_DATE), extract('year' from CURRENT_DATE) для CHECK.

transaction_pool - master table

transaction_currentmonth - за текущий месяц
transaction_currentyear - за текущий год, но без transaction_currentmonth
transaction_archive - все кроме transaction_currentmonth, transaction_currentyear

Как бы мне такое дело организовать? Пускать хранимую процедуру в конце каждого месяца, года по cron-у и переносить expired rows в нужные таблицы (партиции)?

Спасибо.
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35617884
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант можно создавать необходимые партиции каждый месяц ... а можно и насоздвать на весь следующий год :-)

Партиции в постгресте по сравнению с Ораклом ... это как ручная коробка в сравнении с автомат-коробкой :-)
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35618210
Sergey Levchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KREDКак вариант можно создавать необходимые партиции каждый месяц ... а можно и насоздвать на весь следующий год :-)


Вот я и думаю, что лучше сделать, создавать каждый раз заново на текущий месяц и год и переносить данные в архив, или создавать на каждый месяц свою партицию со своим правилом и на гаод тоже самое, но мне второй вариант не нравится абсолютно, да и не нужна мне партиция на каждый месяц, год....

[quot]
Партиции в постгресте по сравнению с Ораклом ... это как ручная коробка в сравнении с автомат-коробкой :-)[/quot]

Предпочитаю типтроник :)
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35618474
Фотография ss25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ меня есть довольно большая таблица - пул транзакций, но я использую для своих вычислений только данные за последний месяц и год.

сделайде как в мане по постгресу написано жмак .
во время выборки вам никто не мешает задать условие на текущий месяц или год если все правильно зделали то постгрес не будет обращаться к ненужным таблицам
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35618500
Sergey Levchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ss25авторУ меня есть довольно большая таблица - пул транзакций, но я использую для своих вычислений только данные за последний месяц и год.

сделайде как в мане по постгресу написано жмак .
во время выборки вам никто не мешает задать условие на текущий месяц или год если все правильно зделали то постгрес не будет обращаться к ненужным таблицам

конечно же я читал это ине раз, в том то и дело, что мне не нравится такой способ организации. я думал, что может у кого-то есть более удачные идеи или решения...
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35618517
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему не нравится то? сделайте в дополнение к тому, как написано в доке, create view measurement_last_month as select * from measurement where logdate > now() - '1 month'. зато не придется, как вы предлагаете "переносить expired rows в нужные таблицы (партиции)".
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35618549
Sergey Levchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBatпочему не нравится то? сделайте в дополнение к тому, как написано в доке, create view measurement_last_month as select * from measurement where logdate > now() - '1 month'. зато не придется, как вы предлагаете "переносить expired rows в нужные таблицы (партиции)".

почему не нравится, не очень хочется плодить на каждый месяй по таблице, тем более, что они мне абсолютно не нужны. разве что создавать на год вперед а впрошествии года дропать их все и создавать на следующий. или вынести их еще и в отдельную схему.. хм.. как-то оно все мутно.. нет удобного решения, чтоб динамические партиции строить...
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35618591
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрите об автоматическом создании партиций http://sql.ru/forum/actualthread.aspx?tid=405908 , может по форуму еще можно найти
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35619737
Sergey Levchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот интересно, это нормально когда при использовании schema и partitioning - master table лежит в одном неймспейсе, в том же public, а все таблицы (партиции) что наследуются от master table лежат в другом, например derived неймспейсе (schema) ? этих дочерних таблиц у меня будет по 12 в год плодиться.
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35619770
Sergey Levchenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати, http://postgrestips.blogspot.com/
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35621412
MySQLCraft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, тут партиционирование не нужно.

Создайте три таблицы: "ТекущийМесяц", "ТекущийГод", "Архив"

Пишите данные в "ТекущийМесяц".
Если не ожидается, что в таблицу могут заливаться устаревшие данные, т.е. не за текущий месяц или прошлый месяц(на границе перехода дат), то можно обойтись без проверок даты.

Любым способом организуйте своевременный запуск
процедур переноса устаревших данных (по условию)

из таблицы "ТекущийМесяц" в "ТекущийГод" (запускается 1 раз в месяц)
из таблицы "ТекущийГод" в "Архив" (запускается 1 раз в год)

Если Автовакуум не справится, то после переноса запустить Вакуум.
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35623787
Фотография ss25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИМХО, тут партиционирование не нужно.
если записей в таблице меньше 1М за месяц
...
Рейтинг: 0 / 0
вопрос по partitioning
    #35623994
MySQLCraft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1M пустяки, для 1 раза в месяц.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вопрос по partitioning
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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