Trong công ty của chúng tôi, chúng tôi có cơ sở dữ liệu MongoDB chứa nhiều dữ liệu phi cấu trúc, trên đó chúng tôi cần chạy các thuật toán giảm bản đồ để tạo báo cáo và các phân tích khác. Chúng tôi có hai cách tiếp cận để lựa chọn để thực hiện các phân tích cần thiết:
Một cách tiếp cận là trích xuất dữ liệu từ MongoDB sang cụm Hadoop và thực hiện phân tích hoàn toàn trong nền tảng Hadoop. Tuy nhiên, điều này đòi hỏi đầu tư đáng kể vào việc chuẩn bị nền tảng (phần mềm và phần cứng) và giáo dục nhóm làm việc với Hadoop và viết các tác vụ giảm bản đồ cho nó.
Một cách tiếp cận khác là chỉ nỗ lực của chúng tôi trong việc thiết kế các thuật toán thu nhỏ bản đồ và chạy các thuật toán trên các chức năng giảm bản đồ MongoDB. Bằng cách này, chúng ta có thể tạo một nguyên mẫu ban đầu của hệ thống cuối cùng có thể tạo các báo cáo. Tôi biết rằng các chức năng giảm bản đồ của MongoDB chậm hơn nhiều so với Hadoop, nhưng hiện tại dữ liệu không lớn đến mức khiến điều này trở thành một nút cổ chai, ít nhất là trong sáu tháng tới.
Câu hỏi là, bằng cách sử dụng cách tiếp cận thứ hai và viết các thuật toán cho MongoDB, sau này chúng có thể được chuyển sang Hadoop với rất ít sửa đổi và thiết kế lại thuật toán không? MongoDB chỉ hỗ trợ JavaScript nhưng sự khác biệt về ngôn ngữ lập trình rất dễ xử lý. Tuy nhiên, có bất kỳ sự khác biệt cơ bản nào trong mô hình thu nhỏ bản đồ của MongoDB và Hadoop có thể buộc chúng ta phải thiết kế lại các thuật toán đáng kể để chuyển sang Hadoop không?