2016-02-24 4 views
0

Я создаю большое решение для анализа данных поверх данных моего веб-приложения. Что логической архитектура решения ETL у меня есть: -
1. Экстракт - Данные сначала попадают из MongoDB
2. Transform - Данные преобразуются где применяются множественные преобразования. Напр. преобразования данных, данные форматировании данных, вступив сплющенный документ BSON типа
3. нагрузки - преобразованные данные будут окончательно толкнули эластичный Поиск
4. Я могу запустить мое машинное обучение и построение статистических моделей на преобразованных данных в ES в генерировать информацию
5. Мой пользовательский интерфейс будет получать доступ к полученным данным.Постройте ETL-конвейер от MongoDB до ElasticSearch

Основная проблема на вышеупомянутом этапе 2, т.е. этап трансформации. Я прошел через реки MongoDB, Logstash ETL, но что, если я хочу делать тяжелые преобразования, которые возможны только в Spark.
Какое может быть оптимальное решение на рынке прямо сейчас?

С точки зрения размера данных, накопление в GB на ежедневной основе и миллионы документов в MongoDB.
Чтобы ограничить сферу моей разработки, я выбрал ES в качестве моей аналитической базы и MongoDB в качестве моей основной базы данных.

ответ

0

Вы можете использовать mongo-hadoop connector for Apache Spark для извлечения данных из MongoDB. Запуск преобразований в Spark и даже обучение с помощью Apache Spark MLlib.

Полученные данные могут быть сохранены обратно в MongoDB. Сокращение количества компонентов в вашем стеке ETL. Хотя, если вы хотите, вы можете сохранить выход обратно из Apache Spark в некоторые другие системы.

+0

Как использовать разъем Mongo-hadoop для Apache Spark, если я хочу, чтобы мой конвейер обрабатывал все коллекции Mongo, т.е. я не буду предоставлять имя коллекции, чтобы имитировать что-то вроде Batch Extract и просто запросить с отметкой времени Итак, что мой запрос будет обновлять все документы коллекции с определенного времени начала до конца времени –

+0

Как использовать 'mongo-hadoop' будет отдельный вопрос, и вы должны опубликовать вместо этого возникает новый вопрос. Что касается того, что вы хотите запросить у MongoDB, будь то все документы в коллекции или определенные диапазоны времени, которые будут зависеть от ваших вариантов использования. Просто запустите запросы MongoDB по мере необходимости с помощью правильных фильтров. –

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