java hbase 批量查询数据_【HBase】+Java+批量增查数据

importcom.alicloud.openservices.tablestore.SyncClient;import com.alicloud.openservices.tablestore.model.*;public classbatchWriteData {/***@paramclient

*@paramtableName 表名

*@paramprimaryKeyName 主键名称

* 备注:待完善(要添加哪些列?造哪些列的数据)*/

private voidbatchWriteRow(SyncClient client, String tableName, String primaryKeyName) {

BatchWriteRowRequest batchWriteRowRequest= newBatchWriteRowRequest();//构造rowPutChange1

PrimaryKeyBuilder pk1Builder =PrimaryKeyBuilder.createPrimaryKeyBuilder();

pk1Builder.addPrimaryKeyColumn(primaryKeyName, PrimaryKeyValue.fromString("pk1"));

RowPutChange rowPutChange1= newRowPutChange(tableName, pk1Builder.build());//添加一些列

for (int i = 0; i < 10; i++) {

rowPutChange1.addColumn(new Column("Col" +i, ColumnValue.fromLong(i)));

}//添加到batch操作中

batchWriteRowRequest.addRowChange(rowPutChange1);//构造rowPutChange2

PrimaryKeyBuilder pk2Builder =PrimaryKeyBuilder.createPrimaryKeyBuilder();

pk2Builder.addPrimaryKeyColumn(primaryKeyName, PrimaryKeyValue.fromString("pk2"));

RowPutChange rowPutChange2= newRowPutChange(tableName, pk2Builder.build());//添加一些列

for (int i = 0; i < 10; i++) {

rowPutChange2.addColumn(new Column("Col" +i, ColumnValue.fromLong(i)));

}//添加到batch操作中

batchWriteRowRequest.addRowChange(rowPutChange2);//构造rowUpdateChange

PrimaryKeyBuilder pk3Builder =PrimaryKeyBuilder.createPrimaryKeyBuilder();

pk3Builder.addPrimaryKeyColumn(primaryKeyName, PrimaryKeyValue.fromString("pk3"));

RowUpdateChange rowUpdateChange= newRowUpdateChange(tableName, pk3Builder.build());//添加一些列

for (int i = 0; i < 10; i++) {

rowUpdateChange.put(new Column("Col" +i, ColumnValue.fromLong(i)));

}//删除一列

rowUpdateChange.deleteColumns("Col10");//添加到batch操作中

batchWriteRowRequest.addRowChange(rowUpdateChange);//构造rowDeleteChange

PrimaryKeyBuilder pk4Builder =PrimaryKeyBuilder.createPrimaryKeyBuilder();

pk4Builder.addPrimaryKeyColumn(primaryKeyName, PrimaryKeyValue.fromString("pk4"));

RowDeleteChange rowDeleteChange= newRowDeleteChange(tableName, pk4Builder.build());//添加到batch操作中

batchWriteRowRequest.addRowChange(rowDeleteChange);

BatchWriteRowResponse response=client.batchWriteRow(batchWriteRowRequest);

System.out.println("是否全部成功:" +response.isAllSucceed());if (!response.isAllSucceed()) {for(BatchWriteRowResponse.RowResult rowResult : response.getFailedRows()) {

System.out.println("失败的行:" +batchWriteRowRequest.getRowChange(rowResult.getTableName(), rowResult.getIndex()).getPrimaryKey());

System.out.println("失败原因:" +rowResult.getError());

}/*** 可以通过createRequestForRetry方法再构造一个请求对失败的行进行重试.这里只给出构造重试请求的部分.

* 推荐的重试方法是使用SDK的自定义重试策略功能, 支持对batch操作的部分行错误进行重试. 设定重试策略后, 调用接口处即不需要增加重试代码.*/BatchWriteRowRequest retryRequest=batchWriteRowRequest.createRequestForRetry(response.getFailedRows());

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值