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

Что характерно для данных временных рядов?

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

Поток измерений, дописываемых во времени: метрики, датчики, котировки. Изменения редки, запросы почти всегда по интервалу времени с агрегацией.

  • Запись огромными потоками, по возрастанию времени
  • Старые данные агрегируют и удаляют
  • Специальные базы: Prometheus, VictoriaMetrics, InfluxDB, TimescaleDB, ClickHouse

А ещё Сжатие разностями даёт ~1–2 байта на точку

Подробно

Эти свойства позволяют специализированным хранилищам делать то, что универсальной базе недоступно: разбивать данные на отрезки по времени, эффективно сжимать близкие значения и автоматически удалять или укрупнять старые записи. Отсюда типичный подход к хранению: свежие данные держат в полном разрешении, старые агрегируют, совсем старые удаляют по политике. Для небольших объёмов обычной реляционной базы с партиционированием по времени вполне достаточно.

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

  • Характер данных и запросов.
  • Почему для них отдельные хранилища.

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

  • Хранить метрики в обычной таблице без партиционирования и срока хранения.
  • Считать, что специализированное хранилище нужно при любом объёме.

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

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

Показать варианты и ответ
  • ✓Записи с меткой времени добавляются в конец, редко меняются, читаются интервалами
  • ✗Записи постоянно обновляются и удаляются по произвольным условиям, порядок не важен
  • ✗Данные не имеют естественного порядка
  • ✗Каждая запись связана со всеми остальными

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

  • Почему такие данные хорошо сжимаются?
  • Зачем нужно прореживание старых данных?

Разбор темы

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

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

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

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

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