Use o Tablestore SDK for Java para ler o ponto de dados mais recente de cada série temporal em um índice Lastpoint por intervalo de chave primária.
Pré-requisitos
Instale o Tablestore SDK for Java e inicialize um cliente. Os índices Lastpoint exigem a versão 5.17.1 ou posterior. Recomendamos o uso da versão mais recente.
Descrição
Leia um índice Lastpoint como uma tabela de dados. Chame getRange e especifique um intervalo de chave primária para obter os pontos de dados mais recentes nesse intervalo. Para tabelas de séries temporais que usam os identificadores padrão, o índice Lastpoint contém as colunas de chave primária _#h, _m_name, _data_source e _tags, nesta ordem.
public GetRangeResponse getRange(GetRangeRequest getRangeRequest) throws TableStoreException, ClientException
O exemplo a seguir define os valores iniciais das quatro colunas de chave primária como INF_MIN e os valores finais como INF_MAX. Em seguida, lê todos os dados de example_lastpoint_index em várias 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 contém o seguinte parâmetro.
|
Nome |
Tipo |
Descrição |
|
rangeRowQueryCriteria (obrigatório) |
|
Critérios de leitura por intervalo. |
Critérios de leitura por intervalo
rangeRowQueryCriteria inclui os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
tableName (obrigatório) |
|
Nome do índice Lastpoint. |
|
inclusiveStartPrimaryKey (obrigatório) |
|
Chave primária inicial inclusiva. Especifique todas as colunas de chave primária na ordem definida no índice. |
|
exclusiveEndPrimaryKey (obrigatório) |
|
Chave primária final exclusiva. Especifique todas as colunas de chave primária na ordem definida no índice. |
|
maxVersions (obrigatório) |
|
Número máximo de versões a retornar por coluna. O índice Lastpoint retém apenas o valor mais recente de cada campo. Defina este parâmetro como |
|
columnsToGet (opcional) |
|
Colunas de atributo a retornar. Se não especificado, todas as colunas de atributo serão retornadas. |
|
direction (opcional) |
|
Direção da leitura. Valores válidos: |
|
limit (opcional) |
|
Número máximo de linhas a retornar por requisição. O valor deve ser maior que |
Resposta
GetRangeResponse contém os seguintes campos específicos da operação.
|
Campo |
Tipo |
Descrição |
|
|
|
Chame |
|
|
|
Chame |
Estrutura da linha Lastpoint
Para tabelas de séries temporais que usam os identificadores padrão, cada linha Lastpoint contém os seguintes campos.
|
Campo |
Tipo |
Descrição |
|
|
|
Chave de partição gerada pelo sistema para a série temporal. |
|
|
|
Nome da medição. |
|
|
|
Fonte de dados. |
|
|
|
Tags da série temporal. |
|
|
|
Timestamp do ponto de dados mais recente, em microssegundos. |
|
Campos de dados |
|
Campos e valores do ponto de dados mais recente. |