Что такое Time-Series Database
Time-series database (TSDB) — это база данных, оптимизированная для хранения и запросов данных, индексируемых по времени, таких как метрики, логи, показания датчиков, цены акций и IoT-телеметрия.
Ключевые характеристики
- Последовательные записи: Данные почти всегда добавляются в хронологическом порядке, что обеспечивает высокоэффективную запись данных
- Запросы по временному диапазону: Оптимизированы для получения данных за определённые интервалы (например, "использование CPU за последние 24 часа")
- Встроенное сжатие: Временные метки и значения следуют предсказуемым паттернам, что позволяет агрессивно сжимать данные и снижать затраты на хранение
- Downsampling и политики хранения: Автоматически агрегируют старые данные (например, минутные → часовые средние) и удаляют устаревшие записи
- Высокая пропускная способность записи: Рассчитаны на обработку миллионов точек данных в секунду без деградации производительности
Распространённые примеры
InfluxDB, TimescaleDB, Prometheus, OpenTSDB
Когда использовать TSDB вместо реляционной базы данных
Выбирай TSDB, когда:
- Твой основной паттерн доступа — последовательные записи и запросы по временному диапазону
- Ты собираешь высокочастотные измерения с устройств, серверов или финансовых потоков данных
- Тебе нужно автоматическое удаление данных или агрегирование с rollup по времени
- Производительность запросов должна оставаться стабильной при росте объёма данных
Реляционные базы данных умеют работать с time-series данными, но проигрывают по пропускной способности записи, эффективности хранения и производительности запросов по временному диапазону — всему тому, что специализированные TSDB дают из коробки.
Ключевой вывод
Используй time-series database, когда время — это основное измерение твоих данных, а нагрузка представляет собой непрерывный высокообъёмный поток записей в сочетании с аналитическими запросами по времени.