Consulte dados de séries temporais que atendam a condições específicas em uma tabela de séries temporais com o Tablestore SDK for Java.
Pré-requisitos
Inicialize um cliente. Para mais informações, consulte Inicializar um cliente Tablestore.
Método
public GetTimeseriesDataResponse getTimeseriesData(GetTimeseriesDataRequest request) throws TableStoreException, ClientException
Código de exemplo
O exemplo a seguir consulta dados de séries temporais em uma tabela chamada timeseries_table_sample:
private static void getTimeseriesData(TimeseriesClient client) {
String tableName = "timeseries_table_sample";
GetTimeseriesDataRequest getTimeseriesDataRequest = new GetTimeseriesDataRequest(tableName);
// Specify the time series identifiers. In this example, the metric name is cpu, the data source is host_0, and the tags are "region=hangzhou" and "os=Ubuntu16.04".
Map<String, String> tags = new HashMap<String, String>();
tags.put("region", "hangzhou");
tags.put("os", "Ubuntu16.04");
TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_0", tags);
getTimeseriesDataRequest.setTimeseriesKey(timeseriesKey);
// Specify the time range.
getTimeseriesDataRequest.setTimeRange(0, (System.currentTimeMillis() + 60 * 1000) * 1000);
getTimeseriesDataRequest.setLimit(20);
// Query time series data.
GetTimeseriesDataResponse getTimeseriesDataResponse = client.getTimeseriesData(getTimeseriesDataRequest);
// Print the query results.
getTimeseriesDataResponse.getRows().forEach(row -> {
System.out.println("TimeseriesKey: " + row.getTimeseriesKey() + "; TimeInUs: " + row.getTimeInUs() + "; Fields: " + row.getFields());
});
}
Você também pode definir as seguintes configurações opcionais:
-
Definir o número máximo de linhas por solicitação
getTimeseriesDataRequest.setLimit(20); -
Ler dados em ordem cronológica inversa
// Read data in reverse chronological order to get the latest data of a time series. getTimeseriesDataRequest.setBackward(true); -
Especificar as colunas de dados a retornar
getTimeseriesDataRequest.addFieldToGet("col_string", ColumnType.STRING); getTimeseriesDataRequest.addFieldToGet("col_long", ColumnType.INTEGER); getTimeseriesDataRequest.addFieldToGet("col_double", ColumnType.DOUBLE); -
Paginar resultados com o parâmetro
nextToken// If nextToken is not null, more data is available. if (getTimeseriesDataResponse.getNextToken() != null) { // Get the nextToken value. byte[] nextToken = getTimeseriesDataResponse.getNextToken(); /* // To persist or transfer nextToken, encode it as a Base64 string. String tokenAsString = Base64.toBase64String(nextToken); // Decode the string back to byte[]. byte[] tokenAsByte = Base64.fromBase64String(tokenAsString); */ // Pass nextToken to retrieve the next page. getTimeseriesDataRequest.setNextToken(nextToken); // Query time series data. getTimeseriesDataResponse = client.getTimeseriesData(getTimeseriesDataRequest); // Print the query results. getTimeseriesDataResponse.getRows().forEach(row -> { System.out.println("TimeseriesKey: " + row.getTimeseriesKey() + "; TimeInUs: " + row.getTimeInUs() + "; Fields: " + row.getFields()); }); }