2012-07-17 89 views
2

爲基於Web的應用程序存儲大量數據的最佳方式是什麼?在基於Web的應用程序中處理大量數據

每個記錄只有3個字段,但每天將有大約1.44億條記錄 - 存儲一個月 - 總計444.4億條記錄。讓我們湊到50億。

數據必須通過關鍵字搜索&儘可能快地向最終用戶返回結果。

  • 哪種編程語言?
  • JSON/XML /一些我從未聽說過的數據庫系統?
  • 什麼樣的基礎設施?想象一下,這個系統只能同時滿足最多1,000個用戶的需求。

我假設代碼是相同的,無論你是在搜索10條記錄還是100億條記錄,你都必須提高效率。我還假設mySQL/PHP沒有機會,我們將爲託管解決方案付出非常大的款項。

只需要一些指導,從哪裏開始,真的。謝謝!

+0

您已將問題標記爲「數據操作」,而問題本身就像您只需要搜索和顯示一樣。那麼:只讀還是訪問? – 2012-07-17 12:04:43

+0

是的,謝謝馬丁!刪除了標籤。而且,'甚至更好',用戶沒有寫入權限 - 寫入是通過cron完成的,所以應該只有一個用戶(cron作業)寫入'數據庫'。 – Sarah 2012-07-17 20:10:19

+0

@Sarah,這個cron作業多長時間寫入數據庫?它會簡單地添加記錄到最後,還是會運行「DELETE」和「UPDATE」查詢? – 0b10011 2012-08-24 13:58:41

回答

2

大數據生態系統中有許多工具(NoSQL數據庫,分佈式計算,機器學習,搜索等),它們可以爲您的問題提供答案。由於你的應用程序將會寫得很重,所以我會主張Apache Cassandra具有出色的寫入性能(儘管它需要比NoSQL /文檔數據庫(如MongoDB)更多的數據建模)。您還需要基於Solr或ElasticSearch的搜索解決方案,以及針對索引和查詢的Map/Reduce。

編程語言並不重要,除非您的業務最終用戶將針對您的大數據編寫查詢,在這種情況下,您可以使用類似SQL的東西,如Hive或Pig。爲了讓您開始使用,下列(最近)鏈接可能給你如何根據自己的需求來挑選一個分析棧一些想法 - 請注意,每個數據庫或分佈式計算模式專門用於某些特定用例:

How we picked our analytics stack

另請參閱High Scalability瞭解各種用例,瞭解公司如何解決其可伸縮性問題。

相關問題