Резюме:
Можно ли:
- Импортировать данные в Hadoop с помощью «MongoDB Connector for Hadoop».
- Обработайте его с помощью Hadoop MapReduce.
- Экспортируйте его с помощью Sqoop за одну транзакцию.
Я создаю веб-приложение с помощью MongoDB. В то время как MongoDB хорошо работает для большей части работы, в некоторых частях мне нужны более сильные гарантии транзакций, для чего я использую базу данных MySQL.
Моя проблема заключается в том, что я хочу прочитать большую коллекцию MongoDB для анализа данных, но размер коллекции означает, что аналитическое задание займет слишком много времени для обработки. К сожалению, встроенная в MongoDB структура сокращения карт не подходит для этой работы, поэтому я бы предпочел провести анализ с помощью Apache Hadoop.
Я понимаю, что можно считывать данные из MongoDB в Hadoop с помощью «Коннектора MongoDB для Hadoop», который считывает данные из MongoDB, обрабатывает их с помощью MapReduce в Hadoop и, наконец, выводит результаты обратно в базу данных MongoDB.
Проблема в том, что я хочу, чтобы выходные данные MapReduce отправлялись в базу данных MySQL, а не в MongoDB, потому что результаты должны быть объединены с другими таблицами MySQL.
Для этой цели я знаю, что Sqoop может экспортировать результат Hadoop MapReduce в MySQL.
В конечном счете, я хочу также прочитать данные MongoDB, затем обработать их с помощью Hadoop и, наконец, вывести результат в базу данных MySQL.
Возможно ли это? Какие инструменты доступны для этого?