W naszej firmie mamy bazę danych MongoDB zawierającą wiele nieustrukturyzowanych danych, na których musimy uruchamiać algorytmy zmniejszania mapy w celu generowania raportów i innych analiz. Mamy do wyboru dwa podejścia do wdrożenia wymaganych analiz:
Jednym z podejść jest wyodrębnienie danych z MongoDB do klastra Hadoop i wykonanie analizy całkowicie na platformie Hadoop. Wymaga to jednak znacznych inwestycji w przygotowanie platformy (oprogramowania i sprzętu) oraz wykształcenie zespołu do pracy z Hadoop i pisania zadań zmniejszania mapy.
Innym podejściem jest po prostu włożenie wysiłku w zaprojektowanie algorytmów zmniejszania mapy i uruchomienie algorytmów w funkcjach zmniejszania mapy MongoDB. W ten sposób możemy stworzyć początkowy prototyp końcowego systemu, który może generować raporty. Wiem, że funkcje redukcji map MongoDB są znacznie wolniejsze w porównaniu do Hadoop, ale obecnie dane nie są tak duże, że czyni to jeszcze wąskim gardłem, przynajmniej nie przez następne sześć miesięcy.
Pytanie polega na tym, że korzystając z drugiego podejścia i pisząc algorytmy dla MongoDB, można je później przenieść do Hadoop przy niewielkiej potrzebie modyfikacji i przeprojektowaniu algorytmu? MongoDB obsługuje tylko JavaScript, ale różnice w języku programowania są łatwe do opanowania. Czy są jednak jakieś zasadnicze różnice w modelu MongoDB i Hadoop z redukcją mapy, który może zmusić nas do przeprojektowania algorytmów w celu przeniesienia do Hadoop?