数据表具有Schema-Free的特点,每一行数据可能具有不同的属性列,因此无法一次性删除数据表中所有行的指定属性列。
您可以在获取某一行数据的主键信息后,调用UpdateRow接口删除该行的属性列。此处以Java SDK为例介绍删除某一行指定的属性列Col。
private static void updateRow(SyncClient client, String pkValue) {
//构造主键。
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("<PRIMARY_KEY_NAME>", PrimaryKeyValue.fromString(pkValue));
PrimaryKey primaryKey = primaryKeyBuilder.build();
//设置数据表名称。
RowUpdateChange rowUpdateChange = new RowUpdateChange("<TABLE_NAME>", primaryKey);
//删除属性列的所有版本。
rowUpdateChange.deleteColumns("Col");
//删除属性列的指定版本。
//rowUpdateChange.deleteColumn("Col", 1465373223000L);
client.updateRow(new UpdateRowRequest(rowUpdateChange));
}
如果需要批量删除多行数据的属性列,您可以调用BatchWriteRow接口进行批量操作。
BatchWriteRow限制单次只能写入200行数据,您可以使用TableStoreWriter工具类进行高并发、高吞吐率的数据写入。更多信息,请参见使用TableStoreWriter并发写入数据。
该文章对您有帮助吗?