接口说明
使用说明
- 仅支持搜索华东 2(上海)
、华北 2(北京)、华南 1(深圳) 地域企业版实例中的设备。 - 调用该接口,单次最多查询到 10,000 个设备。使用说明,请参见下文 SQL 语句的
LIMIT
子句说明。
QPS 限制
单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为 10。
流控信息
请求参数
字段名称 | 字段详情 |
---|---|
IotInstanceIdstring | 实例 ID。您可在物联网平台控制台的实例概览页面,查看当前实例的 ID。展开详情 示例值:iot-cn-0pp1n8t**** |
SQLstring | 查询设备的类 SQL 语句。具体要求和示例见下文请求参数补充说明。 示例值:SELECT * FROM device where product_key = "a1*********" limit 100, 20 |
请求说明
使用 QueryDeviceBySQL 进行设备高级搜索时,类 SQL 语句由 SELECT 子句、WHERE 子句、ORDER BY 子句(可选)、LIMIT 子句(可选)组成。长度限制 400 个字符。
示例:
SELECT * FROM device WHERE product_key = "a1*********" order by active_time limit 0,10
SQL 子句 | 说明 |
---|---|
SELECT 子句 | SELECT [field]/[count(*)] FROM device 其中 field 为需要获取的字段,请参见下面的检索字段说明。也可填*,获取所有字段。 如果需要获取 count 计数,则填 count(*)。 |
WHERE 子句 | WHERE [condition1] AND [condition2] 最多使用 5 个 condition,且不支持嵌套,请参见下面的检索字段说明、运算符说明。 连接词支持 AND、OR,最多使用 5 个连接词。 |
ORDER BY 子句(可选) | ORDER BY 子句用于实现自定义排序,可自定义排序的字段包括 gmt_create、gmt_modified、active_time。 该子句可不填,不填时随机排序。 |
LIMIT 子句(可选) | LIMIT 子句用于控制查询的偏移量,有两种用法,参见下表“LIMIT 子句使用方法”。 如果不填 LIMIT 子句,则默认为 limit 20 。 |
LIMIT 子句使用方法:
方法 | 说明 |
---|---|
limit k | 限制 k<=50,即单页最大为 50。示例: SELECT * FROM device WHERE product_key = "a1*****" limit 10 |
limit n,k | 限制 n+k<=10000 且 k<=50,即最大偏移量为 10000 且单页最大为 50。示例: SELECT * FROM device WHERE product_key = "a1*****" limit 40,10 |
检索字段说明
字段名 | 类型 | 说明 |
---|---|---|
product_key | text | 设备所属产品 ProductKey。 |
iot_id | text | 设备标识符。默认返回 iot_id。 |
name | text | 设备名称。 |
active_time | date | 设备激活时间。格式为 yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。 |
nickname | text | 设备备注名称。 |
gmt_create | date | 设备创建时间。格式为 yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。 |
gmt_modified | date | 设备信息最后一次更新时间。格式为 yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。 |
status | text | 设备状态,取值: ONLINE:在线。 OFFLINE:离线。 UNACTIVE:未激活。 DISABLE:已禁用。 |
group.group_id | text | 设备分组 ID。 |
tag.tag_name | text | 设备标签名。 |
tag.tag_value | text | 设备标签值。 |
ota_module.name | text | OTA 模块名称。 与 ota_module.version 配合使用,用于指定设备当前 OTA 版本号对应的 OTA 模块。 ota_module.version 可不传入,不传入时,将不能根据模块名称检索设备。 |
ota_module.version | text | OTA 固件版本。 |
运算符说明
运算符 | 支持的字段数值类型 |
---|---|
= | number、date、text |
!= | number、date、text |
> | number、date |
< | number、date |
LIKE | text |
其中:
-
=和!=:使用时,支持检索字段值取值为 null。
-
LIKE:使用时,支持前缀匹配,不支持后缀匹配或通配符匹配。前缀不得少于 4 个字符,且不能包含任何特殊字符,例如反斜线(\)、正斜线(/)、and(&)、加号(+)、短划线(-)、感叹号(!)、半角圆括号(())、半角冒号(:)、波浪线(~)、大括号({})、星号(*)、半角问号(?)等。前缀填写完成后,必须固定以
%
结尾。示例:
SELECT * FROM device where product_key = "a1*********" and name LIKE "test%" limit 10
调用 API 时,除了本文介绍的该 API 的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档。
返回参数
字段名称 | 字段详情 |
---|---|
Codestring | 调用失败时,返回的错误码。更多信息,请参见错误码。 示例值:iot.system.SystemException |
ErrorMessagestring | 调用失败时,返回的出错信息。 示例值:系统异常 |
RequestIdstring | 阿里云为该请求生成的唯一标识符。 示例值:E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 |
TotalCountinteger<int64> | 当 SELECT 子句为 注意
请注意,该值为 Long 类型,在某些语言中可能存在精度丢失的风险,请小心使用。 示例值:100 |
Successboolean | 是否调用成功。展开详情 示例值:true |
Dataarray<object> | 调用成功时,返回的设备信息。 |