Nella nostra azienda, abbiamo un database MongoDB che contiene molti dati non strutturati, sui quali dobbiamo eseguire algoritmi di riduzione delle mappe per generare report e altre analisi. Abbiamo due approcci tra cui scegliere per l'implementazione delle analisi richieste:
Un approccio consiste nell'estrarre i dati da MongoDB in un cluster Hadoop ed eseguire l'analisi completamente nella piattaforma Hadoop. Tuttavia, ciò richiede notevoli investimenti nella preparazione della piattaforma (software e hardware) e nella formazione del team affinché lavori con Hadoop e scriva attività per ridurre le mappe.
Un altro approccio consiste nello sforzo di progettare gli algoritmi di riduzione delle mappe ed eseguire gli algoritmi sulle funzionalità di riduzione delle mappe di MongoDB. In questo modo, possiamo creare un prototipo iniziale del sistema finale in grado di generare i report. So che le funzionalità di riduzione delle mappe di MongoDB sono molto più lente rispetto a Hadoop, ma al momento i dati non sono così grandi da renderlo ancora un collo di bottiglia, almeno non per i prossimi sei mesi.
La domanda è, usando il secondo approccio e scrivendo gli algoritmi per MongoDB, possono essere successivamente portati su Hadoop con poche modifiche necessarie e riprogettazione dell'algoritmo? MongoDB supporta solo JavaScript ma le differenze nel linguaggio di programmazione sono facili da gestire. Tuttavia, ci sono differenze fondamentali nel modello di riduzione della mappa di MongoDB e Hadoop che potrebbero costringerci a ridisegnare gli algoritmi sostanzialmente per il porting su Hadoop?