Topik ini menjelaskan cara membaca beberapa baris data dari Tablestore menggunakan SDK Java. Anda dapat menanyakan data dari beberapa tabel.
Catatan penggunaan
Anda dapat membaca maksimal 100 baris data dalam satu operasi pembacaan batch.
Prasyarat
Klien telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi klien Tablestore.
Metode
public BatchGetRowResponse batchGetRow(BatchGetRowRequest batchGetRowRequest) throws TableStoreException, ClientExceptionKode contoh
Contoh kode berikut membaca dua baris data dengan nilai primary key row1 dan row2 dari tabel test_table.
public static void batchGetRowExample(SyncClient client) {
// Konstruksi kondisi query.
MultiRowQueryCriteria multiRowQueryCriteria = new MultiRowQueryCriteria("test_table");
// Tambahkan informasi primary key untuk baris pertama.
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
multiRowQueryCriteria.addRow(primaryKeyBuilder.build());
// Tambahkan informasi primary key untuk baris kedua.
primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row2"));
multiRowQueryCriteria.addRow(primaryKeyBuilder.build());
// Tentukan versi yang akan diquery.
multiRowQueryCriteria.setMaxVersions(1);
// Panggil metode batchGetRow untuk melakukan query data batch.
BatchGetRowRequest batchGetRowRequest = new BatchGetRowRequest();
batchGetRowRequest.addMultiRowQueryCriteria(multiRowQueryCriteria);
BatchGetRowResponse batchGetRowResponse = client.batchGetRow(batchGetRowRequest);
// Kembalikan hasil.
System.out.println("* RequestId: " + batchGetRowResponse.getRequestId());
System.out.println("* Apakah semua berhasil: " + batchGetRowResponse.isAllSucceed());
// Cetak baris yang berhasil dibaca.
System.out.println("* Baris yang berhasil: ");
for(BatchGetRowResponse.RowResult rowResult:batchGetRowResponse.getSucceedRows())
System.out.println(rowResult.getRow());
// Cetak baris yang gagal dibaca.
if(!batchGetRowResponse.isAllSucceed()) {
System.out.println("* Baris yang gagal: ");
for(BatchGetRowResponse.RowResult rowResult:batchGetRowResponse.getFailedRows())
System.out.println(rowResult.getTableName() + " | " + batchGetRowRequest.getPrimaryKey(rowResult.getTableName(), rowResult.getIndex()) + " | " + rowResult.getError());
}
}Anda dapat merujuk pada contoh kode berikut untuk mengonfigurasi parameter saat membaca data dalam batch.
Baca data dari beberapa tabel. Anda dapat membaca data dari beberapa tabel sekaligus dalam operasi pembacaan batch. Tentukan objek MultiRowQueryCriteria untuk setiap tabel.
// Konstruksi kondisi query untuk tabel kedua. MultiRowQueryCriteria multiRowQueryCriteria1 = new MultiRowQueryCriteria("orders_small"); // Tambahkan informasi primary key untuk baris pertama. primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder(); primaryKeyBuilder.addPrimaryKeyColumn("order_id", PrimaryKeyValue.fromString("90fb478c-1360-11f0-a34d-00163e30a2a9")); multiRowQueryCriteria1.addRow(primaryKeyBuilder.build()); // Tentukan versi yang akan diquery. multiRowQueryCriteria1.setMaxVersions(1); // Tambahkan MultiRowQueryCriteria ke permintaan. batchGetRowRequest.addMultiRowQueryCriteria(multiRowQueryCriteria1);Tentukan rentang versi yang akan dibaca. Hanya data dalam rentang versi tersebut yang akan dikembalikan.
// Tentukan rentang versi untuk membaca data dari satu hari yang lalu hingga waktu saat ini. multiRowQueryCriteria.setTimeRange(new TimeRange(System.currentTimeMillis() - 86400*1000, System.currentTimeMillis()));Tentukan kolom atribut yang akan dibaca.
multiRowQueryCriteria.addColumnsToGet("col1");