Setelah membuat tabel deret waktu, Anda dapat memanggil operasi PutTimeseriesData untuk menulis beberapa baris data deret waktu ke tabel tersebut sekaligus.
Prasyarat
Tabel deret waktu telah dibuat. Untuk informasi lebih lanjut, lihat Buat tabel deret waktu.
Instansi TimeseriesClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Inisialisasi instansi OTSClient.
Parameter
Satu baris data deret waktu (timeseriesRow) mencakup pengenal deret waktu (timeseriesKey) dan data deret waktu. Data deret waktu mencakup titik data (fields) serta waktu (timeInUs) dari titik data tersebut. Tabel berikut menjelaskan parameter-parameter ini.
Parameter | Deskripsi |
timeseriesKey | Pengenal deret waktu. Pengenal ini mencakup parameter-parameter berikut:
|
timeInUs | Waktu dari titik data. Satuan: mikrodetik. |
fields | Titik data yang terdiri dari beberapa pasangan nama (FieldKey) dan nilai data (FieldValue). |
Contoh
Kode contoh berikut mengilustrasikan cara menulis beberapa baris data deret waktu ke tabel deret waktu bernama test_timeseries_table:
private static void putTimeseriesData(TimeseriesClient client) {
List<TimeseriesRow> rows = new ArrayList<TimeseriesRow>();
for (int i = 0; i < 10; i++) {
Map<String, String> tags = new HashMap<String, String>();
tags.put("region", "hangzhou");
tags.put("os", "Ubuntu16.04");
// Tentukan nama pengukuran, sumber data, dan tag dari deret waktu untuk membangun pengenal deret waktu.
TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_" + i, tags);
// Tentukan parameter timeseriesKey dan timeInUs untuk membuat satu baris data deret waktu.
TimeseriesRow row = new TimeseriesRow(timeseriesKey, System.currentTimeMillis() * 1000 + i);
// Tambahkan nilai data.
row.addField("cpu_usage", ColumnValue.fromDouble(10.0));
row.addField("cpu_sys", ColumnValue.fromDouble(5.0));
rows.add(row);
}
String tableName = "test_timeseries_table";
PutTimeseriesDataRequest putTimeseriesDataRequest = new PutTimeseriesDataRequest(tableName);
putTimeseriesDataRequest.setRows(rows);
// Tulis beberapa baris data deret waktu secara bersamaan.
PutTimeseriesDataResponse putTimeseriesDataResponse = client.putTimeseriesData(putTimeseriesDataRequest);
// Periksa apakah semua data telah ditulis ke tabel deret waktu.
if (!putTimeseriesDataResponse.isAllSuccess()) {
for (PutTimeseriesDataResponse.FailedRowResult failedRowResult : putTimeseriesDataResponse.getFailedRows()) {
System.out.println(failedRowResult.getIndex());
System.out.println(failedRowResult.getError());
}
}
}