Извлечь в MongoDB для анализа

#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 не может выполнять хэш-соединение, но другие реляционные базы данных могут).