Chame QueryTimeseriesMeta para pesquisar séries temporais em uma tabela de séries temporais. Filtre por nome da métrica, fonte de dados, tag, atributo ou hora de atualização para recuperar exatamente as séries temporais necessárias.
Para obter a especificação completa da API, consulte QueryTimeseriesMeta.
Pré-requisitos
Inicialize um cliente. Para mais informações, consulte Inicializar um cliente Tablestore.
Definição de classe
QueryTimeseriesMetaRequest aceita o nome da tabela de séries temporais e uma condição de consulta opcional. Use setCondition para filtrar resultados, setGetTotalHits para incluir a contagem de séries temporais correspondentes e setLimit para definir o tamanho da página. Utilize NextToken para paginar os resultados.
public class QueryTimeseriesMetaRequest implements Request {
/** The name of the time series table. */
private final String timeseriesTableName;
/** The query conditions.*/
private MetaQueryCondition condition;
/** Specifies whether to return the total number of time series that meet the query conditions. */
private boolean getTotalHits = false;
/** The number of time series to return at a time. */
private int limit = -1;
/** The token that is used in the next request to query time series. */
private byte[] nextToken;
}
As classes a seguir implementam MetaQueryCondition e definem os tipos de condição de consulta compatíveis.
CompositeMetaQueryCondition
Combine várias condições com os operadores lógicos AND, OR ou NOT.
public class CompositeMetaQueryCondition implements MetaQueryCondition {
/** The logical operator. */
private final MetaQueryCompositeOperator operator;
/** The list of subconditions. */
private List<MetaQueryCondition> subConditions = new ArrayList<MetaQueryCondition>();
}
MeasurementMetaQueryCondition
Filtre pelo nome da métrica.
public class MeasurementMetaQueryCondition implements MetaQueryCondition {
/** The relational operator. */
private final MetaQuerySingleOperator operator;
/** The name of the metric of the time series that you want to query. */
private final String value;
}
DataSourceMetaQueryCondition
Filtre pela fonte de dados.
public class DataSourceMetaQueryCondition implements MetaQueryCondition {
/** The relational operator. */
private final MetaQuerySingleOperator operator;
/** The name of the data source of the time series that you want to query. */
private final String value;
}
TagMetaQueryCondition
Filtre pelo nome e valor da tag.
public class TagMetaQueryCondition implements MetaQueryCondition {
/** The relational operator. */
private final MetaQuerySingleOperator operator;
/** The tag name. */
private final String tagName;
/** The tag value. */
private final String value;
}
AttributeMetaQueryCondition
Filtre pelo nome e valor do atributo.
public class AttributeMetaQueryCondition implements MetaQueryCondition {
/** The relational operator. */
private final MetaQuerySingleOperator operator;
/** The attribute name. */
private final String attributeName;
/** The attribute value. */
private final String value;
}
UpdateTimeMetaQueryCondition
Filtre pela hora da última atualização dos metadados da série temporal.
public class UpdateTimeMetaQueryCondition implements MetaQueryCondition {
/** The relational operator. */
private final MetaQuerySingleOperator operator;
/** The timestamp when the time series metadata is updated. */
private final long timeInUs;
}
Parâmetros
Especifique timeseriesTableName e pelo menos uma condição. A tabela a seguir descreve cada tipo de condição.
|
Condição |
Descrição |
|
compositeMetaQueryCondition |
Combina várias condições com um operador lógico:
|
|
measurementMetaQueryCondition |
Filtra pelo nome da métrica:
|
|
dataSourceMetaQueryCondition |
Filtra pela fonte de dados:
|
|
tagMetaQueryCondition |
Filtra pelo nome e valor da tag:
|
|
attributeMetaQueryCondition |
Filtra pelo nome e valor do atributo:
|
|
updateTimeMetaQueryCondition |
Filtra pela hora da última atualização dos metadados:
|
Exemplo
O exemplo a seguir consulta todas as séries temporais em uma tabela cujo nome da métrica é cpu e o valor da tag os começa com Ubuntu. Os resultados são recuperados em páginas de até 100 entradas, interrompendo a consulta após atingir 1.000 resultados no total.
private static void queryTimeseriesMeta(TimeseriesClient client) {
// Specify the name of the time series table.
String tableName = "<TIME_SERIES_TABLE>";
QueryTimeseriesMetaRequest queryTimeseriesMetaRequest = new QueryTimeseriesMetaRequest(tableName);
// Query all time series whose metric name is cpu and that have the os tag whose value is prefixed with Ubuntu. measurement_name="cpu" and have_prefix(os, "Ubuntu")
CompositeMetaQueryCondition compositeMetaQueryCondition = new CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND);
compositeMetaQueryCondition.addSubCondition(new MeasurementMetaQueryCondition(MetaQuerySingleOperator.OP_EQUAL, "cpu"));
compositeMetaQueryCondition.addSubCondition(new TagMetaQueryCondition(MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu"));
queryTimeseriesMetaRequest.setCondition(compositeMetaQueryCondition);
queryTimeseriesMetaRequest.setGetTotalHits(true);
// Specify the maximum number of time series metadata entries that can be returned for a single request.
queryTimeseriesMetaRequest.setLimit(100);
// Initiate the query.
QueryTimeseriesMetaResponse queryTimeseriesMetaResponse = client.queryTimeseriesMeta(queryTimeseriesMetaRequest);
// Display the total number of time series that meet the query conditions.
System.out.println(queryTimeseriesMetaResponse.getTotalHits());
// Save the request results.
List<TimeseriesMeta> timeseriesMetas = new ArrayList<TimeseriesMeta>();
timeseriesMetas.addAll(queryTimeseriesMetaResponse.getTimeseriesMetas());
// If NextToken is included in the response, you can initiate a new request to obtain the remaining results.
while (queryTimeseriesMetaResponse.getNextToken() != null) {
queryTimeseriesMetaRequest.setNextToken(queryTimeseriesMetaResponse.getNextToken());
queryTimeseriesMetaResponse = client.queryTimeseriesMeta(queryTimeseriesMetaRequest);
timeseriesMetas.addAll(queryTimeseriesMetaResponse.getTimeseriesMetas());
// Specify the maximum number of time series that can be returned.
if (timeseriesMetas.size() >= 1000) {
break;
}
}
System.out.println(timeseriesMetas.size());
for (TimeseriesMeta timeseriesMeta : timeseriesMetas) {
System.out.println(timeseriesMeta.getTimeseriesKey().getMeasurementName());
System.out.println(timeseriesMeta.getTimeseriesKey().getDataSource());
System.out.println(timeseriesMeta.getTimeseriesKey().getTags());
System.out.println(timeseriesMeta.getAttributes());
System.out.println(timeseriesMeta.getUpdateTimeInUs());
}
}
Próximos passos
Após consultar as séries temporais, você pode:
Consultar pontos de dados nas séries temporais correspondentes. Para mais informações, consulte Consultar dados de séries temporais.
Atualizar os atributos armazenados nos metadados das séries temporais. Para mais informações, consulte Atualizar metadados de séries temporais.
Excluir metadados de séries temporais desnecessários. Para mais informações, consulte Excluir metadados de séries temporais.