我最近開始處理大數據。具體來說,我有幾個GB的數據,我必須經常對它進行計算(添加,修改)。由於對數據的任何計算都需要很長時間,因此我一直在考慮如何存儲數據以進行快速計算。以下是我已經調查的選項:如何存儲大數據以用於計算?
- 純文本文件:這項技術的唯一的好處就是插入數據是很容易的。現有數據的更改非常緩慢,因爲無法高效地搜索記錄。
- 數據庫:插入和修改數據被簡化。然而,由於這是一個正在進行的研究項目,模式可能需要經常更新,取決於實驗結果(這種情況現在還沒有發生,但肯定會在不久的將來發生)。此外,移動數據並不簡單(與簡單文件相比)。此外,我注意到,與數據存儲在XML中相比,查詢數據並不那麼快。
- XML:使用BeautifulSoup,只加載包含所有數據的XML文件需要大約15分鐘,並佔用大約15GB的RAM。由於在一天內多次運行腳本是非常正常的,因此每次調用大約15分鐘似乎非常長。好處是數據加載後,我可以快速搜索/修改元素(標籤)。
- JSON和YAML:我還沒有深入研究過它。他們肯定可以壓縮存儲文件所需的磁盤空間(相對於XML)。但是,當數據以這些格式存儲時,我發現無法查詢記錄(與數據庫或XML不同)。
你建議我做什麼?你有沒有其他的選擇?
但選定的答案在這裏http://stackoverflow.com/questions/4426540/mongodb-and-postgresql-thoughts說:「它[MongoDB是]幾乎從來沒有比Postgres/MySQL/SQL Server/etc「。 – 2013-05-03 01:14:43
@Waqar:選定的答案也是3歲;並且你提到你的模式會改變。我的意見是,MongoDB現在比2010年的時間要長得多。但這當然只是我的看法。 – ATN 2013-05-03 06:07:35