簡體   English   中英

用Astyanax更新Composite Counter列

[英]Update Composite Counter column with Astyanax

我從示例中看到了如何使用Astyanax更新計數器列並插入到復合列中。 但是我看不到兩者都做。

這是我要在CQL 3中嘗試做的事情

UPDATE column_family SET count = count + 1 WHERE col1='foo' AND col2='bar' AND col3='yo';

使用類似的架構

CREATE COLUMNFAMILY column_family (
   col1 varchar,
   col2 varchar,
   col3 varchar,
   count counter,
PRIMARY KEY (col1, col2, col3));

這是我必須更新復合專欄的要點

public void updateCount(String columnFamilyName , String rowKey , Counter rollup , int count) throws ConnectionException {


  try  {
  AnnotatedCompositeSerializer<Counter> entitySerializer = new AnnotatedCompositeSerializer<Counter>(Counter.class);
  MutationBatch mutation = keyspace.prepareMutationBatch();

   ColumnFamily<String, Counter> columnFamily
      = new ColumnFamily<String, Counter>(columnFamilyName, StringSerializer.get() , entitySerializer);
   mutation.withRow(columnFamily , rowKey).putColumn(rollup, count, null);

   mutation.execute();


  } catch (Throwable e){
    LOG.warn("update fail" , e);
  }

}

肯定有一個增量計數器列方法。 我的代碼通常看起來像這樣:

batch.withRow( ... ).incrementCounterColumn( ... );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM