Tous les produits
Search
Centre de documentation

Tablestore:Interroger des données de séries temporelles

Dernière mise à jour :Aug 18, 2026

Utilisez le SDK Tablestore pour Java pour interroger les données d'une série temporelle sur une plage horaire donnée, trier les résultats par horodatage, sélectionner les champs à renvoyer et paginer les résultats.

Prérequis

Installez le SDK Tablestore pour Java et initialisez un client de séries temporelles.

Description

Appelez la méthode getTimeseriesData pour récupérer les points de données d'une seule série temporelle en spécifiant ses identifiants complets ainsi qu'une plage horaire. Cette plage inclut l'heure de début mais exclut l'heure de fin.

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

Les données écrites via l'appel à putTimeseriesData sont immédiatement disponibles pour interrogation avec getTimeseriesData.

L'exemple suivant interroge les données générées au cours de la dernière heure pour la série temporelle cpu dans la table example_timeseries_table et renvoie jusqu'à 20 lignes par requête.

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

Paramètres

L'objet GetTimeseriesDataRequest accepte les paramètres suivants.

Nom

Type

Description

timeseriesTableName (obligatoire)

String

Nom de la table de séries temporelles.

timeseriesKey (obligatoire)

TimeseriesKey

Identifiants complets de la série temporelle à interroger. Les valeurs doivent correspondre exactement à celles utilisées lors de l'écriture des données.

beginTimeInUs (obligatoire)

long

Heure de début de la plage d'interrogation, exprimée en microsecondes depuis le 01/01/1970 00:00:00 UTC. La valeur doit être supérieure ou égale à 0. Cette borne est incluse dans la plage.

endTimeInUs (obligatoire)

long

Heure de fin de la plage d'interrogation, en microsecondes. La valeur doit être strictement supérieure à 0. Cette borne est exclue de la plage.

limit (facultatif)

int

Nombre maximal de lignes renvoyées par requête. Valeur par défaut et maximale : 5000. Le nombre réel de lignes peut être inférieur en raison des limites imposées sur le volume de données analysées. Utilisez le paramètre nextToken pour récupérer les données restantes.

nextToken (facultatif)

byte[]

Jeton de pagination. Ne spécifiez pas ce paramètre lors de la première requête. Si le champ nextToken de la réponse n'est pas vide, transmettez-le à la requête suivante. Ce jeton constitue des données binaires ; encodez-le en Base64 si vous devez le persister ou le transférer. Évitez toute conversion via new String(nextToken).

backward (facultatif)

boolean

Indique si les données doivent être renvoyées dans l'ordre chronologique inverse. Par défaut : false, ce qui correspond à un ordre chronologique croissant.

fieldsToGet (facultatif)

List<Pair<String, ColumnType>>

Noms et types des champs de données à renvoyer. En l'absence de spécification, tous les champs sont retournés. La lecture d'un champ échoue si le type de données indiqué diffère du type réel.

Identifiants de série temporelle

Le paramètre timeseriesKey est de type TimeseriesKey et comprend les attributs suivants.

Nom

Type

Description

measurementName (obligatoire)

String

Nom de la mesure. Si une valeur vide a été utilisée lors de l'écriture, spécifiez également une valeur vide pour l'interrogation.

dataSource (facultatif)

String

Identifiant de la source de données. Si une valeur vide a été utilisée lors de l'écriture, spécifiez également une valeur vide pour l'interrogation.

tags (facultatif)

SortedMap<String, String>

Tags sous forme de paires clé-valeur de type chaîne. L'ensemble des tags doit correspondre exactement à celui utilisé lors de l'écriture des données.

Réponse

L'objet GetTimeseriesDataResponse contient les champs spécifiques à cette opération.

Champ

Type

Description

rows

List<TimeseriesRow>

Appelez getRows() pour obtenir les lignes renvoyées par la requête actuelle.

nextToken

byte[]

Appelez getNextToken() pour récupérer le jeton de la page suivante. Une valeur null indique que toutes les données de la plage d'interrogation ont été retournées.

Lignes de données de série temporelle

Chaque élément du tableau rows[] est de type TimeseriesRow et comprend les champs suivants.

Champ

Type

Description

timeseriesKey

TimeseriesKey

Appelez getTimeseriesKey() pour obtenir les identifiants de la série temporelle.

timeInUs

long

Appelez getTimeInUs() pour obtenir l'horodatage du point de données en microsecondes.

fields

SortedMap<String, ColumnValue>

Appelez getFields() pour obtenir les champs de données.

Exemples

Paginer l'ensemble des résultats

Si une requête ne renvoie pas la totalité des données, transmettez itérativement le paramètre nextToken issu de la réponse jusqu'à ce que la valeur retournée soit 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);