#mongodb #analytics #data-mining
#mongodb #аналитика #интеллектуальный анализ данных
Вопрос:
У меня есть реляционная база данных с примерно 300 миллионами клиентов и их атрибутами с нескольких точек зрения (360). Для выполнения некоторой аналитики я намереваюсь сделать извлечение в MongoDB, чтобы иметь «плоское» представление, которое больше подходит для применения методов интеллектуального анализа данных. Имело бы это смысл? Почему?
Спасибо!
Ответ №1:
Нет.
Проблема здесь не в хранилище, а в вашей стратегии выравнивания.
То, как и где вы храните сведенные данные, является второстепенной задачей, обратите внимание, что MongoDB — это база данных документов, и в любом случае она не является плоской по своей сути.
Как только вы приведете свои данные в форму, подходящую для вашей аналитики, тогда посмотрите на стратегии хранения, MongoDB может быть подходящим, или вы можете обнаружить, что для анализа лучше подойдет что-то, что позволяет легко использовать функциональность типа Map Reduce… (например, HBase)
Ответ №2:
Это может иметь смысл. Единственное, что вы можете сделать, это настроить MongoDB в режиме горизонтального масштабирования. Затем, используя правильные структуры данных, вы можете параллельно запускать запросы по сегментам (что он может сделать за вас автоматически):
http://www.mongodb.org/display/DOCS/Sharding
Это могло бы сделать возможным анализ в реальном времени, которого в противном случае не было бы.
Если вы правильно выберете свои модели данных, вы можете ускорить свои запросы, избегая любых видов объединений (опять же, хорошо в горизонтальном масштабе).
Наконец, вы также можете многое сделать с отображением / уменьшением своих данных.
http://www.mongodb.org/display/DOCS/MapReduce
Следует учитывать одно предостережение: для MongoDB AFAIK нет ничего похожего на службы SQL Reporting Services.
Ответ №3:
Я нахожу, что mapreduce от MongoDB работает медленно (однако они работают над его улучшением, смотрите Здесь:http://www.dbms2.com/2011/04/04/the-mongodb-story / ).
Может быть, вы можете использовать версию сообщества Infobright для аналитики? Смотрите здесь: http://www.infobright.com/Community
Реляционная база данных, такая как Postgresql, тоже может выполнять аналитику (afaik MySQL не может выполнять хэш-соединение, но другие реляционные базы данных могут).