Re:

Поиск
Список
Период
Сортировка
От Sergey Konoplev
Тема Re:
Дата
Msg-id CAL_0b1uZY2FStYDwzuw4LgYj8B=f2v30KjhoUaopN=MLM3aDew@mail.gmail.com
обсуждение исходный текст
Ответ на  (Aln Kapa <alnkapa@gmail.com>)
Список pgsql-ru-general
2015-03-10 7:02 GMT-07:00 Aln Kapa <alnkapa@gmail.com>:
> Есть 5000 устройств присылающих информация примерное 1 раз в секунду.
> Хранить информацию в доступном резерве надо около 3-х лет.
> Надо обеспечить быструю запись и приемлемый селект.

Софт-приёмник сохраняет поток в tab-separated текстовые файлы по
максимум N записей. Загрузчик периодически делает COPY FROM
завершенным файлам в таблицу postgres базы.

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

Партиции можно организовать как матрицу (hash(device_id), time_range).
Например, (device_id % 100, now()::date). Старые партиции, которые
страрше 3х лет, COPY TO PROGRAM gzip в архив и DROP TABLE.

Для партиционирования можно использовать вот этот тул
https://github.com/keithf4/pg_partman. Старые таблицы архивировать
можно вот этим https://github.com/grayhemp/pgcookbook/blob/master/bin/archive_tables.sh.
Архив чистить find /mnt/archive -mtime +2000 -type f -delete.

В дальнейшем, с ростом объёмов и потребностей, можно подумать о
https://github.com/citusdata/pg_shard.

-- 
Kind regards,
Sergey Konoplev
PostgreSQL Consultant and DBA

http://www.linkedin.com/in/grayhemp
+1 (415) 867-9984, +7 (499) 346-7196, +7 (988) 888-1979
gray.ru@gmail.com

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: Konstantin Gerasimenko
Дата:
Сообщение: Re:
Следующее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Re: