通用聚合服务
更新时间:2018-09-14 16:56:00
查询数据
API定义相关
path | 版本 | 描述 | 是否需要用户身份的鉴权 |
---|---|---|---|
/datacenter/data/aggregate/query | 1.0.0 | 查询设备的聚合数据 | 是,客户端SDK需启用身份的鉴权 |
业务请求参数列表
参数名 | 参数类型 | 详细描述 |
---|---|---|
tableName | String | 表名称, |
expr | 查询的条件表达式 op: 支持 and/or col: 列名 comp: 比较符,支持 >,<,>=,<=,=,!=,in,not-in,like,not-like val: 待比较的值。 示例见下方sample | |
cols | List | 需要查询的列 |
orderby | 排序设置 col: 列名 type:“asc”(升序),“desc”(降序)。 示例:[{“col”:“id”,“type”:“asc”}] | |
page | 分页设置 to: 第几页,从1开始 size: 页面大小 total: 该字段仅在返回的结果中存在,请求参数不需要加此参数。 示例: {“to”:1,“size”:10} |
参数格式
{
"expr":{
"op":"and",
"filters": [
{"col": "dim_time","comp": "=","val": "2015-7-13"},
{"col": "dim_time","comp": ">=","val": "2015-7-13"},
{"col": "pm2dot5","comp": "<=","val": 500},
{"col": "province","comp": "in","val": ["a", "b"]},
{"col": "city","comp": "not-in","val": ["c", "d"]}]
},
"cols": ["dim_time", "province", "city", "pm2dot5"],
"orderby": [
{"col": "dim_time","type": "asc"},
{"col": "pm2dot5","type": "desc"}],
"page": {"to": 1,"size": 10},
}
业务响应参数列表
参数名 | 参数类型 | 详细描述 |
---|---|---|
code | INT | |
data | JSONObject | 自建表查询结果 |
message | String | 错误信息提示,不通错误提示不同 |
response 格式
// 成功的返回值,data的具体内容取决于API的返回值
{
"code": 200,
"data": xxxx
}
// 失败的返回值
{
"code": 460,
"message": "request parameter error."
}
完整请求、响应示例
body
{
"id": "816e03c0-1f00-44a2-aedb-1b34de4392c1",
"params": {
"userContextDTO": {},
"dataQueryJson": {
"cols": ["iot_id",
"attribute",
"count_Num",
"date_time"],
"expr": {
"filters": [{
"col": "date_time",
"comp": ">=",
"val": "2018-04-18 00:00:01",
"valueType": "int"
},
{
"col": "date_time",
"comp": "<",
"val": "2018-04-23 00:00:01",
"valueType": "int"
}],
"op": "and"
},
"page": {
"size": 3,
"to": 1
},
"tableName": "ads_ilop_kv_count_di"
}
},
"request": {
"apiVer": "1.0.0"
},
"version": "1.0"
}
response
{
"code": 200,
"data": {
"data": [{
"count_Num": 7,
"iot_id": "BPLjau0xw3CyuRKcOtUj0010348a00",
"date_time": "2018-04-19 00:00:00",
"attribute": "_sys_device_pid"
}],
"params": {
"page": {
"total": 1,
"pageSize": 3,
"pageid": 1
}
}
},
"id": "816e03c0-1f00-44a2-aedb-1b34de4392c1"
}
错误码
错误码 | 错误信息 | 来源 | 描述 |
---|---|---|---|
200 | success | 系统 | 成功 |
400 | request error. | 系统 | 请求错误 |
401 | request auth error. | 系统 | 请求认证错误 |
403 | request forbidden. | 系统 | 请求被禁止 |
404 | service not found. | 系统 | 服务未找到 |
429 | too many requests. | 系统 | 太多请求 |
460 | request parameter error. | 系统 | 请求参数错误 |
500 | service error. | 系统 | 服务端错误 |
503 | service not available. | 系统 | 服务不可用 |
接口支持的表以及列信息
1、在查询某属性行数接口时采用表
ads_ilop_kv_count_di
2、在查询明细、最大值、最小值和平均值时采用表
dwd_ilop_timeline_kv_di
--数据通用聚合服务表
drop table `ads_ilop_kv_count_di`;
CREATE TABLE `ads_ilop_kv_count_di` (
`scope_id` varchar(100) NOT NULL COMMENT '资源隔离id',
`iot_id` varchar(100) NOT NULL COMMENT '设备id',
`attribute` varchar(50) NOT NULL COMMENT '属性名',
`count_num` bigint(11) DEFAULT 0 COMMENT '行数',
`date_time` datetime NOT NULL COMMENT '统计日期,格式为yyyy-mm-dd hh:MM:ss',
PRIMARY KEY (`date_time`,`scope_id`,`iot_id`,`attribute`)
) COMMENT 'ilop数据通用聚合服务属性行数表';
drop table `dwd_ilop_timeline_kv_di`;
CREATE TABLE `dwd_ilop_timeline_kv_di`
(
`scope_id` varchar(100) NOT NULL COMMENT '资源隔离id',
`iot_id` varchar(100) NOT NULL COMMENT '设备id',
`attribute` varchar(20) NOT NULL COMMENT '属性名',
`col_value` varchar(100) COMMENT '属性值',
`client_date` datetime NOT NULL COMMENT '客户端时间',
`service_date` datetime NOT NULL COMMENT '服务端时间',
`date_time` datetime NOT NULL COMMENT '统计日期,格式为yyyy-mm-dd hh:MM:ss',
PRIMARY KEY (`date_time`,`scope_id`,`iot_id`,`attribute`,`col_value`,`client_date`,`service_date`)
) COMMENT 'ilop设备能力属性信息明细表'
;
3、事件信息记录聚合
ads_ilop_event_count_di
4、事件属性的值进行过滤的输出的能力
ads_ilop_event_kv_di
--设备事件信息聚合
drop table `ads_ilop_event_count_di`;
CREATE TABLE `ads_ilop_event_count_di` (
`scope_id` varchar(100) NOT NULL COMMENT '资源隔离id',
`iot_id` varchar(100) NOT NULL COMMENT '设备id',
`event_code` varchar(50) NOT NULL COMMENT '事件id',
`count_num` bigint(11) DEFAULT 0 COMMENT '行数',
`date_time` datetime NOT NULL COMMENT '统计日期,格式为yyyy-mm-dd hh:MM:ss',
PRIMARY KEY (`date_time`,`scope_id`,`iot_id`,`event_code`)
) COMMENT 'ilop事件信息聚合表';
drop table `ads_ilop_event_kv_di`;
CREATE TABLE `ads_ilop_event_kv_di`
(
`scope_id` varchar(100) NOT NULL COMMENT '资源隔离id',
`iot_id` varchar(100) NOT NULL COMMENT '设备id',
`event_code` varchar(50) NOT NULL COMMENT '事件id',
`attribute` varchar(20) NOT NULL COMMENT '属性名',
`col_value` text NOT NULL COMMENT '属性值',
`date_time` datetime NOT NULL COMMENT '统计日期,格式为yyyy-mm-dd hh:MM:ss',
PRIMARY KEY (`date_time`,`scope_id`,`iot_id`,`event_code`,`attribute`,`col_value`)
) COMMENT 'ilop事件信息明细表'
;
drop table `r_ilop_event_aggre_di`;
CREATE TABLE `r_ilop_event_aggre_di`(
`batch_id` VARCHAR(100) comment 'request_id',
`iot_id` VARCHAR(100) comment '设备id',
`scope_id` VARCHAR(100) comment '资源隔离id',
`event_code` VARCHAR(50) comment '事件id',
`data_value` text comment '事件内容',
`client_date` datetime comment '客户端日期',
`service_date` datetime comment '服务端日期',
primary key(batch_id,iot_id,scope_id,event_code,client_date,service_date)
) COMMENT 'ilop事件信息聚合表';