Todos os produtos
Search
Central de documentação

Tablestore:Query time series data

Última atualização: Aug 03, 2026

Use o Tablestore SDK for Java para consultar dados de uma série temporal em um intervalo de tempo, ordenar os resultados por tempo, selecione os campos de retorno e paginar as respostas.

Pré-requisitos

Instale o Tablestore SDK for Java e inicialize um cliente de séries temporais.

Descrição

Chame getTimeseriesData para consultar pontos de dados de uma única série temporal. Especifique os identificadores completos da série e um intervalo de tempo. O intervalo inclui o horário inicial e exclui o horário final.

public GetTimeseriesDataResponse getTimeseriesData(GetTimeseriesDataRequest request) throws TableStoreException, ClientException
Nota

É possível consultar imediatamente, com getTimeseriesData, os dados gravados por putTimeseriesData.

O exemplo a seguir consulta dados gerados na última hora da série temporal cpu em example_timeseries_table e retorna até 20 linhas por solicitação.

TimeseriesClient timeseriesClient = client.asTimeseriesClient();

Map<String, String> tags = new HashMap<>();
tags.put("region", "cn-hangzhou");
tags.put("host", "host_0");
TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "source_0", tags);

long endTimeInUs = System.currentTimeMillis() * 1000L;
long beginTimeInUs = endTimeInUs - 3600L * 1000L * 1000L;
GetTimeseriesDataRequest request =
        new GetTimeseriesDataRequest("example_timeseries_table");
request.setTimeseriesKey(timeseriesKey);
request.setTimeRange(beginTimeInUs, endTimeInUs);
request.setLimit(20);

GetTimeseriesDataResponse response = timeseriesClient.getTimeseriesData(request);
for (TimeseriesRow row : response.getRows()) {
    System.out.println(row.getTimeInUs());
    System.out.println(row.getFields());
}

Parâmetros

GetTimeseriesDataRequest contém os seguintes parâmetros:

Nome

Tipo

Descrição

timeseriesTableName (obrigatório)

String

Nome da tabela de séries temporais.

timeseriesKey (obrigatório)

TimeseriesKey

Identificadores completos da série temporal a consultar. Os valores devem ser idênticos aos usados na gravação dos dados.

beginTimeInUs (obrigatório)

long

Horário inicial do intervalo de consulta, em microssegundos desde 1970-01-01 00:00:00 UTC. O valor deve ser maior ou igual a 0. O intervalo inclui este horário.

endTimeInUs (obrigatório)

long

Horário final do intervalo de consulta, em microssegundos. O valor deve ser maior que 0. O intervalo exclui este horário.

limit (opcional)

int

Número máximo de linhas a retornar por solicitação. Valor padrão e máximo: 5000. A quantidade real de linhas pode ser menor devido a limites no volume de dados verificados. Use nextToken para recuperar os dados restantes.

nextToken (opcional)

byte[]

Token de paginação. Não especifique este parâmetro na primeira solicitação. Se nextToken na resposta não estiver vazio, passe-o para a próxima solicitação. O token consiste em dados binários. Para persisti-lo ou transferi-lo, codifique-o em Base64. Não o converta chamando new String(nextToken).

backward (opcional)

boolean

Defina se os dados retornam em ordem cronológica inversa. Padrão: false (retorna os dados em ordem cronológica normal).

fieldsToGet (opcional)

List<Pair<String, ColumnType>>

Nomes e tipos dos campos de dados a retornar. Se este parâmetro não for especificado, todos os campos serão retornados. Um campo não poderá ser lido se o tipo de dado especificado diferir do tipo real.

Identificadores de séries temporais

timeseriesKey é do tipo TimeseriesKey e contém os seguintes parâmetros:

Nome

Tipo

Descrição

measurementName (obrigatório)

String

Nome da medição. Se um valor vazio foi usado na gravação dos dados, use também um valor vazio na consulta.

dataSource (opcional)

String

Identificador da fonte de dados. Caso a gravação tenha sido feita com valor vazio, use valor vazio na consulta.

tags (opcional)

SortedMap<String, String>

Tags como pares chave-valor do tipo string. O conjunto de tags deve corresponder exatamente ao usado na gravação dos dados.

Resposta

GetTimeseriesDataResponse contém os seguintes campos específicos da operação:

Campo

Tipo

Descrição

rows

List<TimeseriesRow>

Chame getRows() para obter as linhas retornadas pela solicitação atual.

nextToken

byte[]

Chame getNextToken() para obter o token da próxima página. Um valor null indica que todos os dados do intervalo de consulta foram retornados.

Linhas de dados de séries temporais

Cada elemento em rows[] é do tipo TimeseriesRow e contém os seguintes campos:

Campo

Tipo

Descrição

timeseriesKey

TimeseriesKey

Chame getTimeseriesKey() para obter os identificadores da série temporal.

timeInUs

long

Chame getTimeInUs() para obter o timestamp do ponto de dados em microssegundos.

fields

SortedMap<String, ColumnValue>

Chame getFields() para obter os campos de dados.

Exemplos

Paginar todos os resultados

Se uma solicitação não retornar todos os dados, passe repetidamente o nextToken da resposta até que o valor retornado seja null.

byte[] nextToken = null;
do {
    request.setNextToken(nextToken);
    GetTimeseriesDataResponse response =
            timeseriesClient.getTimeseriesData(request);

    for (TimeseriesRow row : response.getRows()) {
        System.out.println(row.getTimeInUs());
        System.out.println(row.getFields());
    }
    nextToken = response.getNextToken();
} while (nextToken != null);