[Mongodb] Understanding MapReduce

Mongodb memiliki sesuatu yang disebut mapreduce yang biasa digunakan untuk menganalisis data mongodb lebih jauh. Mapreduce sendiri adalah sebuah proses yang membagi-bagi suatu proses besar menjadi subtask2 yang lebih kecil. Pada map reduce sendiri terdapat dua buah proses yaitu map dan reduce.

– Map adalah proses dimana data yang besar akan dibagi-bagi menjadi beberapa bagian yang lebih kecil. For example kita ingin menganalisis orang  yang ada di seluruh Indonesia, kemudian kita bagi-bagi data nya berdasarkan provinsinya. Setelah itu data pada masing-masing provinsi akan di olah masing-masing secara independent dengan provinsi lain.

– Reduce adalah proses dimana hasil olahan pada proses Map tadi kita gabungkan untuk kita olah secara keseluruhan.

This is some example how we implement mapreduce in mongodb :

Misal saya memiliki table “member” with field : _id, name, sex(male,female). Kita ingin tahu total “member” male dan female. Untuk kasus ini kita gunakan map reduce. Pertama definisikan fungsi map :

             
//this code check data by field sex. It will return value like this male = [1][1] female =[1][1][1][1]
//always add [1] for its sex
var map1=function(){emit(this.sex,1);}

Setelah itu definisikan reduce nya :

 var reduce1 = function(key, values) {
   var count = 0;
   for (var i = 0; i < values.length; i++){
      count += values[i];
   }
   return count;
 };

Setelah itu kita gabungkan kedua fungsi di atas menjadi mapreduce seperti berikut :

 db.runCommand({
    mapreduce: 'your_table_name',
    map: map1,
    reduce: reduce1,
    out: 'name_that_you_call_for_this_mapreduce'
 })

Jika mapreduce anda sudah berhasil dibuat, maka dia akan menampilkan pesan yang memperlihatkan result nya. Tetapi jika tidak, maka dia akan menampilkan pesan error.

Kita telah selesai membuat mapreduce, sekarang bagaimana kita memanggilnya untuk melihat hasilnya? Cukup masukkan perintah berikut :

 db.name_that_you_call_for_this_mapreduce.find()

Finished, you can see the result.. Hope it help, Happy coding..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: