2012-07-06 46 views
7

Tôi đã cố gắng hiểu những điều cơ bản của MapReduce trong MongoDB và thậm chí sau khi triển khai nó, tôi không chắc chính xác nó khác với GROUP BY của SQL hoặc thậm chí GROUP BY của riêng Mongo như thế nào. Trong SQL server, một GROUP BY có thể được thực hiện bằng stream hoặc hash aggregate. MapReduce không giống với tổng hợp băm, chỉ trên một số lượng lớn máy chủ?
MapReduce và SQL GROUP BY

Tôi đã đọc ở những nơi mà MR cho MongoDB sẽ được chạy dưới dạng nền tảng vì nó là "hoạt động nặng". Cho rằng dữ liệu được phân mảnh, sẽ không một GROUP BY được bằng nhau "nặng"? Điều đó nói rằng, tôi chỉ cố gắng để so sánh các loại hoạt động có thể được thực hiện cả hai như là một công việc MR hoặc sử dụng truy vấn GROUP BY.

Có điều gì mà GROUP BY không thể làm và chỉ MR có thể thực hiện?

Ngoài ra, Hadoop có vẻ rất giỏi MR (Đây chỉ là những gì tôi đã đọc..Tôi chưa bao giờ làm việc trên Hadoop). MR của Hadoop khác với MR của Mongo như thế nào?

Tôi đang bối rối. Vui lòng giúp đỡ hoặc hướng dẫn tôi đến một hướng dẫn tốt giải thích sự cần thiết của MapReduce.

Trả lời

7

Những gì bạn nhận được bằng cách sử dụng MR là tốc độ. GROUP BY là một hoạt động chậm trong SQL và MR thậm chí còn chậm hơn trong MongoDB. Nhưng những gì bạn làm là bạn tạo ra các bộ sưu tập mới và lặp lại chúng trong thời gian thực. Điều này rất tốt khi bạn có một lượng lớn dữ liệu và muốn có thể lặp lại nó trong thời gian thực.

Trong dự án tôi đang làm việc trên đó là một tập lệnh Python chạy trong nền (công việc cron) làm bản đồ khác nhau/giảm một lần mỗi ngày. Thay vì lặp qua các bảng lớn với nhóm SQL, chúng ta lặp lại một lần với MR và sau đó lặp lại nhanh trên các bộ sưu tập mới được tạo ra.

Tôi không có kinh nghiệm về Hadoop. Vì vậy, tôi xin lỗi tôi không thể điền vào bạn trong đó.

Hướng dẫn: http://www.mongovue.com/2010/11/03/yet-another-mongodb-map-reduce-tutorial/

EDIT:

Ở đây bạn có thể thấy toàn bộ bản dịch của một truy vấn SQL để một MongoDB Bản đồ/Giảm: GROUP BY to MongoDB Map/Reduce Nó lấy từ: http://rickosborne.org/download/SQL-to-MongoDB.pdf

+0

Cảm ơn thông tin chi tiết..Một khi tôi xác định rằng MapReduce về cơ bản là 'triết lý' và có thể được theo dõi trong máy chủ SQL, nếu chúng tôi có thể tạo bảng mới và lưu trữ kết quả MR trung gian vào họ? –

+0

Đừng quên đánh dấu là câu trả lời nếu nó trả lời câu hỏi của bạn hoặc ít nhất là bỏ phiếu! :) – Ms01

+0

biểu đồ đẹp :) Được thăng hạng .... –

3

Rất nhiều người dân sử dụng MongoDB như lưu trữ dữ liệu và Hadoop để xử lý vì có kết nối giữa hai. Mỗi nút MongoDB có thể xử lý nhiều nút Hadoop đọc vào nó. Lưu ý, tôi khuyên bạn nên tách các nút mongo và Hadoop cho bộ nhớ.

Trong trường hợp bạn không có họ, đây là một số tài liệu cho bạn

Một điều khác mà có thể có giá trị nhìn vào là aggregation framework mới sắp ra mắt trong 2.2. Dưới đây là chart tương đương các hoạt động trong SQL với các hoạt động trong khung công tác tổng hợp MongoDB.

+0

Liên kết tuyệt vời..thanks! Sẽ kiểm tra xem chúng ra .. –

+0

Có, upvoted :) Cảm ơn một lần nữa; Bạn đã cho tôi một nhánh hoàn toàn mới để khám phá! –