Я разворачиваю и сопровождаю системы хранения временных рядов на TimescaleDB — расширении PostgreSQL, благодаря которому можно держать миллиарды точек данных и работать с ними обычным SQL. Ко мне приходят команды, у которых поток телеметрии, серверных метрик или котировок уже не помещается в классические таблицы: вставки буксуют, отчёты собираются минутами. Я перекладываю такую нагрузку на гипертаблицы так, чтобы база снова писала данные ровно и отдавала выборки за миллисекунды даже на исторической глубине.
Работаю по всей цепочке. Подбираю схему — интервал чанков, ключи разбиения, стратегию индексов под профиль ваших запросов. Подключаю непрерывные агрегаты, чтобы сводки по минутам, часам и суткам считались фоново и только на новых данных. Включаю колоночное сжатие, которое сокращает объём истории в разы, но оставляет её доступной для аналитики, и настраиваю автоматическое удаление либо перенос устаревших чанков. Планы запросов и параметры записи выверяю на реальных нагрузочных тестах. На выходе — описанная схема, скрипты переноса с обычного PostgreSQL, замеры скорости и памятки по эксплуатации. Чаще всего берусь за такое:
— перевод существующей базы на гипертаблицы без простоя;
— непрерывные агрегаты и витрины реального времени;
— сжатие, ретеншн и многоуровневое хранение данных;
— ускорение тяжёлых запросов с наглядными бенчмарками.
Работаю по всей цепочке. Подбираю схему — интервал чанков, ключи разбиения, стратегию индексов под профиль ваших запросов. Подключаю непрерывные агрегаты, чтобы сводки по минутам, часам и суткам считались фоново и только на новых данных. Включаю колоночное сжатие, которое сокращает объём истории в разы, но оставляет её доступной для аналитики, и настраиваю автоматическое удаление либо перенос устаревших чанков. Планы запросов и параметры записи выверяю на реальных нагрузочных тестах. На выходе — описанная схема, скрипты переноса с обычного PostgreSQL, замеры скорости и памятки по эксплуатации. Чаще всего берусь за такое:
— перевод существующей базы на гипертаблицы без простоя;
— непрерывные агрегаты и витрины реального времени;
— сжатие, ретеншн и многоуровневое хранение данных;
— ускорение тяжёлых запросов с наглядными бенчмарками.