Архитектура для анализа баз данных

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

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

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

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

Ответы

Ответ 1

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

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

alt text

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

Ответ 2

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

Ответ 3

Каноническим справочником по хранилищам данных Star-Schema является Raplh Kimball "Инструментарий хранилищ данных" (там же "Datastream Data Warehousing" в той же серии, но это с 2002 года, я думаю, и несколько устарел, я думаю что если новая версия книги Кимбалла может помочь вам лучше. Если вы используете Google для "хранилища данных в веб-аналитике", для загрузки и изучения имеется куча схемы примеров.

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