Gunakan Tablestore SDK for Java untuk mengkueri metadata deret waktu berdasarkan nama measurement, sumber data, tag, atribut, atau waktu pembaruan; menggabungkan kondisi; serta membagi hasil ke dalam halaman.
Prasyarat
Pasang Tablestore SDK for Java dan inisialisasi client deret waktu.
Deskripsi
Panggil queryTimeseriesMeta untuk mengkueri metadata deret waktu dalam tabel deret waktu. Jika tidak menentukan kondisi, semua metadata deret waktu akan dikembalikan. Jika menentukan kondisi, metadata akan difilter berdasarkan satu atau beberapa karakteristik deret waktu.
public QueryTimeseriesMetaResponse queryTimeseriesMeta(QueryTimeseriesMetaRequest request) throws TableStoreException, ClientException
Server secara asinkron membangun indeks metadata untuk deret waktu baru. Setelah menulis deret waktu baru, tunggu hingga indeks selesai dibangun sebelum mengkueri metadatanya.
Contoh berikut mengkueri metadata deret waktu yang memiliki nama measurement cpu dan nilai tag os yang diawali dengan Ubuntu pada example_timeseries_table.
CompositeMetaQueryCondition condition =
new CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND);
condition.addSubCondition(new MeasurementMetaQueryCondition(
MetaQuerySingleOperator.OP_EQUAL, "cpu"));
condition.addSubCondition(new TagMetaQueryCondition(
MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu"));
QueryTimeseriesMetaRequest request =
new QueryTimeseriesMetaRequest("example_timeseries_table");
request.setCondition(condition);
request.setGetTotalHits(true);
request.setLimit(100);
QueryTimeseriesMetaResponse response =
timeseriesClient.queryTimeseriesMeta(request);
System.out.println(response.getTotalHits());
for (TimeseriesMeta meta : response.getTimeseriesMetas()) {
System.out.println(meta);
}
Parameter
QueryTimeseriesMetaRequest berisi parameter berikut.
|
Nama |
Tipe |
Deskripsi |
|
timeseriesTableName (wajib) |
|
Nama tabel deret waktu. |
|
condition (opsional) |
|
Kondisi yang digunakan untuk mengkueri metadata deret waktu. Jika parameter ini tidak ditentukan, semua metadata deret waktu akan dikembalikan. |
|
getTotalHits (opsional) |
|
Menentukan apakah jumlah total entri metadata deret waktu yang sesuai harus dikembalikan. Nilai default: |
|
limit (opsional) |
|
Jumlah maksimum entri metadata deret waktu yang dikembalikan dalam satu permintaan. Hanya nilai positif yang berlaku. Jumlah aktual entri yang dikembalikan mungkin lebih sedikit dari nilai ini. |
|
nextToken (opsional) |
|
Token paginasi. Jangan tentukan parameter ini pada permintaan pertama. Jika |
condition dapat diatur ke salah satu tipe kondisi berikut. Kondisi string mendukung OP_EQUAL, OP_GREATER_THAN, OP_GREATER_EQUAL, OP_LESS_THAN, OP_LESS_EQUAL, dan OP_PREFIX. Kondisi waktu pembaruan tidak mendukung OP_PREFIX.
Kondisi komposit
Jika condition bertipe CompositeMetaQueryCondition, parameter berikut tersedia.
|
Nama |
Tipe |
Deskripsi |
|
operator (wajib) |
|
Operator logika. Nilai yang valid: |
|
subConditions (wajib) |
|
Daftar kondisi yang tidak kosong untuk digabungkan. Subkondisi juga dapat berupa kondisi komposit. |
Kondisi nama measurement
Jika condition bertipe MeasurementMetaQueryCondition, parameter berikut tersedia.
|
Nama |
Tipe |
Deskripsi |
|
operator (wajib) |
|
Operator kueri. |
|
value (wajib) |
|
Nama measurement yang sesuai. |
Kondisi sumber data
Jika condition bertipe DataSourceMetaQueryCondition, parameter berikut tersedia.
|
Nama |
Tipe |
Deskripsi |
|
operator (wajib) |
|
Operator kueri. |
|
value (wajib) |
|
Pengenal sumber data yang sesuai. |
Kondisi tag
Jika condition bertipe TagMetaQueryCondition, parameter berikut tersedia.
|
Nama |
Tipe |
Deskripsi |
|
operator (wajib) |
|
Operator kueri. |
|
tagName (wajib) |
|
Nama tag yang tidak kosong untuk dicocokkan. |
|
value (wajib) |
|
Nilai tag yang sesuai. |
Kondisi atribut
Jika condition bertipe AttributeMetaQueryCondition, parameter berikut tersedia.
|
Nama |
Tipe |
Deskripsi |
|
operator (wajib) |
|
Operator kueri. |
|
attributeName (wajib) |
|
Nama atribut yang tidak kosong untuk dicocokkan. |
|
value (wajib) |
|
Nilai atribut yang sesuai. |
Kondisi waktu pembaruan
Jika condition bertipe UpdateTimeMetaQueryCondition, parameter berikut tersedia.
|
Nama |
Tipe |
Deskripsi |
|
operator (wajib) |
|
Operator kueri. Nilai yang valid: |
|
timeInUs (wajib) |
|
Waktu pembaruan terakhir metadata, dalam mikrodetik sejak 1970-01-01 00:00:00 UTC. |
Respons
QueryTimeseriesMetaResponse berisi bidang spesifik operasi berikut.
|
Bidang |
Tipe |
Deskripsi |
|
|
|
Panggil |
|
|
|
Panggil |
|
|
|
Panggil |
Metadata deret waktu
Setiap elemen dalam timeseriesMetas[] bertipe TimeseriesMeta dan berisi bidang berikut.
|
Bidang |
Tipe |
Deskripsi |
|
|
|
Panggil |
|
|
|
Panggil |
|
|
|
Panggil |
Pengenal deret waktu
timeseriesMetas[].timeseriesKey bertipe TimeseriesKey dan berisi bidang berikut.
|
Bidang |
Tipe |
Deskripsi |
|
|
|
Panggil |
|
|
|
Panggil |
|
|
|
Panggil |
Contoh
Paginasi seluruh metadata
Jika nextToken dalam respons tidak null, teruskan token tersebut berulang kali hingga semua hasil dikembalikan.
List<TimeseriesMeta> allMetas = new ArrayList<>();
byte[] nextToken = null;
do {
request.setNextToken(nextToken);
QueryTimeseriesMetaResponse response =
timeseriesClient.queryTimeseriesMeta(request);
allMetas.addAll(response.getTimeseriesMetas());
nextToken = response.getNextToken();
} while (nextToken != null);