Выбор базы данных для аналитического веб-приложения - PullRequest
7 голосов
/ 16 декабря 2010

Я хочу создать веб-приложение, подобное Google-Analytics, в котором я собираю статистику о конечных пользователях своих клиентов и показываю анализ своих клиентов на основе этих данных.

Характеристики:

  • Высокая масштабируемость, обработка очень большого объема
  • Разделяемый - Запросы всегда выполняются для данных одного клиента
  • Поддержка аналитических запросов (детализация, слайсы и т.1010 *

В связи с необходимостью анализа я планирую использовать пакет OLAP / BI, но я не уверен, что он предназначен для такого масштаба.База данных NoSQL?Простая РСУБД подойдет?

Ответы [ 3 ]

4 голосов
/ 16 декабря 2010

Это то, что я использую на работе в производственной среде, и это работает как шарм.

Я справился с тремя вещами

PostgreSQL + LucidDB + Mondrian (в целом, все компоненты пакета Pentaho BI)

  • PostgreSQL : Я не буду описывать postgresql, действительно мощная СУБД с открытым исходным кодом позволит вам делать - конечно же - все, что вам нужно. Я использую его для хранения своих операционных данных.

  • LucidDB : LucidDB - это база данных хранилища столбцов с открытым исходным кодом. Высокая масштабируемость и обеспечивает действительно выигрыш времени обработки по сравнению с PostgreSQL для извлечения большого количества данных. Он не оптимизирован для обработки транзакций, но для интенсивного чтения. Это моя база данных Datawarehouse

  • Mondrian : Mondrian - это куб R-OLAP с открытым исходным кодом. LucidDB облегчает соединение этих двух программ.

Я бы порекомендовал вам взглянуть на весь Pentaho BI Suite, оно того стоит, возможно, вы захотите использовать некоторые из этих компонентов.

Надеюсь, я смогу помочь,

1 голос
/ 13 июня 2012

Существует две основные архитектуры, которые вы можете выбрать для истинного масштаба:

1.Архитектура «BI»

2.Архитектура «NoSQL»

  • (Необязательно) Журнал событий или постоянное хранилище событий каналы
  • База данных NoSQL (например, Cassandra ,Riak, HBase) фиды
  • Пользовательский интерфейс аналитики (например, с использованием D3.js )

Неизменяемое хранилище событий или журналпотому что в большинстве случаев вы хотите выполнять пакетные аналитические события и выполнять массовые обновления базы данных (даже с чем-то вроде HDFS), а не делать атомарную запись для каждого просмотра одной страницы и т. д.

Для SnowPlow , наша аналитическая платформа с открытым исходным кодом, построенная на Hadoop и Hive, все журналы событий сначала собираются на S3, а затем пакетно загружаются в Hive.

Обратите внимание, что "архитектура NoSQL" будет включатьизрядно больше работы по развитию.Помните, что с любой архитектурой вы всегда можете осколковать клиента, если объемы вырастают по-настоящему эпичными (миллиарды строк на клиента) - потому что нет необходимости (я предполагаю) для аналитики между клиентами.

1 голос
/ 17 декабря 2010

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

  • Что вы подразумеваете под большим объемом?
  • Где информация о ваших клиентах?
  • Какой интерфейс и отчетность вы собираетесь использовать?

Приветствие.

Отказ от ответственности: я сделаю некоторую рекламу своего собственного решения - загляните на www.icCube.com и свяжитесь со мной для получения более подробной информации

...