2012-07-06 17 views
7

Próbowałem zrozumieć podstawy MapReduce w MongoDB, a nawet po ich wdrożeniu, nie jestem pewien, jak dokładnie różni się to od GROUP BY GROUP, czy nawet od własnego GROUPa Mongo. W serwerze SQL grupę GROUP BY można wykonać za pomocą strumienia lub sumy kontrolnej. Czy MapReduce nie przypomina agregatu hash, tuż nad dużą liczbą serwerów?
MapReduce i SQL GROUP BY

Czytałem w miejscach, gdzie MR dla MongoDB ma być uruchomiony jako proces w tle, ponieważ jest to "ciężka operacja". Biorąc pod uwagę, że dane są zignorowane, czy GRUPA BYŁaby równie "ciężka"? Powiedział, że próbuję tylko porównać te rodzaje operacji, które można zaimplementować zarówno jako zadanie MR, jak i za pomocą zapytania GROUP BY.

Czy jest coś, czego GROUP BY nie może zrobić i tylko MR może zrobić?

Ponadto, Hadoop wydaje się być bardzo dobry w MR (To jest tylko to, co przeczytałem .. Nigdy nie pracowałem na Hadoop). Jak MR Hadoopa różni się od MR Mongo?

Jestem zdezorientowany. Prosimy o pomoc lub poprowadzenie mnie do dobrego samouczka wyjaśniającego potrzebę MapReduce.

Odpowiedz

7

To, co dostajesz za pomocą MR, to szybkość. GROUP BY to powolna operacja w SQL i MR jest nawet wolniejsza w MongoDB. Ale to, co robisz, to tworzenie nowych kolekcji i iterowanie nad nimi w czasie rzeczywistym. Jest to bardzo dobre, gdy masz duże ilości danych i chcesz móc je powtarzać w czasie rzeczywistym.

W projekcie, nad którym pracuję, istnieje skrypt w języku Python działający w tle (zadanie cron), który wykonuje inną mapę/redukuje jeden raz dziennie. Zamiast powtarzania dużych tabel przy pomocy grupy SQL, wykonujemy iterację raz z MR, a następnie iterujemy szybko nowe utworzone kolekcje.

Nie mam żadnego doświadczenia w Hadoop. Więc przepraszam, nie mogę cię tam zastawić.

Tutorial: http://www.mongovue.com/2010/11/03/yet-another-mongodb-map-reduce-tutorial/

EDIT:

Tutaj można zobaczyć całe tłumaczenie zapytania SQL do MongoDB Mapa/Zmniejszenie: GROUP BY to MongoDB Map/Reduce Zajęło od: http://rickosborne.org/download/SQL-to-MongoDB.pdf

+0

Dzięki za insight..Am Potem prawidłowego myśląc, że jest po prostu MapReduce „filozofia” agregacji i może być stosowana w serwerze SQL, a także, czy możemy wygenerować nowe tabele w locie i zapisywać wyniki pośrednie MR język im? –

+0

Nie zapomnij oznaczyć jako odpowiedź, jeśli odpowiedziała na twoje pytanie lub przynajmniej głosowała! :) – Ms01

+0

ładny wykres :) Upvoted .... –

3

Wiele osób używa MongoDB do przechowywania danych i Hadoop do przetwarzania, ponieważ istnieje połączenie między nimi. Każdy węzeł MongoDB może obsługiwać wiele wczytywanych do niego węzłów Hadoop. Na marginesie, polecam oddzielić węzły Mongo i Hadoop dla pamięci.

W przypadku, gdy nie ma ich, oto niektóre dokumenty dla ciebie

Inną rzeczą, która może być warta patrząc na to nowe aggregation framework wychodzi w 2.2. Oto chart zrównująca operacje w SQL z operacjami w strukturze agregacji MongoDB.

+0

Świetne linki..dzięki! Sprawdzę je .. –

+0

Tak, awansowałem :) Jeszcze raz dziękuję; Dałeś mi zupełnie nową gałąź do odkrycia! –