原子计数器是将列当成一个原子计数器来使用,为某些在线应用提供实时统计功能,例如统计帖子的PV(实时浏览量)等。

说明 原子计数器的详细介绍参见原子计数器

接口说明

RowUpdateChange类中新增了原子计数器的操作接口:
  • RowUpdateChange increment(Column column):对列执行增量变更(如:+X、-X等)。
  • void addReturnColumn(String columnName):指定对哪一列进行原子计数器操作。
  • void setReturnType(ReturnType.RT_AFTER_MODIFY):设置返回类型,并返回该列的新值。

示例

写入数据时,使用RowUpdateChange接口对整型列进行列值的增量变更,示例代码如下。
private static void incrementByUpdateRowApi(SyncClient client) {
    // 构造主键
    PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
    primaryKeyBuilder.addPrimaryKeyColumn(PRIMARY_KEY_NAME, PrimaryKeyValue.fromString("pk0"));
    PrimaryKey primaryKey = primaryKeyBuilder.build();
    RowUpdateChange rowUpdateChange = new RowUpdateChange(TABLE_NAME, primaryKey);
    // 将price列值+10,不允许设置时间戳
    rowUpdateChange.increment(new Column("price", ColumnValue.fromLong(10)));
    // 设置ReturnType将原子计数器的结果返回
    rowUpdateChange.addReturnColumn("price");
    rowUpdateChange.setReturnType(ReturnType.RT_AFTER_MODIFY);
    // 对price列进行原子计数器操作
    UpdateRowResponse response = client.updateRow(new UpdateRowRequest(rowUpdateChange));
    // 打印出更新后的新值
    Row row = response.getRow();
    System.out.println(row);