2012-10-03 16 views
0

我正在尋找具有MultigetSliceQuery的ColumnSliceIterator的示例。我沒有找到任何?有什麼建議麼?ColumnSliceIterator與MultigetSliceQuery

我發現了很多SliceQuery的例子,但我們只能提到一個關鍵。我正在尋找多個rowkeys查詢。

感謝您的幫助

回答

0

有趣的,你想在同一時間做多行鍵列切片。我能想到的唯一情況是,如果你想在100行上做一個列片,你可以使用astyanax做100個異步查詢(列片),然後在未來循環,這樣所有的列片都在反正同一時間;)。當你有異步APIS時不需要有一個API調用。

當PlayOrm與可擴展的SQL進行連接並且速度很快時,我們對非連續的get使用類似的東西。

後, 院長

+0

感謝您的回覆。但是我們可以並排使用hector和astyanax –

0

沒有迭代器你需要什麼。你將不得不編碼所有繁重的工作。 。事情是這樣的(假設所有字符串):

MultigetSliceQuery<String, String, String> query = HFactory.createMultigetSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()()); 
List<String> keys = new ArrayList<String>(); 
// add my keys 
query.setColumnFamily("my cf").setKeys(keys).setRange(startColumn, endColumn, false, count); 
// can also use setColumnNames(...) instead of setRange() to get specific columns 
Rows<String,String,String> resultRows = query.execute().get(); 
for (Row<String, String, String> row : resultRows) { 
    for (HColumn<String, ByteBuffer> col: row.getColumnSlice().getColumns()) { 
     System.out.println(" " + col.getName() + ":" + col.getValue()); 
    } 
}    

如果你有一個非常大的數字列,它變得非常棘手,因爲可能要遍歷每一行獲得的所有列。

+0

感謝您的回覆。這是從MultiGetSliceQuery讀取數據的傳統方式。但是我在MultiGetSliceQuery中尋找ColumnSlice迭代器(分頁) –

+0

沒錯,目前沒有你需要的迭代器。但是ColumnSliceIterator的源代碼非常簡單,您可以使用ColumnSliceIterator作爲模板創建自己的ColumnMultiSliceIterator並添加類似於上面的代碼。 – libjack

0

我得到的結果,但它給它排鍵明智, 即第一行鍵的列名/值 第二排鍵的列名/值

這裏

列名字,我在最後得到的是時間時間戳值 和列值是普通字符串

我想列名不論排按鍵的排序...有任何設施在卡桑德拉這樣做...(我做牆類型的功能)

+0

這是我的問題 –