0
我需要獲取所有列:column_value對的一個鍵。 約束是列有一個共同的前綴,有沒有辦法讓它使用Hector?cassandra:有沒有一種方法可以獲得以特定前綴開頭的所有列值?
我需要獲取所有列:column_value對的一個鍵。 約束是列有一個共同的前綴,有沒有辦法讓它使用Hector?cassandra:有沒有一種方法可以獲得以特定前綴開頭的所有列值?
你可以做一個SliceQuery,並做一個範圍從前綴到前綴|,提供它應該工作的唯一字母數字。
StringSerializer ss = StringSerializer.get();
SliceQuery sliceQuery = HFactory.createSliceQuery(keySpace, rowSerializer, ss, ss);
sliceQuery.setColumnFamily(MY_COLUMN_FAMILY);
sliceQuery.setKey(rowKey);
sliceQuery.setRange("prefix", "prefix|", false, Integer.MAX_INT);
有沒有範圍,我只是想用前綴所有coluns,但我也認爲這將是作爲卡桑德拉將不得不遍歷所有列太慢了吧? – Peter
不完全是這樣,它爲每個這麼多字節保留一個索引(column_index_size_in_kb)。由於列被排序,它將能夠非常接近(在上面的索引的大小內)到數據並讀取,直到它到達片的末尾。您的列切片實際上會快速高效。將其視爲對數據的二進制搜索,然後讀取它直到達到「前綴|」值。 –