查询操作

时序时空数据库 TSDB

  • 功能发布记录
  • 产品描述
    • 名词解释
    • 产品概述
    • 数据结构
    • 产品优势
    • 产品功能
    • 系统限制
  • Python-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的Gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 安装SDK工具包
    • 概述
  • 申请邀请
    • 申请成为邀测用户
  • Java-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 快速入门
    • 安装SDK工具包
    • 概述
  • SQL参考
    • 支持SQL查询
    • 对接hive-sql
    • 支持MySQL协议
    • 对接spark-sql
  • 快速入门
    • 使用API入门
    • 创建数据库
    • 通过查询面板生成图表
    • 连接数据库
    • 概述
  • 典型实践
    • 物联网设备状态监控存储分析
    • 互联网业务性能监控服务
  • 操作指南
    • 多用户访问控制
    • 数据预处理
    • 时空服务
    • 数据管理
    • 与天工产品对接
    • 数据可视化
    • 数据库管理
    • 插值查询
  • 服务等级协议SLA
    • 时序数据库TSDB服务等级协议SLA(V2.0)
  • Node-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 快速入门
    • 安装SDK工具包
    • 错误码
    • 概述
  • API参考
    • 介绍
    • 聚合函数
    • 时间单位
    • 附录
    • 更新历史
    • 数据API接口说明
    • 管理API接口说明
    • 分组方式
  • 常见问题
    • 数据库创建及设置
    • 数据点查询
    • 数据管理
    • 用量提示
    • 常见问题总览
    • 数据点写入
  • 产品定价
    • 到期停服处理
    • 预付费
所有文档
menu
没有找到结果,请重新输入

时序时空数据库 TSDB

  • 功能发布记录
  • 产品描述
    • 名词解释
    • 产品概述
    • 数据结构
    • 产品优势
    • 产品功能
    • 系统限制
  • Python-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的Gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 安装SDK工具包
    • 概述
  • 申请邀请
    • 申请成为邀测用户
  • Java-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 快速入门
    • 安装SDK工具包
    • 概述
  • SQL参考
    • 支持SQL查询
    • 对接hive-sql
    • 支持MySQL协议
    • 对接spark-sql
  • 快速入门
    • 使用API入门
    • 创建数据库
    • 通过查询面板生成图表
    • 连接数据库
    • 概述
  • 典型实践
    • 物联网设备状态监控存储分析
    • 互联网业务性能监控服务
  • 操作指南
    • 多用户访问控制
    • 数据预处理
    • 时空服务
    • 数据管理
    • 与天工产品对接
    • 数据可视化
    • 数据库管理
    • 插值查询
  • 服务等级协议SLA
    • 时序数据库TSDB服务等级协议SLA(V2.0)
  • Node-SDK
    • 管理接口
    • 生成查询数据点的预签名URL
    • 写入数据点的gzip压缩说明
    • 查询操作
    • 写入操作
    • 创建TsdbClient
    • Demo工程下载
    • 版本说明
    • 快速入门
    • 安装SDK工具包
    • 错误码
    • 概述
  • API参考
    • 介绍
    • 聚合函数
    • 时间单位
    • 附录
    • 更新历史
    • 数据API接口说明
    • 管理API接口说明
    • 分组方式
  • 常见问题
    • 数据库创建及设置
    • 数据点查询
    • 数据管理
    • 用量提示
    • 常见问题总览
    • 数据点写入
  • 产品定价
    • 到期停服处理
    • 预付费
  • 文档中心
  • arrow
  • 时序时空数据库TSDB
  • arrow
  • Python-SDK
  • arrow
  • 查询操作
本页目录
  • 获取度量(Metric)
  • 获取域(Field)
  • 获取标签(Tag)
  • 查询数据点
  • 查询单域数据点
  • 查询多域数据点
  • 使用插值方式查询数据
  • 分页查询数据点
  • 使用SQL查询数据点

查询操作

更新时间:2025-08-22

获取度量(Metric)

如下代码可以获取metric列表:

Plain Text
1# 获取metric列表
2result = tsdb_client.get_metrics()
3print result.metrics

返回结果:

Plain Text
1[u'wind']

获取域(Field)

如下代码可以获取field对象:

Plain Text
1metric = 'wind' # 要获取field所属的metric
2result = tsdb_client.get_fields(metric) # 获取指定metric下的所有field
3print result.fields

返回结果:

Plain Text
1{direction:{type:u'Number'},speed:{type:u'Number'}}

获取标签(Tag)

如下代码可以获取tag对象:

Plain Text
1metric = 'wind' # 要获取tag所属的metric
2result = tsdb_client.get_tags(metric)
3print result.tags

返回结果:

Plain Text
1{city:[u'ShangHai']}

查询数据点

查询单域数据点

如下代码可以查询单域数据点:

Plain Text
1#构建查询对象
2query_list = [{
3    "metric": "wind",
4    "field": "direction",
5    "filters": {
6        "start": 1531985370000,
7        "end": 1531985400000,
8        "tags": {
9            "city": ["ShangHai"]
10        },
11        "value": ">= 0"
12    },
13    "groupBy": [{
14        "name": "Tag",
15        "tags": ["city"]
16    }],
17    "limit": 1000,
18    "aggregators": [{
19        "name": "Sum",
20        "sampling": "10 minutes"
21    }]
22}]
23result = tsdb_client.get_datapoints(query_list)
24print result.results

返回结果:

Plain Text
1[{field:u'direction',metric:u'wind',groups:[{group_infos:[{name:u'Tag',tags:{city:u'ShangHai'}}],values:[[1531985379000, 2]]}],rawcount:2}]

查询多域数据点

如下代码可以查询多域数据点:

Plain Text
1#构建查询对象
2query_list = [{
3    "metric": "wind",
4    "fields": ["direction", "speed"],   #查询多个域
5    "filters": {
6        "start": 1531985370000,
7        "end": 1531985400000,
8        "tags": {
9            "city": ["ShangHai"]
10        },
11        "value": ">= 0"
12    },
13    "groupBy": [{
14        "name": "Tag",
15        "tags": ["city"]
16    }],
17    "limit": 1000,
18    "aggregators": [{
19        "name": "Sum",
20        "sampling": "10 minutes"
21    }]
22}]
23result = tsdb_client.get_datapoints(query_list)
24print result.results

返回结果:

Plain Text
1[{fields:[u'direction', u'speed'],metric:u'wind',groups:[{group_infos:[{name:u'Tag',tags:{city:u'ShangHai'}}],values:[[1531985380000, 1, 4.5]]}],rawcount:1}]

使用插值方式查询数据

使用如下代码进行插值查询:

Plain Text
1# 构建查询对象
2query_list = [{
3    "metric": "wind",
4    "fields": ["direction", "speed"],
5    "filters": {
6        "start": 1531985370000,
7        "end": 1532985370000,
8        "tags": {
9            "city": ["ShangHai"]
10        },
11        "value": ">= 0"
12    },
13    "fill": {                             #配置插值参数
14        "type": "Linear",                 #插值类型
15        "interval": "1 day",              #插值间隔
16        "maxWriteInterval": "30 minutes"  #最大写入间隔
17    },
18    "groupBy": [{
19        "name": "Tag",
20        "tags": ["city"]
21    }],
22    "limit": 1000,
23    "aggregators": [{
24        "name": "Sum",
25        "sampling": "10 minutes"
26    }]
27}]
28 
29result = tsdb_client.get_datapoints(query_list)
30print result.results

返回结果:

Plain Text
1[{fields:[u'direction', u'speed'],metric:u'wind',groups:[{group_infos:[{name:u'Tag',tags:{city:u'ShangHai'}}],values:[[1531985380000, 1, 4.5], [1532071780000, 1, 4.5], [1532158180000, 1, 4.5], [1532244580000, 1, 4.5], [1532330980000, 1, 4.5], [1532417380000, 1, 4.5], [1532503780000, 1, 4.5], [1532590180000, 1, 4.5], [1532676580000, 1, 4.5], [1532762980000, 1, 4.5], [1532849380000, 1, 4.5], [1532935780000, 1, 4.5]]}],rawcount:12}]

分页查询数据点

如果查询到的原始数据点过大,会分多次返回,使用marker参数来进行分页查询。

Plain Text
1# 通过循环来多次查询数据
2 
3query_list = [{
4    "metric": "wind",
5    "field": "direction",
6    "filters": {
7        "start": 1531985300000,
8        "end": 1531985400000,
9        "tags": {
10            "city": ["ShangHai"]
11        }
12    },
13    "limit": 1
14}]
15count = 0
16while True:
17    count += 1
18    if len(query_list) >0:
19        result = tsdb_client.get_datapoints(query_list)
20        print count, result.results
21    else:
22        print 'end query'
23        break
24    next_query = []
25    for i in range(len(query_list)):
26        if result.results[i].truncated:
27            query_list[i]['marker'] = result.results[i].next_marker
28            next_query.append(query_list[i])
29    query_list = next_query

返回结果:

Plain Text
11 [{field:u'direction',next_marker:u'AAABZLFxwqBjaXR5PVNoYW5nSGFp',groups:[{group_infos:[],values:[[1531985379000, 1]]}],truncated:True,metric:u'wind',rawcount:1}]
22 [{field:u'direction',metric:u'wind',groups:[{group_infos:[],values:[[1531985380000, 1]]}],rawcount:1}]
3end query

使用SQL查询数据点

TSDB支持使用SQL进行数据查询,示例代码如下:

Plain Text
1sql = "select * from wind"
2result = tsdb_client.get_rows_with_sql(sql)
3print result

返回结果:

Plain Text
1{rows:[[1531985379000, 1.0, None, u'ShangHai'], [1531985380000, 1.0, 4.5, u'ShangHai']],columns:[{name:u'timestamp'}, {name:u'direction'}, {name:u'speed'}, {name:u'city'}],metadata:{content_length:'168',content_type:'application/json; charset=UTF-8',keep_alive:'timeout=10',server:'BWS',connection:'keep-alive',pragma:'no-cache',date:'Thu, 02 Aug 2018 00:35:28 GMT',bce_request_id:'46f5d19e-58de-4654-bc35-91bb67b58e76',cache_control:'no-cache'}}

上一篇
写入数据点的Gzip压缩说明
下一篇
写入操作