Любая масштабируемая база данных OLAP (масштаб веб-приложения)?

У меня есть приложение, которое требует аналитики для разного уровня агрегации и что рабочая нагрузка OLAP. Я хочу также часто обновлять свою базу данных.

Например, вот как выглядит мое обновление (схема выглядит так: время, dest, source ip, browser → посещения)

(15:00-1-2-2010, www.stackoverflow.com, 128.19.1.1, safari) -->  105

(15:00-1-2-2010, www.stackoverflow.com, 128.19.2.1, firefox) --> 110

...

(15:00-1-5-2010, www.cnn.com, 128.19.5.1, firefox) --> 110

И затем я хочу спросить, что представляет собой общий визит на www.stackoverflow.com из браузера Firefox в прошлом месяце.

Я понимаю, что система Vertica может сделать это относительно дешево (производительность и масштабируемость мудрая, но, скорее, не по затратам). У меня здесь два вопроса.

1) Есть ли продукт с открытым исходным кодом, который я могу использовать для решения этой проблемы? В частности, насколько хорошо работает система Мондриана? (масштабируемость и производительность) 2) Существует ли базовое решение HBase или Hypertable (очевидно, что это голая HBase/Hypertable не может это сделать)? - но если есть проект, основанный на HBase/Hypertable, масштабируемость, вероятно, не будет проблемой IMO)?

Спасибо!

Ответ 1

Вы можете загрузить бесплатную версию (единственное издание node) базы данных greenplum. Я сам не пробовал, но думаю/думаю, что это мощный зверь. Читайте здесь: http://www.dbms2.com/2009/10/19/greenplum-free-single-node-edition/

Другим вариантом является MongoDB, это быстро и бесплатно, и вы можете писать функции MapReduce с JavaScript для обработки аналитики.

Моя репутация здесь низкая, чтобы добавить гиперссылку на mongodb, так что вам нужно google. Я могу добавить только одну гипер ссылку на сообщение.

Ответ 2

проект zohmg направлен на решение этой проблемы с использованием Hadoop и HBase.

Ответ 3

Facebook также построил улей на вершине Hadoop. Довольно просто, чтобы идти - разумный API запросов тоже.

http://mirror.facebook.net/facebook/hive/

Ответ 4

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

Ваш вопрос не ясен в одном аспекте: когда вы говорите о масштабируемом, что вы подразумеваете под этим? Собираете ли вы данные с большого количества сайтов, но имеете ограниченное количество пользователей запросов или у вас также много пользователей? Такая ситуация приводит к значительно иной модели.