1. MapReduce介紹 傳統的關系型數據庫中,只要你的數據是結構化的,你可以進行任何類型的查詢。Apache Couch與此相反,它使用MapReduce(預定義的map和的reduce方法)進行查詢。這種查詢方式具有更好的靈活性,因為他們能適應各種類型的文檔結構,並為每個文檔索引獨立計算和並行計算。這種將map和reduce結合使用的方式在CouchDB術語中稱為“視圖(View)”。 與關系型數據庫不同的是,Apache Couch不是聲明哪些表中有哪些結果集,也不是依賴數據進行有效的查詢,reduce查詢基於map方法生成的索引進行分組查詢。Map方法在每個文檔作為參數時調用一次,該功能可以選擇跳過文檔或提交一個或多個視圖行作為鍵值對。Map方法可能不依賴文檔之外的任何信息,這種依賴是指允許增量和並行生成CouchDB視圖。 CouchDB視圖存儲在行中並根據key排序,這樣能保證在成千上萬個視圖中的查詢效率問題。創建CouchDB map方法時,首要目標是創建一個索引存儲關鍵詞相關的數據。 2. 准備相關數據 通過可視化創建簡單數據。
{
“RED”: 20,
“BLUE”: 30,
“GREEN” : 40
}