Use o Tablestore SDK for Java para consultar metadados de séries temporais por nome da medição, fonte de dados, tag, atributo ou horário de atualização. Combine condições e pagine os resultados.
Pré-requisitos
Instale o Tablestore SDK for Java e inicialize um cliente de séries temporais.
Descrição
Chame queryTimeseriesMeta para consultar metadados em uma tabela de séries temporais. Sem a especificação de condições, o sistema retorna todos os metadados. Ao definir uma condição, a filtragem ocorre com base em uma ou mais características da série temporal.
public QueryTimeseriesMetaResponse queryTimeseriesMeta(QueryTimeseriesMetaRequest request) throws TableStoreException, ClientException
O servidor cria índices de metadados de forma assíncrona para novas séries temporais. Após gravar uma nova série temporal, aguarde a criação do índice antes de consultar seus metadados.
O exemplo a seguir consulta metadados de séries temporais na tabela example_timeseries_table cujo nome da medição é cpu e o valor da tag os começa com Ubuntu.
CompositeMetaQueryCondition condition =
new CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND);
condition.addSubCondition(new MeasurementMetaQueryCondition(
MetaQuerySingleOperator.OP_EQUAL, "cpu"));
condition.addSubCondition(new TagMetaQueryCondition(
MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu"));
QueryTimeseriesMetaRequest request =
new QueryTimeseriesMetaRequest("example_timeseries_table");
request.setCondition(condition);
request.setGetTotalHits(true);
request.setLimit(100);
QueryTimeseriesMetaResponse response =
timeseriesClient.queryTimeseriesMeta(request);
System.out.println(response.getTotalHits());
for (TimeseriesMeta meta : response.getTimeseriesMetas()) {
System.out.println(meta);
}
Parâmetros
QueryTimeseriesMetaRequest contém os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
timeseriesTableName (obrigatório) |
|
Nome da tabela de séries temporais. |
|
condition (opcional) |
|
Condição para consultar metadados de séries temporais. Sem este parâmetro, o sistema retorna todos os metadados. |
|
getTotalHits (opcional) |
|
Defina se o sistema deve retornar o número total de entradas de metadados correspondentes. Padrão: |
|
limit (opcional) |
|
Número máximo de entradas de metadados a retornar por requisição. Apenas valores positivos têm efeito. A quantidade real de entradas retornadas pode ser inferior a este valor. |
|
nextToken (opcional) |
|
Token de paginação. Não especifique este parâmetro na primeira requisição. Se |
Defina condition como um dos seguintes tipos de condição. Condições de string aceitam OP_EQUAL, OP_GREATER_THAN, OP_GREATER_EQUAL, OP_LESS_THAN, OP_LESS_EQUAL e OP_PREFIX. Condições de tempo de atualização não aceitam OP_PREFIX.
Condição composta
Se condition for do tipo CompositeMetaQueryCondition, ela conterá os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
operator (obrigatório) |
|
Operador lógico. Valores válidos: |
|
subConditions (obrigatório) |
|
Lista não vazia de condições a combinar. Uma subcondição também pode ser uma condição composta. |
Condição de nome da medição
Se condition for do tipo MeasurementMetaQueryCondition, ela conterá os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
operator (obrigatório) |
|
Operador de consulta. |
|
value (obrigatório) |
|
Nome da medição a corresponder. |
Condição de fonte de dados
Se condition for do tipo DataSourceMetaQueryCondition, ela conterá os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
operator (obrigatório) |
|
Operador de consulta. |
|
value (obrigatório) |
|
Identificador da fonte de dados a corresponder. |
Condição de tag
Se condition for do tipo TagMetaQueryCondition, ela conterá os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
operator (obrigatório) |
|
Operador de consulta. |
|
tagName (obrigatório) |
|
Nome da tag não vazio a corresponder. |
|
value (obrigatório) |
|
Valor da tag a corresponder. |
Condição de atributo
Se condition for do tipo AttributeMetaQueryCondition, ela conterá os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
operator (obrigatório) |
|
Operador de consulta. |
|
attributeName (obrigatório) |
|
Nome do atributo não vazio a corresponder. |
|
value (obrigatório) |
|
Valor do atributo a corresponder. |
Condição de tempo de atualização
Se condition for do tipo UpdateTimeMetaQueryCondition, ela conterá os seguintes parâmetros:
|
Nome |
Tipo |
Descrição |
|
operator (obrigatório) |
|
Operador de consulta. Valores válidos: |
|
timeInUs (obrigatório) |
|
Última atualização dos metadados, em microssegundos desde 1970-01-01 00:00:00 UTC. |
Resposta
QueryTimeseriesMetaResponse inclui os seguintes campos específicos da operação:
|
Campo |
Tipo |
Descrição |
|
|
|
Chame |
|
|
|
Chame |
|
|
|
Chame |
Metadados de séries temporais
Cada elemento em timeseriesMetas[] é do tipo TimeseriesMeta e contém os seguintes campos:
|
Campo |
Tipo |
Descrição |
|
|
|
Chame |
|
|
|
Chame |
|
|
|
Chame |
Identificadores de séries temporais
timeseriesMetas[].timeseriesKey é do tipo TimeseriesKey e contém os seguintes campos:
|
Campo |
Tipo |
Descrição |
|
|
|
Chame |
|
|
|
Chame |
|
|
|
Chame |
Exemplos
Paginar todos os metadados
Se nextToken na resposta não for null, passe o token repetidamente até obter todos os resultados.
List<TimeseriesMeta> allMetas = new ArrayList<>();
byte[] nextToken = null;
do {
request.setNextToken(nextToken);
QueryTimeseriesMetaResponse response =
timeseriesClient.queryTimeseriesMeta(request);
allMetas.addAll(response.getTimeseriesMetas());
nextToken = response.getNextToken();
} while (nextToken != null);