Gunakan Tablestore SDK untuk Java guna membaca satu baris dari tabel Model Kolom Lebar berdasarkan kunci primernya yang lengkap.
Prasyarat
Pasang Tablestore SDK untuk Java dan inisialisasi klien.
Deskripsi
Panggil metode getRow untuk membaca satu baris berdasarkan kunci primernya yang lengkap. Anda dapat menentukan kolom yang dikembalikan, rentang versi data, serta kondisi filter.
public GetRowResponse getRow(GetRowRequest getRowRequest) throws TableStoreException, ClientException
Tetapkan setidaknya salah satu dari parameter maxVersions atau timeRange. Jika tidak, server akan mengembalikan kesalahan parameter.
Contoh berikut membaca baris dengan kunci primer row1 dari tabel get_row_demo dan hanya mengembalikan versi terbaru dari setiap kolom.
String tableName = "get_row_demo";
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();
SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);
GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row: " + response.getRow());
Parameter
GetRowRequest mencakup parameter berikut.
|
Name |
Type |
Description |
|
rowQueryCriteria (required) |
|
Kriteria untuk membaca satu baris. |
|
transactionId (optional) |
|
ID transaksi lokal. Tetapkan parameter ini hanya saat Anda membaca data dalam transaksi lokal. |
Kriteria kueri satu baris
rowQueryCriteria bertipe SingleRowQueryCriteria dan mencakup parameter berikut.
|
Name |
Type |
Description |
|
tableName (required) |
|
Nama tabel. |
|
primaryKey (required) |
|
Kunci primer baris tersebut. Tentukan semua kolom kunci primer dalam urutan yang sama dan dengan tipe yang sesuai dengan skema tabel. Kolom kunci primer mendukung tipe |
|
maxVersions (optional) |
|
Jumlah maksimum versi data yang dikembalikan. Jika terdapat lebih banyak versi yang sesuai, Tablestore mengembalikan versi dari yang terbaru ke yang terlama. Tetapkan setidaknya salah satu dari |
|
timeRange (optional) |
|
Rentang versi data. Hanya versi dalam rentang tersebut yang dikembalikan. Tetapkan setidaknya salah satu dari |
|
columnsToGet (optional) |
|
Kolom yang akan dikembalikan. Jika Anda tidak menentukan parameter ini, seluruh baris dikembalikan. Jika Anda menentukannya dan baris tersebut tidak berisi kolom yang ditentukan, |
|
filter (optional) |
|
Kondisi filter. Jika Anda menentukan |
Respons
GetRowResponse mencakup bidang spesifik operasi berikut.
|
Field |
Type |
Description |
|
|
|
Baris yang dikueri, diperoleh dengan memanggil |
Contoh
Baca kolom atribut tertentu
Gunakan addColumnsToGet untuk menentukan nama kolom atribut yang akan dibaca. Hanya kolom tersebut yang dikembalikan.
String tableName = "get_row_demo";
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();
SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);
// Baca hanya col1 dan col2
criteria.addColumnsToGet("col1");
criteria.addColumnsToGet("col2");
GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (selected columns): " + response.getRow());
Baca berdasarkan rentang versi
Gunakan setTimeRange untuk menentukan rentang waktu versi. Hanya versi dalam rentang tersebut yang dikembalikan.
String tableName = "get_row_demo";
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();
SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
// Baca semua versi dari hari kemarin
long now = System.currentTimeMillis();
criteria.setTimeRange(new TimeRange(now - 86400 * 1000L, now));
criteria.setMaxVersions(Integer.MAX_VALUE);
GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (time range): " + response.getRow());
Baca dengan filter
Gunakan setFilter untuk mengatur filter nilai kolom. Tablestore hanya mengembalikan baris jika memenuhi kondisi filter.
String tableName = "get_row_demo";
PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();
SingleRowQueryCriteria criteria = new SingleRowQueryCriteria(tableName, primaryKey);
criteria.setMaxVersions(1);
// Kembalikan baris hanya jika col1 bernilai "val1"
SingleColumnValueFilter filter = new SingleColumnValueFilter(
"col1",
SingleColumnValueFilter.CompareOperator.EQUAL,
ColumnValue.fromString("val1"));
// Lewati baris jika kolom tidak ada
filter.setPassIfMissing(false);
criteria.setFilter(filter);
GetRowResponse response = client.getRow(new GetRowRequest(criteria));
System.out.println("Row (filtered): " + response.getRow());