Após criar uma tabela de séries temporais, chame a operação PutTimeseriesData para gravar várias linhas de dados na tabela simultaneamente.
Pré-requisitos
Tabela de séries temporais criada. Para mais informações, consulte Criar uma tabela de séries temporais.
Instância TimeseriesClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Parâmetros
Uma linha de dados de séries temporais (timeseriesRow) contém um identificador de série temporal (timeseriesKey) e os dados da série. Esses dados incluem pontos de dados (fields) e o timestamp (timeInUs) correspondente. A tabela a seguir descreve os parâmetros.
|
Parâmetro |
Descrição |
|
timeseriesKey |
Identificador da série temporal. Inclui os seguintes parâmetros:
|
|
timeInUs |
Timestamp do ponto de dados. Unidade: microssegundos. |
|
fields |
Pontos de dados compostos por vários pares de nomes (FieldKey) e valores (FieldValue). |
Exemplos
O exemplo de código a seguir mostra como gravar várias linhas de dados em uma tabela de séries temporais chamada 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");
// Specify the measurement name, data source, and tags of a time series to construct the identifiers of the time series.
TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_" + i, tags);
// Specify the timeseriesKey and timeInUs parameters to create a row of time series data.
TimeseriesRow row = new TimeseriesRow(timeseriesKey, System.currentTimeMillis() * 1000 + i);
// Add data values.
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);
// Write multiple rows of time series data at the same time.
PutTimeseriesDataResponse putTimeseriesDataResponse = client.putTimeseriesData(putTimeseriesDataRequest);
// Check whether all data is written to the time series table.
if (!putTimeseriesDataResponse.isAllSuccess()) {
for (PutTimeseriesDataResponse.FailedRowResult failedRowResult : putTimeseriesDataResponse.getFailedRows()) {
System.out.println(failedRowResult.getIndex());
System.out.println(failedRowResult.getError());
}
}
}