Лучшее решение для хранения небольших математических данных, но быстрое и с агрегатными функциями - PullRequest
7 голосов
/ 26 мая 2011

Я ищу решение для хранения данных для проекта со следующими требованиями:

  1. Приложение динамически создает контейнер / таблицу в хранилище.
  2. На небольшой периодвремени (например, две недели), что таблица / контейнер получает огромное количество вставок параллельно.Последнее чтение должно быть немедленно доступно.
  3. Введенные данные очень маленькие, от 4 до 6 числовых столбцов.
  4. Требуется небольшая поддержка запросов / фильтрации, но нет объединений или перекрестных запросов.
  5. Необходим для выполнения некоторых агрегатных функций, таких как «Count», «Sum», «Max», «Min» и «Avg».

По сути, мне нужно что-то вроде Windows Azure TableХранение, но с агрегатными функциями.

Что бы вы порекомендовали?

Ответы [ 6 ]

4 голосов
/ 27 мая 2011

RavenDB поддерживает все, что вы упомянули и многое другое. Он очень хорошо масштабируется и поддерживает агрегатные функции с помощью запросов Map / Reduce и Linq. Он также может работать в памяти.

3 голосов
/ 02 июня 2011

MongoDB также является хорошим выбором. Он поддерживает групповые (агрегатные) запросы при установке с одним узлом. Если вам нужно масштабировать, вы можете создать зарезервированный кластер и использовать карту / уменьшить для нужд агрегации, но карта Монго / снижение производительности не является верхним уровнем при сопоставлении с другими решениями.

Если вам нужна большая производительность на карте / уменьшить, вы можете взглянуть на Hadoop

1 голос
/ 06 июня 2011

Почему вы не используете SQL Azure ?Он поддерживает функцию агрегирования и отвечает всем вашим потребностям, посмотрите на эту таблицу

0 голосов
/ 06 июня 2011

Действительно нужна дополнительная информация о требованиях и бюджете ... но, поскольку люди просто подбрасывают некоторые ответы, я добавлю это в смесь:

Существует несколько очень крутых и очень дорогих аппаратных решений, созданных для выполнения массово параллельных запросов SQL, таких как Netezza Skimmer или TwinFin

http://www.netezza.com/data-warehouse-appliance-products/skimmer.aspx

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

0 голосов
/ 06 июня 2011

В соответствии с требованиями, перечисленными в теле вопроса, любой компетентный SQL-сервер на рынке мог бы справиться с этим, хотя вам нужно будет настроить некоторые индексы, чтобы все было очень быстро.

Но это все равно, что сказать, что если вы хотите, чтобы ваша машина ехала быстро, вы должны поставить ее в положение D и нажать педаль газа, вот и все.

0 голосов
/ 03 июня 2011

Если это не обязательно должно быть бесплатно, KDB + будет хорошим выбором. Эта система в основном используется в финансах для анализа временных рядов. Он поддерживает все, что вы просите, и невероятно быстро. Доступна бесплатная пробная версия, но использовать ее в производстве это ... дорого. Он полностью запрашивается с использованием SQL-подобного синтаксиса и полностью программируется с помощью проприетарного языка q, который входит в семейство apl.

http://www.kx.com/

...