2011-06-29 55 views
2

我對cassandra比較陌生,必須評估不同的NoSQL解決方案以獲取監控工具。 一個數據只有大約100個字節,但其中有很多。 是否卡桑德拉適合我的需要:在一天,我們得到約15萬條記錄... 所以我目前900萬條記錄(約15GB的SQL-插入腳本)使用cassandra監控數據模型的技巧

我的第一個問題是測試?我需要做範圍查詢(在創建記錄的日期),並根據存儲在數據中的「二級索引」定義的組來總結一些列。)

我已經嘗試過MongoDB,但它確實很差MapReduce做了一個非常糟糕的工作... 我也讀過關於HBase,但它需要的巨大數量的配置使我希望可以有與Cassandra的解決方案...

第二個問題是:我可以如何存儲我的數據以上述方式訪問它? 我已經想到了一個超級列家族,關鍵是日期(自1970年以來),列將是當時的基準數據......但是如果我使用隨機分區器,我不能做快速範圍查詢(據我所知),如果我使用Order Preserving Partitioner,數據將不會散佈在我的羣集(當前由兩個節點組成)上。

我希望我給你所有必要的信息... 謝謝你的幫助!

安迪

回答

0

我們也有類似的情況。

我們將數據存儲在簡單行中,其中行密鑰的格式爲<id>:<time-bucket>。我們目前的時間尺寸是24小時。該列是時間戳,並且該值是一個用msgpack序列化的小對象。

如果需要,我們會手動進行聚合。

我們也做了一個小的優化:當桶已滿時,它變成不可變的,所以我們創建一個「全部」對象,將所有值保存在一個列中。然後可以清除每個時間戳列。這允許我們獲取整個存儲桶並在O(1)中將其反序列化,而不是掃描整行。