mapreduce 隨著
"大資料
"概念而流行
.其實mapreduce
的概念非常簡單
,從功能上說
,相當於
rdbms
的group 操作
mapreduce的真正強項在哪?答:
在於分布式
,當資料非常大時,像
google,有n
多資料中心
,資料都不在地球的一端,用
group
力所不及.
group既然不支援分布式
,單台伺服器的運算能力必然是有限的
.而maprecuce
支援分布式
,支援大量的伺服器同時工作
,用蠻力來統計.
maprecuce
的工作過程:
map-->對映
reduce->歸約
map: 先是把屬於同乙個組的資料(相同的cat_id)
,對映到乙個陣列上
.cat_id=3 [23,2,6,7]
reduce: 把陣列
(同一組
)的資料
,進行運算
.用mapreduce
計算每個欄目的庫存總量
map函式
var map = function()
var reduce = function(cat_id,numbers)
db.goods.mapreduce(map,reduce,);//將map、reduce計算的結果儲存到res集合中
#用mapreduce
計算每個欄目下商品的平均**
var map = function()
var reduce = function(cat_id,values)
db.goods.mapreduce(map,reduce,);
array中有多個操作方法,可以使用js中的for進行迴圈列印
for ( var key in array )
mapreduce原理流程圖:
C 引用 概念及用法
一.概念 引用是變數的別名,對引用的操作與對變數的操作完全一樣。引用符號 與c語言中取位址符號一樣,含義不同。引用的方法 型別識別符號 引用名 變數名 例如 int a int ra a 定義引用ra,它是變數a的引用,即別名 二.引用例項 1.引用作為函式引數 void swap int p1,i...
volatile變數的概念及用法
volatile關鍵字是一種型別修飾符,用它宣告的型別變數表示可以被某些編譯器未知的因素更改,比如 作業系統 硬體或者其它執行緒等。遇到這個關鍵字宣告的變數,編譯器對訪問該變數的 就不再進行優化,從而可以提供對特殊位址的穩定訪問。int i 5 int a i int b i 編譯器發現兩次從i讀資...
C 11 shared ptr概念及用法
c 11模板庫 include shared ptrptr new t t 可以是 int char 類等各種型別gnu g 的標準庫中還沒有支援,需使用boost include每個 shared ptr 物件在內部指向兩個記憶體位置 ptr.use count 1 使用空引數建構函式構造 std...