2012-04-10 1 views
3

Это скорее архитектурный вопрос, чем технологический.Data Warehouse and Django

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

Я использую Django и базу данных PostgreSQL.

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

Мы все еще находимся на очень ранней стадии, мы собираемся протестировать 50 пользователей, поэтому достаточно примитивного, такого как стол с одним столбцом для стартеров.

Я хотел бы знать, есть ли у кого-то опыт в этой ситуации, и это может порекомендовать мне фреймворк для создания хранилища данных, все время поддерживая операционную БД с помощью моделей Django для удобства использования (если это возможно).

Спасибо заранее!

+0

А как насчет репликации в хранилище данных? – Marcin

ответ

7

Вот некоторые интересные инструменты Open Source, которые я использовал в последнее время:

  • Kettle - отличный инструмент ETL, вы можете использовать это, чтобы извлечь данные из вашей рабочей базы данных на ваш склад. Поддерживает любую базу данных с драйвером JDBC и упрощает ее сборку, например. звездообразная схема.
  • Saiku - приятный интерфейс Web 2.0 построен на Pentaho Mondrian (реализация MDX). Это позволяет вашим пользователям легко создавать сложные запросы агрегирования (думаю, сводная таблица в Excel), а слой Mondrian обеспечивает кеширование и т. Д., Чтобы ускорить работу. Попробуйте the demo здесь.
+0

Спасибо, это очень хорошие кандидаты. Это, вероятно, по линии того, что мне нужно. –

+0

+1. Привет, Рамсиер, у меня есть несколько проектов OLAP с программным обеспечением SSAS + Tableau. Для некоммерческой оранизации я начну новый проект с Mondrian + Saiku. Я могу отправить свой адрес электронной почты вместе с вами, если вы хотите поделиться со мной своей экспертизой. Только знать, что нужно учитывать, прежде чем переключиться на эту среду. – danihp

0

Мой ответ не обязательно относится к хранилищу данных. В вашем случае я вижу возможность реализовать решение базы данных NoSQL наряду с реляционным хранилищем OLTP, которое в этом случае является PostgreSQL.

Зачем считать NoSQL? В дополнение к очевидным преимуществам масштабируемости, NoSQL предлагает ряд преимуществ, которые , вероятно, применимы к вашему сценарию. Например, гибкость записи записей с разными наборами полей и доступа на основе ключа.

Поскольку вы все еще находитесь на стадии «пробной» работы, вам может быть проще решить, какое решение для базы данных NoSQL можно будет использовать в зависимости от вашего хостинг-провайдера. Например, AWS имеют SimpleDB, Google App Engine предоставляют свои собственные DataStore и т. Д. Однако есть много других решений NoSQL, которые вы можете использовать для приятных привязок Python.

+1

Преимущества масштабируемости для меня не очевидны. Один социальный сайт рассматривал возможность делать то, что вы описали, и сравнивал продукты, которые они рассматривали. См. Представление их результатов здесь: http://www.pgcon.org/2010/schedule/attachments/141_PostgreSQL-and-NoSQL.pdf Страницы 33 и 34 содержат графики времени по продукту (более короткие бары означают лучшую производительность). – kgrittn

+0

Благодарим за предложение. Однако, учитывая, что мне нужно будет делать очень сложные запросы, которые включают в себя агрегации, предпочтительной будет система, поддерживающая OLAP вместо OLTP, правильно? –

+0

@ VascoPatricio Да, действительно. –

 Смежные вопросы

  • Нет связанных вопросов^_^