2013-03-29 97 views
0

我正在創建一個數據庫來存儲三件事情。比方說實驗,測量和元數據。元數據由一組可變數量和類型的屬性組成,從而使NoSQL的選擇具有吸引力。noSQL數據庫中的雙重索引

我需要在數據庫中有兩個簡單的查詢:

1)給我所有實驗的元數據與測量的給定值。 2)給我一個實驗的所有措施的元數據。

我的主要要求是:數據

1)噸。每個實驗都可能帶有數百萬種可能的措施(當然還有元數據),並且我預計會有數千個實驗。 2)併發性。我希望能夠快速併發地讀/寫,因爲在任何特定的時間點,我可能會運行10-20次實驗,並且他們會希望同時寫入數百萬個措施。

我試過MongoDB,但由於寫入鎖定速度很慢。我想有更快的東西。此外,它不能很好地處理我的一個查詢,因爲我基本上需要兩個索引。我正在考慮作爲泰坦的替代品,僅僅因爲將實驗想象成節點並將它們與邊緣連接起來似乎很自然。如果我能找到快速執行兩種查詢的方法,Hypertable似乎是另一種可能性。

有那麼多的noSQL數據庫在那裏,我可能會錯過我的需要正確的一個。建議?

+0

我只會發表評論,最有可能沒有你的需求銀彈。我們都喜歡可以無限增長的數據庫,接受數十億次的寫入並且同時提供數十億次讀取,而且沒有延遲。但現實是我們必須在某個時候妥協。我會花一些時間調查你如何妥協以達到你的目標。只是友好的建議。 – ryan1234

+0

我當然同意我可能會要求太多。但鑑於我想要簡單的查詢,在這種特殊情況下,可能有一個特定的數據庫比其他數據庫表現更好。 –

回答

1

你看過可以滿足你的需求的NewSQL數據庫嗎?我建議你仔細看看Starcounter,這是真正的ACID,不會鎖定寫入,並支持對基本屬性和組合索引進行索引。

我認爲面向對象和以內存爲中心的事務數據庫可以滿足您的需求。然後你可以有不同的實驗和度量派生相同的類,你可以選擇查詢每種類型以及分別查詢非附加類型。

如果您沒有超過TB的數據,則不需要迄今爲止查看過的大數據數據庫。他們非常擅長他們的工作,但我認爲您應該研究其他的NoSQL數據庫。當使用內存(當然,所有寫操作都保護在永久存儲介質上)面向對象的數據庫時,與關係數據庫相比,您可以獲得大約4倍的壓縮,因此數據結核通常會被使用。

今天很難在數據庫叢林中找到你的方式,所以我明白尋找適合你需求的東西是很困難的。在你的情況 - 我的交易NoSQL數據庫5美分是真正的ACID和SQL查詢支持!

+0

謝謝,我會試試看。 –