Todos os produtos
Search
Central de documentação

Tablestore:Consultar dados de séries temporais

Última atualização: Jul 03, 2026

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

Parâmetros de GetTimeseriesDataRequest

  • timeseriesTableName (obrigatório) String: nome da tabela de séries temporais.

  • timeseriesKey (obrigatório) TimeseriesKey: identificadores da série temporal. A tabela a seguir descreve os parâmetros.

    Parâmetro

    Tipo

    Descrição

    measurementName (obrigatório)

    String

    Nome da métrica da série temporal.

    dataSource (obrigatório)

    String

    Fonte de dados da série temporal.

    tags (obrigatório)

    SortedMap<String, String>

    Tags da série temporal, organizadas como pares chave-valor.

  • beginTimeInUs (obrigatório) long: timestamp inicial em microssegundos. O valor deve ser maior ou igual a 0. O intervalo de consulta inclui este timestamp.

    • O intervalo de consulta inclui o timestamp inicial.

  • endTimeInUs (obrigatório) long: timestamp final em microssegundos. O valor deve ser maior que 0. O intervalo de consulta exclui este timestamp.

    • O intervalo de consulta exclui o timestamp final.

  • limit (opcional) int: número máximo de linhas retornadas por solicitação. Padrão: 5000. Valores válidos: (0,5000].

    • Se as linhas correspondentes excederem o limite, a resposta ainda poderá retornar menos linhas devido ao volume de dados verificados. Use o parâmetro nextToken para recuperar os dados restantes.

  • nextToken (opcional) byte[]: token de paginação usado para recuperar a próxima página de resultados. Vazio por padrão.

    • Mantenha nextToken vazio na primeira solicitação. Caso a resposta não inclua todos os dados correspondentes, o nextToken retornado não estará vazio. Passe-o nas solicitações subsequentes para paginar os resultados.

    • Para persistir ou transferir nextToken, codifique-o como uma string Base64. O token é binário e não uma string — usar new String(nextToken) diretamente corromperá o token.

  • backward (opcional) boolean: especifica se a leitura dos dados ocorre em ordem cronológica inversa. Padrão: false.

  • fieldsToGet (opcional) List<Pair<String, ColumnType>>: colunas de dados a retornar. Se não definido, todas as colunas de dados são retornadas.

    • Especifique o nome e o tipo de dados de cada coluna. Se o tipo especificado não corresponder ao tipo real, a leitura dessa coluna falhará.

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());
        });
    }

Perguntas frequentes