私たちの会社には、多くの非構造化データを含むMongoDBデータベースがあり、その上でマップ削減アルゴリズムを実行して、レポートやその他の分析を生成する必要があります。必要な分析を実装するために選択する2つの方法があります。
1つのアプローチは、MongoDBからHadoopクラスターにデータを抽出し、Hadoopプラットフォームで完全に分析を行うことです。ただし、これには、プラットフォーム(ソフトウェアとハードウェア)の準備と、Hadoopで作業し、そのためのマップ縮小タスクを作成するようにチームを教育するために、かなりの投資が必要です。
別のアプローチは、map-reduceアルゴリズムの設計に私たちの努力を注ぎ、MongoDB map-reduce機能でアルゴリズムを実行することです。このようにして、レポートを生成できる最終システムの初期プロトタイプを作成できます。MongoDBのmap-reduce機能はHadoopに比べてはるかに遅いことは知っていますが、現在のところ、データはそれほど大きくないため、少なくとも次の6か月間はボトルネックになりません。
問題は、2番目のアプローチを使用してMongoDBのアルゴリズムを作成することで、それらを後で必要な変更とアルゴリズムの再設計をほとんど行わずにHadoopに移植できるかどうかです。MongoDBはJavaScriptをサポートするだけですが、プログラミング言語の違いは簡単に処理できます。しかし、MongoDBとHadoopのmap-reduceモデルには、Hadoopへの移植のためにアルゴリズムを大幅に再設計する必要がある根本的な違いはありますか?