Подтвердить что ты не робот

Есть ли мощная система баз данных для данных временных рядов?

В нескольких проектах мы должны хранить, агрегировать, оценивать простые значения измерений. Одна строка типично состоит из метки времени, значения и некоторых атрибутов значения. В некоторых приложениях мы хотели бы сохранить 1000 значений в секунду и более. Эти значения должны быть не только вставлены, но и удалены с той же скоростью, поскольку срок службы значения ограничен годом или около того (на разных этапах агрегации мы не храним 1000/с в течение всего года).

До сих пор мы разработали различные решения. Один основан на Firebird, один на Oracle и один на некотором самодельном механизме хранения. Но ни один из них не является очень удовлетворительным решением.

Оба решения RDBMS не могут обрабатывать требуемый поток данных. Кроме того, приложения, которые доставляют значения (например, драйверы устройств), не могут быть легко привязаны к базам данных, инструкции вставки громоздки. И, наконец, при наличии SQL-интерфейса для данных настоятельно необходимо, типичные оценки трудно сформулировать в SQL и замедлить выполнение. Например. найдите максимальное значение с отметкой времени за 15 минут для всех измерений за последний месяц.

Самодельное решение может обрабатывать скорость ввода и имеет клиентский API для этого, но не имеет ничего общего с языком запросов и не может использоваться другими приложениями через некоторый стандартный интерфейс, например. для отчетности.

Лучшим решением в моих мечтах будет система базы данных, которая:

  • имеет API для очень быстрой вставки
  • способен удалять/усекать значения с той же скоростью
  • предоставляет стандартный SQL-интерфейс с конкретной поддержкой типичных данных временных рядов

Знаете ли вы некоторую базу данных, которая приближается к этим требованиям, или вы подойдете к проблеме по-другому?

4b9b3361

Ответ 1

В большинстве других ответов упоминаются базы данных на базе SQL. Базы данных на основе NoSQL намного превосходят такие вещи.

Некоторые базы данных временных рядов с открытым исходным кодом:

Облако на основе:

Ответ 2

infuxdb:: База данных распределенных временных рядов с открытым исходным кодом без внешних зависимостей.

Ответ 3

Рассмотрим IBM Informix Динамический сервер с TimeSeries DataBlade.

Это, однако, экстремальная скорость передачи данных, с которой вы работаете. (Не совсем до субатомной физики в ЦЕРНе, но возглавляемой в этом общем направлении.)


Справедливое раскрытие: я работаю для IBM в СУБД Informix, хотя и не на DataSlay TimeSeries как таковой.

Ответ 5

Вы можете попробовать HDF5 для данных временных рядов. Это очень быстро для таких приложений.

Ответ 6

Как сказал Джонатан Леффлер, вы должны попробовать функцию Informix Timeseries. Он включен во все выпуски Informix без дополнительной оплаты. Вы можете взглянуть на поддерживаемые функции TimeSeries:

IBM Informix Временные ряды SQL-процедуры

Вы можете получить доступ к данным через функции sql или виртуальные интерфейсы просмотра, вы даже можете вставить их в представление.

Ответ 7

просто время, образец в mysql базовая таблица: table_name архив таблицы по месяцам: table_name_2011_01,... table_name_2011_11