通过调用QueryTimeseriesMeta接口,您可以查询符合指定条件的时间线。
前提条件
初始化Tablestore Client。
参数说明
参数 | 说明 |
timeseriesTableName(必选) | 时序表名称。 |
condition(可选) | 检索时间线的查询条件,支持以下多种条件的组合方式。
|
getTotalHits(可选) | 是否获取符合条件总行数。默认值为False。 |
limit(可选) | 本次请求最多返回的行数。默认值为100,取值范围为 说明 limit仅限制最多返回的行数,在满足条件行数大于limit时,也可能由于扫描数据量等限制导致返回行数少于limit条,此时可以通过nextToken继续获取后面的行。 |
nextToken(可选) | 如果一次查询仅返回了部分符合条件的行,此时response中会包括nextToken,可在下一次请求中指定nextToken用来继续读取数据。 重要 如果需要持久化nextToken或者传输nextToken给前端页面,您可以使用Base64编码将nextToken编码为String后进行保存或传输。nextToken本身不是字符串,如果直接使用 |
示例
以下示例用于查询时序表中符合条件的时间线。
try:
# 查询条件:度量名称为cpu,标签中含有os标签且前缀为"Ubuntu"的所有时间线。即measurement_name="cpu" and have_prefix(os, "Ubuntu")。
measCond = MeasurementMetaQueryCondition(MetaQuerySingleOperator.OP_EQUAL, "cpu")
tagCond = TagMetaQueryCondition(MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu")
condition = CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND, [measCond, tagCond])
request = QueryTimeseriesMetaRequest("<TIMESERIES_TABLE_NAME>", condition)
# 调用接口检索时间线。
response = ots_client.query_timeseries_meta(request)
print("query timeseries metas succeeded. ")
for timeseriesMeta in response.timeseriesMetas:
print("data_source: %s, measurement_name: %s, tags: %s, attributes : %s, update_time_in_us: %s." % (
timeseriesMeta.timeseries_key.data_source, timeseriesMeta.timeseries_key.measurement_name,
timeseriesMeta.timeseries_key.tags,
timeseriesMeta.attributes, timeseriesMeta.update_time_in_us))
except Exception as e:
# 如果抛出异常,则说明执行失败,处理异常。
print("query timeseries meta failed. %s" % e)