表格存储提供了BulkImport接口用于在大数据场景下批量写入数据到数据表。当要写入数据到数据表时,您需要指定完整主键以及要增删改的属性列。
前提条件
已初始化OTSClient。具体操作,请参见初始化OTSClient。
已创建数据表。具体操作,请参见创建数据表。
参数
参数 | 描述 |
tableName | 数据表名称。 |
rowChanges | 包含多个RowChange的列表,每个RowChange代表了一行需要写入的数据。 |
示例
以下示例用于批量写入数据。
private static void bulkImport(SyncClient client, String start, String end){
// 创建bulkImportRequest。
// 设置数据表名称。
String tableName = "<TABLE_NAME>";
BulkImportRequest bulkImportRequest = new BulkImportRequest(tableName);
// 创建rowChanges,设置要写入的数据。
List<RowChange> rowChanges = new ArrayList<RowChange>();
for (Integer i = Integer.valueOf(start); i <= Integer.valueOf(end); i++){
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("pk", PrimaryKeyValue.fromString(String.valueOf(i)));
PrimaryKey primaryKey = primaryKeyBuilder.build();
RowPutChange rowChange = new RowPutChange(tableName,primaryKey);
rowChange.addColumn(new Column("DC1", ColumnValue.fromString(i.toString())));
rowChange.addColumn(new Column("DC2", ColumnValue.fromString(i.toString())));
rowChange.addColumn(new Column("DC3", ColumnValue.fromString(i.toString())));
rowChanges.add(rowChange);
}
bulkImportRequest.addRowChanges(rowChanges);
// 获取bulkImportResponse。
BulkImportResponse bulkImportResponse = client.bulkImport(bulkImportRequest);
List<BulkImportResponse.RowResult> succeedRows = new ArrayList<BulkImportResponse.RowResult>();
List<BulkImportResponse.RowResult> failedRows = new ArrayList<BulkImportResponse.RowResult>();
bulkImportResponse.getResult(succeedRows, failedRows);
for (int i = 0; i < succeedRows.size(); i++){
System.out.println(succeedRows.get(i).getConsumedCapacity().getCapacityDataSize().jsonize());
}
for (int i = 0; i < failedRows.size(); i++){
System.out.println(failedRows.get(i).getError().getCode());
System.out.println(failedRows.get(i).getError().getMessage());
}
}
常见问题
相关文档
关于API的更多信息,请参见BulkImport。
关于功能接口实现的更多信息,请参见BulkImportRequest.java和BulkImportResponse.java。
写入数据后,您可以根据需要读取或者删除表中数据。
您还可以通过如下方式写入数据到数据表。