2011-06-28 198 views
3

就在一些建議之後,因爲我是CouchDB的新手(迄今爲止也很喜歡它)。只是想知道是否有任何限制單個文檔的大小。以下是文檔示例的示例。CouchDB文檔最大大小

{ 
    "_id": "client_info", 
    "name": "Client Name", 
    "role": "admin", 
    .... 
}, 
{ 
    "_id": "1199145600", 
    "alert_1_value": 0.150 
    "alert_2_value": 1.030 
    "alert_3_value": 12.500 
    ... 
    ... 
}, 
{ 
    "_id": "1199145900", 
    "alert_1_value": 0.150 
    "alert_2_value": 1.030 
    "alert_3_value": 12.500 
    ... 
    ... 
}, 
{ 
    "_id": "1199146200", 
    "alert_1_value": 0.150 
    "alert_2_value": 1.030 
    "alert_3_value": 12.500 
    ... 
    ... 
}, 
etc...literally millions more of these every 5 minutes... 

上面的實施例表明,我將是下的對象「價值」的數據對象(例如,數據1,數據等)存儲數據(時間戳和值)。

這裏的技巧是,每個「值」對象將需要存儲大量的時間戳/值對象(大約250萬)。我已經通過腳本添加了這些內容,只是爲了測試Document的侷限性,但是Futon因爲無法處理而崩潰。

我有一種感覺,我要對這個錯誤的方式...

UPDATE:修改後的代碼,現在存儲每個數據單獨文件中規定。

回答

4

當您設計CouchDB數據庫時,您必須考慮文檔。下面是http://guide.couchdb.org的摘錄,我覺得非常好:

經驗法則:分解成文件的一切,你會在你的應用程序中單獨處理。項目是單一的,評論是單一的,但你不需要把它們分成更小的片段。視圖是以有意義的方式將文檔分組的便捷方式。

+0

謝謝@Gjorgji,我仍然試圖讓我的頭腦圍繞新的思維方式!而不是將這些時間戳/值對象附加到上面的文檔,應該每個文檔都是一個單獨的文檔(然後顯示一個視圖)。我不禁感到這是一種無組織的存儲數據的方式,其中一切都放在數據庫的根目錄中...... – crawf

+0

視圖應該是組織未組織數據的方式:)。考慮到您預計每個Data_X有250萬個時間戳/值,它們中的每一個都應該是一個單獨的文檔。確保你閱讀了CouchDB指南。你沒有考慮過使用RDBMS(例如PostgreSQL)嗎?對於CouchDB我也是比較新的,我覺得當不同的「數據塊」不那麼相似時更合適。在你的情況下,數據都是一樣的。 –

+0

只使用MySQL,我不確定它是否能夠快速檢索足夠大的數據集的值。我用我的修改過的技巧更新了原文。我們將在幾次測試後看到它是如何處理的。 – crawf