Архитектура для аналитики базы данных - PullRequest
14 голосов
/ 21 апреля 2010

У нас есть архитектура, в которой мы предоставляем каждому клиенту услуги, подобные бизнес-аналитике, для их веб-сайта (интернет-магазина). Теперь мне нужно проанализировать эти данные внутренне (для улучшения алгоритмов, отслеживания производительности и т. Д.), И они потенциально довольно тяжелые: у нас до миллионов строк / клиент / день, и я, возможно, захочу узнать, сколько запросов у нас было в прошлом месяце, по сравнению с неделями и т. д. ... это порядка миллиардов записей, если не больше.

То, как это делается в настоящее время, довольно стандартно: ежедневные скрипты, которые сканируют базы данных и генерируют большие файлы CSV. Мне не нравятся эти решения по нескольким причинам:

  • типично для таких сценариев, они попадают в категорию «однократная запись и никогда не трогаются»
  • необходимо отслеживать вещи в режиме реального времени (у нас есть отдельный набор инструментов для запроса банкоматов за последние несколько часов).
  • это медленно и не "ловко"

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

Ответы [ 3 ]

7 голосов
/ 21 апреля 2010

Вы хотите, чтобы Google Схема звезды . Основная идея состоит в том, чтобы смоделировать специальный экземпляр хранилища данных / OLAP существующей системы OLTP таким образом, чтобы он был оптимизирован с учетом описанного вами типа агрегатов. Этот экземпляр будет состоять из фактов и измерений.

В приведенном ниже примере «факты» продаж моделируются для предоставления аналитики на основе данных о клиенте, магазине, продукте, времени и других «измерениях».

alt text

Вы найдете образец Adventure Works от Microsoft поучительным, так как они предоставляют схемы OLTP и OLAP вместе с типичными данными.

4 голосов
/ 15 мая 2010

Существуют специальные базы данных для аналитики, такие как Greenplum, Aster data, Vertica, Netezza, Infobright и другие. Вы можете прочитать об этих БД на этом сайте: http://www.dbms2.com/

3 голосов
/ 23 апреля 2010

Каноническим справочником по хранилищам данных в стиле Star-Schema является «Инструментарий хранилища данных» Рапла Кимбалла (в той же серии есть и «хранилище данных Clickstream»), но это, по-моему, 2002 год, и несколько устаревший, я думаю что если есть новая версия книги о Кимбалле, она может вам лучше помочь. Если вы заглянете в Google для «хранилища данных веб-аналитики», то вы сможете скачать и изучить несколько примеров схем.

С другой стороны, большая часть no-sql, которая происходит в реальной жизни, основана на майнинге данных о потоках кликов, поэтому, возможно, стоит посмотреть, что сообщество Hadoop / Cassandra / [latest-cool-thing] имеет в способ изучения конкретных случаев, чтобы увидеть, хорошо ли ваш вариант использования соответствует тому, что они могут сделать.

...