2013-07-15 28 views
0

我需要根據行鍵讀取cassandra列族中的所有值。 我只得到一行密鑰。我想要查詢列族中的所有鍵。查詢讀取cassandra hector中的複合列

列家族的架構

rowKey是字符串和值在列名本身,如日期:主題:標誌 即在DB 2013年4月13日00:00保存這樣的: 00時,科學,99 rowkey = 1

試圖這樣

Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "localhost:9160"); 
    Keyspace keyspaceOperator = HFactory.createKeyspace(student, cluster); 
    System.out.println("Connected to cassandra " + cluster); 
    String rowKey = "1"; 


    SliceQuery<String,String,String> columnQuery = HFactory.createSliceQuery(keyspaceOperator, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()); 
    columnQuery.setColumnFamily("studentInfo").setKey(rowKey).setRange(null, null, false, 100); 
    System.out.println(columnQuery); 
    QueryResult<ColumnSlice<String,String>> result = columnQuery.execute(); 
    for (HColumn<String, String> column : result.get().getColumns()) { 
    System.out.println(column.getName()); 
    } 

回答

0

你可以試試這個???

 SliceQuery<String,String,String> columnQuery = HFactory.createSliceQuery(ksp, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()); 
     columnQuery.setColumnFamily("studentInfo").setKey(rowKey).setColumnNames("id","name"); 
     QueryResult<ColumnSlice<String,String>> result = columnQuery.execute(); 
+0

是的,這隻適用於一行,我不能遍歷鍵空間中的所有行。另外我的keyspace中的列沒有標籤,它們保存在列名中,比如'1 | 2013-04-01,science,96' – Shalu

+0

你的意思是單個列的值如2013-04-01,science,96 – abhi

+0

同樣在你的問題中,代碼片斷中,你想知道對應於單個rowKey的結果。我沒有正確地掌握整個事情。需要澄清 – abhi