Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
Всем привет! У меня есть довольно большая таблица - пул транзакций, но я использую для своих вычислений только данные за последний месяц и год. Что я хочу сделать, так это разбить на партиции эту таблицу, чтоб была отдельная таблица для данных за текущий месяц, за текущий год и архив, но я не могу использовать при партицировании не константные объекты в 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 в нужные таблицы (партиции)? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 13:13 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
Как вариант можно создавать необходимые партиции каждый месяц ... а можно и насоздвать на весь следующий год :-) Партиции в постгресте по сравнению с Ораклом ... это как ручная коробка в сравнении с автомат-коробкой :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 13:52 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
KREDКак вариант можно создавать необходимые партиции каждый месяц ... а можно и насоздвать на весь следующий год :-) Вот я и думаю, что лучше сделать, создавать каждый раз заново на текущий месяц и год и переносить данные в архив, или создавать на каждый месяц свою партицию со своим правилом и на гаод тоже самое, но мне второй вариант не нравится абсолютно, да и не нужна мне партиция на каждый месяц, год.... [quot] Партиции в постгресте по сравнению с Ораклом ... это как ручная коробка в сравнении с автомат-коробкой :-)[/quot] Предпочитаю типтроник :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 15:31 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
авторУ меня есть довольно большая таблица - пул транзакций, но я использую для своих вычислений только данные за последний месяц и год. сделайде как в мане по постгресу написано жмак . во время выборки вам никто не мешает задать условие на текущий месяц или год если все правильно зделали то постгрес не будет обращаться к ненужным таблицам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 17:00 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
ss25авторУ меня есть довольно большая таблица - пул транзакций, но я использую для своих вычислений только данные за последний месяц и год. сделайде как в мане по постгресу написано жмак . во время выборки вам никто не мешает задать условие на текущий месяц или год если все правильно зделали то постгрес не будет обращаться к ненужным таблицам конечно же я читал это ине раз, в том то и дело, что мне не нравится такой способ организации. я думал, что может у кого-то есть более удачные идеи или решения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 17:08 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
почему не нравится то? сделайте в дополнение к тому, как написано в доке, create view measurement_last_month as select * from measurement where logdate > now() - '1 month'. зато не придется, как вы предлагаете "переносить expired rows в нужные таблицы (партиции)". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 17:14 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatпочему не нравится то? сделайте в дополнение к тому, как написано в доке, create view measurement_last_month as select * from measurement where logdate > now() - '1 month'. зато не придется, как вы предлагаете "переносить expired rows в нужные таблицы (партиции)". почему не нравится, не очень хочется плодить на каждый месяй по таблице, тем более, что они мне абсолютно не нужны. разве что создавать на год вперед а впрошествии года дропать их все и создавать на следующий. или вынести их еще и в отдельную схему.. хм.. как-то оно все мутно.. нет удобного решения, чтоб динамические партиции строить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 17:24 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
посмотрите об автоматическом создании партиций http://sql.ru/forum/actualthread.aspx?tid=405908 , может по форуму еще можно найти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 17:38 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
вот интересно, это нормально когда при использовании schema и partitioning - master table лежит в одном неймспейсе, в том же public, а все таблицы (партиции) что наследуются от master table лежат в другом, например derived неймспейсе (schema) ? этих дочерних таблиц у меня будет по 12 в год плодиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 10:52 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
кстати, http://postgrestips.blogspot.com/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 11:03 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
ИМХО, тут партиционирование не нужно. Создайте три таблицы: "ТекущийМесяц", "ТекущийГод", "Архив" Пишите данные в "ТекущийМесяц". Если не ожидается, что в таблицу могут заливаться устаревшие данные, т.е. не за текущий месяц или прошлый месяц(на границе перехода дат), то можно обойтись без проверок даты. Любым способом организуйте своевременный запуск процедур переноса устаревших данных (по условию) из таблицы "ТекущийМесяц" в "ТекущийГод" (запускается 1 раз в месяц) из таблицы "ТекущийГод" в "Архив" (запускается 1 раз в год) Если Автовакуум не справится, то после переноса запустить Вакуум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 19:00 |
|
||
|
вопрос по partitioning
|
|||
|---|---|---|---|
|
#18+
авторИМХО, тут партиционирование не нужно. если записей в таблице меньше 1М за месяц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 17:51 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=259&tid=2003922]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 280ms |

| 0 / 0 |
