In unserem Unternehmen verfügen wir über eine MongoDB-Datenbank mit vielen unstrukturierten Daten, für die wir kartenreduzierende Algorithmen ausführen müssen, um Berichte und andere Analysen zu erstellen. Für die Implementierung der erforderlichen Analysen stehen zwei Ansätze zur Auswahl:
Ein Ansatz besteht darin, die Daten aus MongoDB in einen Hadoop-Cluster zu extrahieren und die Analyse vollständig auf der Hadoop-Plattform durchzuführen. Dies erfordert jedoch erhebliche Investitionen in die Vorbereitung der Plattform (Software und Hardware) und die Schulung des Teams für die Arbeit mit Hadoop und das Schreiben von Aufgaben zur Kartenreduzierung.
Ein anderer Ansatz besteht darin, sich nur auf das Entwerfen der Algorithmen zur Kartenreduzierung zu konzentrieren und die Algorithmen auf MongoDB-Funktionen zur Kartenreduzierung auszuführen. Auf diese Weise können wir einen ersten Prototyp des endgültigen Systems erstellen, mit dem die Berichte erstellt werden können. Ich weiß, dass die kartenreduzierenden Funktionen der MongoDB im Vergleich zu Hadoop viel langsamer sind, aber derzeit sind die Daten nicht so groß, dass dies noch ein Engpass ist, zumindest nicht für die nächsten sechs Monate.
Die Frage ist, ob mit dem zweiten Ansatz und dem Schreiben der Algorithmen für MongoDB diese später mit wenig erforderlichen Änderungen und Neugestaltungen des Algorithmus nach Hadoop portiert werden können. MongoDB unterstützt nur JavaScript, aber Unterschiede in der Programmiersprache sind einfach zu handhaben. Gibt es jedoch grundlegende Unterschiede im Kartenreduzierungsmodell von MongoDB und Hadoop, die uns dazu zwingen könnten, Algorithmen für die Portierung nach Hadoop grundlegend neu zu gestalten?