Gunakan Tablestore SDK untuk Java untuk membaca titik data terbaru dari setiap deret waktu dalam indeks Lastpoint berdasarkan rentang kunci primer.
Prasyarat
Instal Tablestore SDK untuk Java dan inisialisasi klien. Indeks Lastpoint memerlukan versi 5.17.1 atau lebih baru. Disarankan untuk menggunakan versi terbaru.
Deskripsi
Indeks Lastpoint dapat dibaca sebagai tabel data. Panggil metode getRange dan tentukan rentang kunci primer untuk membaca titik data terbaru dalam rentang tersebut. Untuk tabel deret waktu yang menggunakan pengenal deret waktu bawaan, indeks Lastpoint mencakup kolom kunci primer _#h, _m_name, _data_source, dan _tags dalam urutan ini.
public GetRangeResponse getRange(GetRangeRequest getRangeRequest) throws TableStoreException, ClientException
Contoh berikut mengatur nilai awal keempat kolom kunci primer ke INF_MIN dan nilai akhir ke INF_MAX, lalu membaca seluruh data dari example_lastpoint_index secara bertahap melalui beberapa halaman.
RangeRowQueryCriteria criteria =
new RangeRowQueryCriteria("example_lastpoint_index");
PrimaryKey startPrimaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
.addPrimaryKeyColumn("_#h", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_m_name", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_data_source", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_tags", PrimaryKeyValue.INF_MIN)
.build();
PrimaryKey endPrimaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
.addPrimaryKeyColumn("_#h", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_m_name", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_data_source", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_tags", PrimaryKeyValue.INF_MAX)
.build();
criteria.setInclusiveStartPrimaryKey(startPrimaryKey);
criteria.setExclusiveEndPrimaryKey(endPrimaryKey);
criteria.setMaxVersions(1);
while (true) {
GetRangeResponse response =
client.getRange(new GetRangeRequest(criteria));
response.getRows().forEach(System.out::println);
if (response.getNextStartPrimaryKey() == null) {
break;
}
criteria.setInclusiveStartPrimaryKey(
response.getNextStartPrimaryKey());
}
Parameter
GetRangeRequest mencakup parameter berikut.
|
Nama |
Type |
Deskripsi |
|
rangeRowQueryCriteria (wajib) |
|
Kriteria pembacaan rentang. |
Kriteria pembacaan rentang
rangeRowQueryCriteria mencakup parameter berikut.
|
Nama |
Tipe |
Deskripsi |
|
tableName (wajib) |
|
Nama indeks Lastpoint. |
|
inclusiveStartPrimaryKey (wajib) |
|
Kunci primer awal inklusif. Tentukan semua kolom kunci primer sesuai urutan yang ditentukan dalam indeks. |
|
exclusiveEndPrimaryKey (wajib) |
|
Kunci primer akhir eksklusif. Tentukan semua kolom kunci primer sesuai urutan yang ditentukan dalam indeks. |
|
maxVersions (wajib) |
|
Jumlah maksimum versi yang dikembalikan untuk setiap kolom. Indeks Lastpoint hanya menyimpan nilai terbaru dari setiap bidang. Atur parameter ini ke |
|
columnsToGet (opsional) |
|
Kolom atribut yang akan dikembalikan. Jika parameter ini tidak ditentukan, semua kolom atribut akan dikembalikan. |
|
direction (opsional) |
|
Arah pembacaan. Nilai yang valid: |
|
limit (opsional) |
|
Jumlah maksimum baris yang dikembalikan dalam satu permintaan. Nilainya harus lebih besar dari |
Respons
GetRangeResponse mencakup bidang spesifik operasi berikut.
|
Bidang |
Tipe |
Deskripsi |
|
|
|
Panggil |
|
|
|
Panggil |
Skema baris Lastpoint
Untuk tabel deret waktu yang menggunakan pengenal deret waktu bawaan, setiap baris Lastpoint mencakup bidang berikut.
|
Bidang |
Type |
Deskripsi |
|
|
|
Kunci partisi yang dihasilkan sistem untuk deret waktu. |
|
|
|
Nama ukuran. |
|
|
|
Sumber data. |
|
|
|
Tag deret waktu. |
|
|
|
Timestamp dari titik data terbaru, dalam mikrodetik. |
|
Bidang data |
|
Bidang data beserta nilainya pada titik data terbaru. |