Re:

From: Sergey Konoplev <gray(dot)ru(at)gmail(dot)com>
To: Aln Kapa <alnkapa(at)gmail(dot)com>
Cc: pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org>
Subject: Re:
Date: 2015-03-11 04:19:59
Message-ID: CAL_0b1uZY2FStYDwzuw4LgYj8B=f2v30KjhoUaopN=MLM3aDew@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

2015-03-10 7:02 GMT-07:00 Aln Kapa <alnkapa(at)gmail(dot)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(dot)ru(at)gmail(dot)com

In response to

  • at 2015-03-10 14:02:53 from Aln Kapa

Responses

  • Re: at 2015-03-16 15:21:45 from Sergey Konoplev

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2015-03-11 04:56:45 Re:
Previous Message Konstantin Gerasimenko 2015-03-10 22:21:05 Re: