Почему популярность баз данных временных рядов стремительно растет

Tags: базы данных, database

Всего несколько лет назад базы данных временных рядов носили несколько нишевый характер. Конечно, если вы работали с торговым приложением в фирме, предоставляющей финансовые услуги, вы были преданы своей собственной базе данных kdb +, но для большинства остальных реляционная база данных или база данных NoSQL общего назначения были в порядке вещей. Больше не требовалось. Причина? Мир все чаще требует, чтобы предприятия могли запрашивать, анализировать и составлять отчеты о потоковой передаче данных в режиме реального времени, а не в пакетном режиме.

По данным DB-Engines, за последние два года популярность баз данных временных рядов, таких как TimescaleDB и InfluxDB, возросла, и в конце 2018 года AWS также вышла на рынок со своей базой данных Amazon Timestream. При этом остается открытым вопрос: все базы данных начинают выглядеть как базы данных временных рядов, и если таким образом «ниша» становится основной, а базы данных, такие как TimescaleDB, InfluxDB и Amazon Timestream, становятся MySQLs и PostgreSQLs будущего.

Сверх-рост

За последние два года ни один тип баз данных не рос быстрее, чем базы данных временных рядов:

 

Хотя приведенная выше диаграмма отслеживает относительный рост популярности (например, реляционные базы данных, такие как MySQL, и базы документов, такие как MongoDB, уже хорошо известны), это все же свидетельствует о том, что в отрасли происходит нечто важное. Базы данных временных рядов помогают нам осознать изменения в мире с течением времени. Более вдумчиво, как сказал генеральный директор Timescale Аджай Кулкарни:

“Наборы данных временных рядов отслеживают изменения в системе в целом как INSERT, а не UPDATE.

Такая практика записи каждого изменения в системе как новой, другой строки - это то, что делает данные временных рядов такими мощными. Это позволяет нам измерять изменения: анализировать, как что-то изменилось в прошлом, отслеживать, как что-то меняется в настоящем, прогнозировать, как оно может измениться в будущем.

[Итак] вот какое определение мне нравится давать данным временных рядов: данные, которые в совокупности представляют, как система/процесс/ поведение изменяется со временем.”

Это подозрительно похоже на то, что должны делать все базы данных, но в этих олдскульных базах данных нет возможности эффективно хранить и предоставлять доступ к большим объемам данных. Реляционные базы данных и базы данных NoSQL могут использоваться для данных временных рядов, но, возможно, разработчики получат более высокую производительность от специально созданных баз данных временных рядов, вместо того, чтобы пытаться применять универсальную базу данных, подходящую для всех, к конкретным рабочим нагрузкам. Как однажды объяснял Шон Бис из AWS, разработчики нуждаются в правильных инструментах для правильной работы, даже если это означает использование нескольких инструментов для выполнения многогранной работы.

Но что, если бы вы могли иметь комфорт известной базы данных и производительность специально созданной базы данных временных рядов?

Расширение PostgreSQL

Это то, что команда Timescale делает с TimescaleDB, объяснили основатели компании Ajay Kulkarni и Michael Freedman в одном из интервью. Подобно тому, как MongoDB начинался как PaaS, но в конечном итоге остановился на части базы данных своего PaaS, Timescale начал как попытку предоставить платформу IoT. Компания пыталась использовать InfluxDB, MongoDB и другие существующие системы баз данных, но в конечном итоге решила создать свою собственную.

По образу и подобию.

То есть TimescaleDB является расширением или наложением популярной базы данных PostgreSQL. Почему это важно? Во-первых, они объяснили, что это дает им прочную основу для строительства. Более того, это также дает компаниям комфорт экосистемы инструментов PostgreSQL, как сказал Фридман Тимоти Прикетт Морган из The Next Platform:

“Мы не копаемся с тем, как данные хранятся на диске, и поэтому мы наследуем всю надежность PostgreSQL. Мы также применяем тот же интерфейс PostgreSQL, поэтому все инструменты для этой базы данных работают с TimescaleDB. Компромисс состоит в том, что мы выяснили, как масштабировать PostgreSQL для данных временных рядов, и мы вставляем в 20 раз быстрее, чем PostgreSQL. И мы в 10 раз быстрее Cassandra, и в отличие от Cassandra, мы также поддерживаем полный SQL”.

Здесь все достоинства PostgreSQL, но с повышенной производительностью для данных временных рядов (например, быстрый прием). Разработчик получает возможность использовать свой опыт SQL и самостоятельно запрашивать SQL. Но поскольку команда Timescale построила поверх PostgreSQL в качестве оверлея (или расширения, если хотите), ее путь разработки работает независимо от основной базы данных PostgreSQL. Это лучшее из обоих миров для клиентов и для компании.

Это интересный подход к все более интересному типу базы данных. По мере того, как мир продолжает двигаться в направлении реального времени, популярность баз данных временных рядов будет расти. Реальный вопрос заключается в том, существуют ли естественные границы их полезности. По словам Кулкарни, ответом является решительное «Нет»: «Все данные являются данными временного ряда».

No Comments

Add a Comment