?
全國客服熱線:4006-880844

處理大量APP開發的數據

- 編輯:admin -

在花了幾頁篇幅討論過要使存儲成本與數據價值相匹配,消除那些價值非常低的數據后,現在讓我們把注意力轉回到一- 個更激動人心的問題上,即當我們的數據都是有價值的,但它們太多了,以至于我們不能高效地處理它們時,我們應該怎么做呢?

在花了幾頁篇幅討論過要使存儲成本與數據價值相匹配,消除那些價值非常低的數據后,現在讓我們把注意力轉回到一- 個更激動人心的問題上,即當我們的數據都是有價值的,但它們太多了,以至于我們不能高效地處理它們時,我們應該怎么做呢?


 
如果你曾經上過代數課,那么很可能你已經知道這個問題的答案了。還記得你的代數或微積分老師曾教過你的,在解方程之前,要把它們簡化嗎?同樣地,這種幫助你成功解決數學問題的建議也能夠幫助你成功解決處理大量數據的問題。
 
如果可以輕松地把數據分段或者把它們關聯到服務上,那么我們只需應用在第22章到第24章中學到的概念即可。AKF擴展立方就能夠解決你的需求。但當你需要遍歷整個數據集才能生成一個答案,如要統計美國國會圖書館中所有圖書中的單詞數量,或者要盤點某個非常大且很復雜的存貨系統時,又該如何做呢?如果我們想迅速地做完這種事,我們就需要找到一種有效的分布工作的方法。這種工作分布可以采用多次遍歷系統的形式,第- -次遍歷分析(或映射)工作,第二次遍歷計算(或簡化)工作。Google引人了一種軟件框架來支持這種大型數據集的分布式處理,稱為MapReduce。“下面是對這種模型的描述以及如何應用它來解決較大問題的示例。
 
簡而言之,MapReduce具有一個映射( map)函數和一個簡化( reduce)函數。映射函數的輸人是一個鍵值對,它會生成一個中間的鍵值對。外行可能不會立刻發現它的有用之處,但這里的目的是讓一個APP開發分布式進程為另一個分布式進程創造出有用的中間信息,以便后者進行編譯。輸人的鍵可能是文檔的名字,或者是指向文檔中的一段的名字或指針。值可以是文檔中所有詞語構成的內容。在我們的分布式存貨系統中,鍵可以是存貨的地點,值可以是這個地點貨物的名字,庫存中的每項貨物名字都會出現一次。例如,如果你有五個螺絲和兩枚釘子,那么值可能是螺絲、螺絲、螺絲、螺絲、螺絲、釘子、釘子。

?