1

如果您的應用程序對大型數據集執行了大量計算,並且必須儘快通過單擊按鈕返回結果,那麼一些架構設計是什麼用於使這項工作大規模?點擊一個按鈕即可處理大數據

例如,應用程序運行模擬以預測未來結果,然後對該數據和歷史數據進行一些統計分析。有大量的CPU來運行模擬和數據庫大量插入,然後大量的大數據庫讀取收集歷史數據,以及更多的CPU進行統計分析。

實際上,要處理的數據量很大(CPU和IO密集型),理論上只需單擊一個按鈕即可顯示結果。

我知道這並不總是一個取決於強度的現實目標,但是完成這樣一個任務的典型架構是什麼?

+0

在不知道具體細節的情況下,我會說預處理/預先計算您可以預料到的加速用戶查詢的所有內容。 – mizo 2011-05-16 20:29:07

回答

3

Google會這樣做以返回搜索結果。

查看Hadoop - http://hadoop.apache.org/ - 特別是MapReduce。

「Hadoop MapReduce是一個編程模型和軟件框架,用於編寫在大型計算節點集羣上並行快速處理大量數據的應用程序。」

1

Rob提出了一個使用MapReduce的好方法。

我相信這種處理是數據挖掘過程的一部分,數據挖掘過程與傳統的請求響應模式有不同的方法。

作爲最低限度

創建一個表(非規範化),並存儲在該表中的所有必要的信息,然後當用戶需要實時信息,只是做一個表查找和獲取信息儘可能迅速。

但這種方法存在挑戰,其中一個主要挑戰是將數據填充到這個非規格化表中。

大多數情況下,它可以離線完成,可能是夜間工作,或者當負載最小時填充此表的東西!

這種方法是當你看到在一個典型的電子商務應用「客戶誰買了這個項目的也買」中所使用的方法之一。

更多的信息和參考,請參閱

1 SQL Server分析服務

2-項目項的協同過濾(特別是參考亞馬遜實現