我正在尋找實施數據庫解決方案,以支持在一組簡單的2D數據集上進行基於列的快速訪問。即認爲此數據集排序的鍵/值數據庫解決方案
==========================================================
SOME DATASET1
==========================================================
ENTRY | Col1 | Col2 | Col3 ... Coln
----------------------------------------------------------
ENTRY A 1.1 0.2 5.5 6.2
ENTRY B 2.3 6.4 1.5 1.1
ENTRY C 2.2 4.2 9.5 3.4
ENTRY D 2.3 1.1 5.5 2.9
ENTRY E 9.1 3.6 7.5 2.6
我需要的是簡單地選擇在列1,列2或,或n列的所有值,同時保留排序順序的一種手段。我最初的想法是使用Redis的,具有以下密鑰空間設計:
SOMEDS1/COLUMNS/ => Col1, Col2, Col3 ... Coln
SOMEDS1/ENTRIES/ => A, B, C, D, E
SOMEDS1/Col1/ => 1.1, 2.3, 2.2, 2.3, 9.1
SOMEDS1/Coln/ => ......
這種設計背後的原則是,項目的每個列表的數量並不大,也許<一萬元可能有很多列,並且在給定的時間只需要選擇的列。
我的問題是有人已經實現了這樣的事情,如果是的話,你可以建議最適合的數據庫類型。我最初的想法是使用redis,但我願意接受建議。
對不起,忘了說,數據被訪問遠程。 此外,數據屬性並不總是事先知道,這就是爲什麼我沒有看到經典的「商店」解決方案。這種設計使我能夠快速訪問特定列的靈活性,而無需事先知道列。我認爲你需要關於列壓縮的問題,但分區快速訪問對解決方案更爲重要,這也是該設計被選中的原因。您是否知道將vm-max-memory設置爲0並將其用作磁盤數據庫(使用內存中的密鑰?)的影響 –
不推薦使用VM實現。它在2.6中消失了。 Redis現在是一個純粹的內存存儲(具有可選的磁盤快照或日記功能)。虛擬機管理在Redis模型(單線程事件循環)中不太適合。 –
啊,我明白了。那麼這個解決方案可能是不行的。我無法負擔將所有數據加載到內存中,這將會是太多了。你知道MongoDB/CouchDb是否更適合關鍵:SomeVal和Value:條目列表。 –