2013-05-06 29 views
1

所以我有一些非常大的行。有些是幾百萬列寬。每列都是一個JSON對象。如何從cassandra使用ruby檢索整個寬行

很明顯,數據比在thrift中的max_packet大,當我嘗試檢索整行時,所有的各種瘋狂。問題是,是否有一種更加健全的方式來檢索數據(使用紅寶石)。這些都是TimeUUID數據,我希望能夠一次檢索100或1000左右的整批數據。但是,我無法想出辦法做到這一點。大多數範圍操作都是基於關鍵字的,而不是基於列的。如果我只是做一個簡單的get,我會崩潰我的戒指(RF = 2)的2個節點。在所有這些過程中,GC似乎都會發生摔跤,並且在崩潰時出現Java Heap OOM錯誤。

感謝, 佈雷特

回答

0

大部分的範圍內操作都是基於密鑰而不是基於列的。

不知道你正在使用的接口,但Cassandra的API支持get_slice方法,它接受一個SliceRange,可以指定一個範圍的列名返回。 twitter ruby client提供:start:finish選項至getmulti_get映射到切片範圍。

+0

似乎迭代get_slice將爲我做。可能從長遠來看,我需要調整,這樣我的排不會那麼長。我正在使用twitter ruby​​客戶端。 – brettnem 2013-05-07 00:49:06