Anda dapat menulis beberapa baris data ke tabel data sekaligus dalam skenario data besar. Untuk menulis data ke tabel data, Anda harus menentukan informasi kunci utama lengkap dan kolom atribut yang ingin ditambahkan, dihapus, atau diubah.
Prasyarat
Klien telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Tabel data telah dibuat. Untuk informasi lebih lanjut, lihat Buat tabel data.
Parameter
Parameter | Deskripsi |
tableName | Nama tabel data. |
rowChanges | Daftar RowChanges. Setiap RowChange menentukan satu baris yang ingin Anda tulis ke tabel data. |
Contoh
Berikut adalah contoh kode untuk menulis beberapa baris data ke tabel data sekaligus:
private static void bulkImport(SyncClient client, String start, String end){
// Buat bulkImportRequest.
// Tentukan nama tabel data.
String tableName = "<TABLE_NAME>";
BulkImportRequest bulkImportRequest = new BulkImportRequest(tableName);
// Buat rowChanges untuk menentukan data yang ingin Anda tulis ke tabel data.
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);
// Dapatkan 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());
}
}