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

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

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

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

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

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

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

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

62
задан tshepang 7 August 2014 в 16:35
поделиться