Use Tablestore SDK for Java para leer el punto de datos más reciente de cada serie temporal desde un índice Lastpoint mediante un rango de clave principal.
Requisitos previos
Instale Tablestore SDK for Java e inicialice un cliente. Los índices Lastpoint requieren la versión 5.17.1 o posterior. Se recomienda usar la versión más reciente.
Descripción
Un índice Lastpoint puede leerse como una tabla de datos. Llame a getRange y especifique un rango de clave principal para leer los puntos de datos más recientes dentro de dicho rango. En una tabla de series temporales que usa los identificadores predeterminados, el índice Lastpoint contiene las columnas de clave principal _#h, _m_name, _data_source y _tags en ese orden.
public GetRangeResponse getRange(GetRangeRequest getRangeRequest) throws TableStoreException, ClientException
A continuación se establecen los valores iniciales de las cuatro columnas de clave principal en INF_MIN y los valores finales en INF_MAX. Posteriormente, se leen todos los datos de example_lastpoint_index en varias páginas.
RangeRowQueryCriteria criteria =
new RangeRowQueryCriteria("example_lastpoint_index");
PrimaryKey startPrimaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
.addPrimaryKeyColumn("_#h", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_m_name", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_data_source", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_tags", PrimaryKeyValue.INF_MIN)
.build();
PrimaryKey endPrimaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
.addPrimaryKeyColumn("_#h", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_m_name", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_data_source", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_tags", PrimaryKeyValue.INF_MAX)
.build();
criteria.setInclusiveStartPrimaryKey(startPrimaryKey);
criteria.setExclusiveEndPrimaryKey(endPrimaryKey);
criteria.setMaxVersions(1);
while (true) {
GetRangeResponse response =
client.getRange(new GetRangeRequest(criteria));
response.getRows().forEach(System.out::println);
if (response.getNextStartPrimaryKey() == null) {
break;
}
criteria.setInclusiveStartPrimaryKey(
response.getNextStartPrimaryKey());
}
Parámetros
GetRangeRequest contiene el siguiente parámetro.
|
Nombre |
Tipo |
Descripción |
|
rangeRowQueryCriteria (obligatorio) |
|
Criterios de lectura por rango. |
Criterios de lectura por rango
rangeRowQueryCriteria contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
tableName (obligatorio) |
|
Nombre del índice Lastpoint. |
|
inclusiveStartPrimaryKey (obligatorio) |
|
Clave principal de inicio inclusiva. Especifique todas las columnas de clave principal en el orden definido en el índice. |
|
exclusiveEndPrimaryKey (obligatorio) |
|
Clave principal final exclusiva. Especifique todas las columnas de clave principal en el orden definido en el índice. |
|
maxVersions (obligatorio) |
|
Número máximo de versiones por devolver por columna. Un índice Lastpoint conserva solo el valor más reciente de cada campo. Establezca este parámetro en |
|
columnsToGet (opcional) |
|
Columnas de atributos por devolver. Si no se especifica este parámetro, se devuelven todas las columnas de atributos. |
|
direction (opcional) |
|
Dirección de lectura. Valores válidos: |
|
limit (opcional) |
|
Número máximo de filas por devolver en una solicitud. El valor debe ser mayor que |
Respuesta
GetRangeResponse contiene los siguientes campos específicos de la operación.
|
Campo |
Tipo |
Descripción |
|
|
|
Llame a |
|
|
|
Llame a |
Esquema de fila Lastpoint
En una tabla de series temporales que usa los identificadores predeterminados, cada fila Lastpoint contiene los siguientes campos.
|
Campo |
Tipo |
Descripción |
|
|
|
Clave de partición generada por el sistema para la serie temporal. |
|
|
|
Nombre de la medición. |
|
|
|
Origen de los datos. |
|
|
|
Etiquetas de la serie temporal. |
|
|
|
Marca de tiempo del punto de datos más reciente, en microsegundos. |
|
Campos de datos |
|
Campos y valores de datos en el punto de datos más reciente. |