Архитектура для анализа баз данных
У нас есть архитектура, где мы предоставляем каждому клиенту услуги, подобные бизнес-анализу, для своего веб-сайта (интернет-торговца). Теперь мне нужно проанализировать эти данные на внутреннем уровне (для алгоритмического улучшения, отслеживания производительности и т.д.), И это потенциально довольно тяжело: у нас есть до миллионов строк/клиент/день, и я могу узнать, сколько запросов мы имели в прошлом месяце, еженедельно по сравнению и т.д.... это порядок миллиардов, если не больше.
То, как это делается в настоящее время, является вполне стандартным: ежедневные скрипты, которые сканируют базы данных и генерируют большие 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] способ изучения конкретных ситуаций, чтобы убедиться, что ваш пример использования хорошо соответствует тем, что они могут сделать.