У нас есть архитектура, где мы предоставляем каждому клиенту подобные бизнес-аналитике услуги для их веб-сайта (интернет-продавец). Теперь, я должен проанализировать те данные внутренне (для алгоритмического улучшения, отслеживания производительности, и т.д....), и это потенциально довольно тяжело: у нас есть до миллионов строк / клиент / день, и я могу хотеть знать, сколько запросов мы имели в прошлом месяце, еженедельно сравненный, и т.д...., который является порядком миллиардов записей если не больше.
Путем это в настоящее время делается, довольно стандартное: ежедневные сценарии, которые сканируют базы данных и генерируют большие файлы CSV. Мне не нравится это решения по нескольким причинам:
Хотя у меня есть некоторый опыт имея дело с огромными наборами данных для научного использования, я - полный новичок насколько традиционные RDBM идут. Кажется, что использование, ориентированное на столбец на базу данных для аналитики, могло быть решением (аналитике не нужно большинство данных, которые мы имеем в базе данных приложения), но я хотел бы знать то, что другие опции доступны для этого вида проблем.
Вы захотите погуглить Звездную схему . Основная идея состоит в том, чтобы смоделировать специальное хранилище данных / экземпляр OLAP вашей существующей системы OLTP таким образом, чтобы он был оптимизирован для обеспечения описываемого вами типа агрегатов. Этот пример будет состоять из фактов и измерений.
В приведенном ниже примере «факты» продаж смоделированы для обеспечения аналитики на основе данных о клиенте, магазине, продукте, времени и других «измерениях».
Вы найдете образцы баз данных Microsoft Adventure Works поучительными, поскольку они предоставляют схемы OLTP и OLAP вместе с репрезентативными данными.
Каноническим справочником по хранилищам данных в стиле звездообразной схемы является «Набор инструментов хранилища данных» Рапла Кимбалла (в той же серии есть «Хранилища данных Clickstream» , но это, я думаю, датируется 2002 годом и несколько устарело, я думаю, что если есть новая версия книги Кимбалла, она может вам пригодиться. Если вы гуглите "хранилище данных веб-аналитики", есть несколько примеров схемы, доступные для скачать и изучить.
С другой стороны, большая часть того, что происходит в реальной жизни без использования sql, основывается на данных о потоках кликов, поэтому, возможно, стоит посмотреть, что такое Hadoop / Cassandra / [последняя крутая вещь] сообщество может провести тематические исследования, чтобы убедиться, что ваш вариант использования соответствует их возможностям.
Существуют специальные базы данных для аналитики, такие как Greenplum, Aster data, Vertica, Netezza, Infobright и другие. Вы можете прочитать об этих базах данных на этом сайте: http://www.dbms2.com/