Что такое базы данных временных рядов (time series database)

8 Сентября 2014
базы данных рядов

Временные ряды – один из наиболее часто встречающихся в аналитической практике объектов. Временной ряд – это статистика серии наблюдений за одним и тем же явлением, параметром какого-либо процесса,  на протяжении некоторого времени. Каждому результату наблюдения (измерению) соответствует время, когда это наблюдение было сделано, или его порядковый номер – опять же, по шкале времени. Таким образом, при анализе временных рядов учитываются не только базовые статистические закономерности, но и взаимосвязь измерений со временем.

Что такое базы данных временных рядов и почему потребовалось создавать специализированные БД, если есть достаточное количество серьезных промышленных систем управления базами данных: Oracle, MS SQL Server, Sybase и много других? Чтобы ответить на этот вопрос, необходимо понять, что составляет предмет этих БД.

Такого рода данные требуются и накапливаются при самых разных задачах и для самых разных нужд. Можно привести несколько примеров:

  • статистика использования сайта (посещения сайта, аппаратных и сетевых ресурсов и т.д.);
  • финансовая, биржевая, актуарная статистика;
  • макроэкономическая статистика.
Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Иными словами, спрос на инструменты для хранения и обработки данных временных рядов достаточно высок (особенно со стороны финансового рынка).  Однако пользователи крупных СУБД столкнулись с проблемой: универсальные монстры оказались слабо приспособлены для решения именно таких задач, и проблема вырастала из идеологии (модели данных) наиболее распространенных в то время реляционных баз данных,  не позволяющей эффективно работать с упорядоченным множеством элементов временного ряда. Появились разработки специализированного программного обеспечения, оптимизированного под эти задачи.

Базы данных временных рядов (time series database) позволяют пользователям создавать, считать, обновлять и удалять различные временные ряды и организовывать их неким образом. Сервер часто поддерживает ряд основных вычислений, которые работают на ряды в целом, например, умножая, складывая или иным образом комбинируя различные временные ряды в новый временной ряд. Они могут также фильтровать по произвольным образцам, при этом значения одного ряда могу являться фильтром для другого. Простой синтаксис является залогом привлекательности специальных баз данных временных рядов.

Среди специальных TSBD преобладают продукты, основанные на свободной лицензии: Open TSDB, InfluxDB, Geras, Druid и пр. Некоторые из них «заточены» под  относительно узкий спектр задач. Так, YAWNDB и SiteWhere позиционируются как инструмент для специалистов в области веб-технологий.

Реализация функционала базы данных временных рядов возможна в обычной реляционной БД на основе SQL при условии, что программное обеспечение базы данных поддерживает одновременно большие двоичные объекты (BLOB) и пользовательские функции.  Но эффективность такой системы также будет невысока. Поэтому разработчики крупных баз данных пытаются развить реляционную модель данных до объектно-реляционной, обладающей частью свойств объектно-ориентированной БД, в частности, в поддержке концепции абстрактного типа данных. Например, IBM предлагает оптимизированный продуктом Informix Time Series.

Получить консультацию специалиста