通用聚合服务
更新时间: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事件信息聚合表';