Вопрос с собеседования · Базы данных

Зачем во временных рядах нужен downsampling?

MiddleБазы временных рядов
Ещё спрашивают так:
  • Как хранить метрики годами?
Коротко

Downsampling заранее агрегирует старые данные в грубое разрешение: секунды → минуты → часы. Свежие данные детальны, исторические — компактны.

  • Хранить посекундные точки годами дорого и бесполезно для запросов за год
  • Агрегаты: среднее, минимум, максимум, сумма, перцентили (из гистограмм)
  • Retention удаляет данные старше срока на каждом уровне

А ещё Запрос за год читает тысячи часовых точек вместо миллионов секундных

Подробно

Хранить посекундные точки годами бессмысленно. Downsampling (continuous queries) считает агрегаты пониженного разрешения: секунды → минуты → часы, а retention policy удаляет устаревшее. Так свежие данные детальны, исторические компактны.

Что хотят услышать

  • Зачем: объём и скорость запросов за длинный период.
  • Уровни разрешения и retention.
  • Какие агрегаты сохранять.

Частые ошибки

  • Хранить максимальное разрешение вечно.
  • Путать downsampling с обычным сжатием на диске.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Чтобы включить полнотекстовый поиск по метрикам
  • ✓Свежие данные хранить детально, а старые — агрегированными
  • ✗Чтобы ускорить запись новых точек за счёт прореживания входящего потока
  • ✗Чтобы обеспечить ACID-транзакции

Что спросят дальше

  • Что такое retention policy?
  • Чем TimescaleDB отличается от чистого PostgreSQL?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования