2013-08-01 157 views
1

我正在使用Hector從Cassandra DB讀取數據。 一種用於查詢例如:使用hector獲取Cassandra列時間戳

ColumnQuery<String, String, String> cq = HFactory.createColumnQuery(KEYSPACE, stringSerializer, stringSerializer, stringSerializer); 
cq.setColumnFamily(columnFamily).setKey("Some_Key").setName("Column_Name"); 
QueryResult<HColumn<String, String>> cqRes = cq.execute(); 

答案我得到(此列的值)看起來是這樣的:

[45404,2]

據我所知列由名稱,值和時間戳組成(例如,提到的here)。 我不寫信給這個數據庫,我只是從中讀取數據。數據圖表有沒有可能根本寫不出來?無論如何,有沒有一種使用Hector的方法來集中它(時間戳)?

回答

1

您可以使用該列的getClock()方法獲取時間戳。每列在卡桑德拉都有一個時間戳。 (對於計數器來說它更復雜,並且它們不會暴露給客戶端。)

但是,時間戳用於衝突解決,以查看哪個寫入勝出。它不應該像日期字段一樣對待。如果你想爲你的記錄日期,然後添加一個單獨的日期列。然後,您可以控制分辨率,時區等,它可以引用整行而不是單個列。

+0

謝謝理查德。我已經注意到HColumn類有一個getClock()方法,但是如何獲得這個類的一個實例?返回的對象沒有這個方法。 – forhas

+1

'HColumn col = cqRes.get();' – Richard

+0

星期天我會回到我的筆記本電腦,並給它一個鏡頭。看起來不錯:)謝謝。 – forhas