TSQL查询API
请求路径和方法
TSQL当前仅支持通过http 协议方式访问,通过/api/sqlquery 接口进行数据请求。接口请求参数和协议介绍如下:
请求路径 | 请求方法 | 描述 |
---|---|---|
/api/sqlquery | GET/POST | 以SQL语句查询时序数据 |
请求内容
请求内容 JSON 格式
名字 | 类型 | 是否必需 | 描述 | 默认值 | 举例 |
---|---|---|---|---|---|
sql | string | 是 | 一个SQL查询语句 | 无 | select min( value ) as minV, max(value ) as maxVfrom tsdb. cpu.usage_system`<br /> where `timestamp`` between ‘2019-01-01’ and ‘2019-01-02’ |
SQL查询结果
查询结果JSON格式
名字 | 类型 | 描述 | 举例 |
---|---|---|---|
columns | string 类型的数组 | 查询结果每个column的列名 | [“hostname”, “minV”, “maxV”] |
metadata | string 类型的数组 | 查询结果每个column的列类型 | [“VARCHAR”, “FLOAT8”, “FLOAT8”] |
rows | map 类型的数组 | 查询结果行,每行是一个map, 列名是key, 列的值是value | [ { “hostname”: “host_9”, “minV”: “90.49879988870993”, “maxV”: “93.8549962369351”},{ “hostname”: “host_8”, “minV”: “0.9174383579092883”, “maxV”: “5.997678861502513”}, … ] |
查询示例
假设我们要执行下面的查询,获得cpu.usage_system这个度量在’2019-03-01 00:00:00’ 到 ‘2019-03-01 00:01:00’ 这1分钟之内的在每台机器上的最小值和最大值,可以用下面的SQL查询语句表示:
select hostname, min(`value`) as minV, max(`value`) as maxV
from tsdb.`cpu.usage_system`
where `timestamp` between '2019-03-01 00:00:00' and '2019-03-01 00:01:00'
group by hostname
以curl命令行参数形式指定SQL查询语句
curl -H "Content-Type: application/json" -d $'{"sql":"select hostname, min(`value`) as minV, max(`value`) as maxV from tsdb.`cpu.usage_system` where `timestamp` between \'2019-03-01 00:00:00\' and \'2019-03-01 00:01:00\' group by hostname"}' http://tsdb_host:tsdb_port/api/sqlquery
注意:
- 在上面的命令行中,JSON的字符串被单引号包含,所以JSON字符串内部出现的单引号,需要使用转义符\
- 如果把JSON字符串放进一个文件,则不需要使用转义符
SQL查询语句放在json文件
//sql.json
{"sql": "select hostname, min(`value`) as minV, max(`value`) as maxV from tsdb.`cpu.usage_system` where `timestamp` between '2019-03-01 00:00:00' and '2019-03-01 00:01:00' group by hostname"}
用curl提交查询
curl -H "Content-Type: application/json" -d @sql.json http://tsdb_host:tsdb_port/api/sqlquery
查询结果
{
"columns": [
"hostname",
"minV",
"maxV"
],
"metadata": [
"VARCHAR",
"FLOAT8",
"FLOAT8"
],
"rows": [
{
"hostname": "host_9",
"minV": "90.49879988870993",
"maxV": "93.8549962369351"
},
{
"hostname": "host_8",
"minV": "0.9174383579092883",
"maxV": "5.997678861502513"
},
{
"hostname": "host_0",
"minV": "0.12036918007593445",
"maxV": "2.6224297271376256"
},
....
]
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论