2014-02-09 110 views
0

設置命令我有一個密鑰空間名稱CS_DATA和列姓ScheduledData與CDATA和行密鑰「DIV/12345 /計劃3」 supercolumn一個卡桑德拉數據庫。這個超列有2列,用c1和c2表示一些值。每列即c1和c2都有值字段。 c1具有空白值,c2具有許多字段的值。更新卡桑德拉數據庫

像這樣的事情

value=<nodeId=123#time=12:34#location=bangalore> 

如何更改使用Cassandra的數據庫set命令這三個字段的值?

我試圖上卡桑德拉的

組CS_DATA.ScheduledData [ 'DIV/12345 /計劃3'] [ 'CDATA'] [ 'C2'] = 'NODEID = 123'

客戶端執行以下操作

這將我的c2值設置爲nodeId 123,但我需要單獨更改子字段並保留其他兩個字段的時間和位置相同。我該怎麼做呢?

+0

您是否使用定製列表,而不是考慮? http://cassandra.apache.org/doc/cql3/CQL.html –

+0

你正在使用哪個cassandra版本? –

+0

Sir apache cassandra -version我不確定:) – Vidya

回答

0

看來,在你的設計,你有一個像插入C2場時間和地點的一些序列化的數據。那麼Cassandra-Cli可以看到的最外面的結構是c2。不幸的是,你必須讀取存儲在C2中的以前的值,使用應用程序用於序列化該字段的相同算法對其進行反序列化,然後再將其插入到C2中。

你的設計加強了寫這是不幸的是,不是很大做之前閱讀。考慮使用像這樣的列名,這樣就可以單獨進行修改:

c2_field1,c3_field_2,...