当您需要在物联网平台搜索并下载指定条件的设备列表(包含ProductKeyDeviceName)时,可以使用高级搜索功能,通过类SQL语句快速搜索满足指定条件的设备,例如在线设备。本文介绍高级搜索操作,以及使用的类SQL语法。

使用限制

  • 支持地域:华东2(上海)、华北2(北京)、华南1(深圳)
  • 功能限制:
    • 旧版公共实例:不支持通过物模型搜索设备和下载设备文件。
    • 企业版实例和新版公共实例:仅华东2(上海)地域下,高级搜索中通过物模型搜索设备的功能,仅可在设备管理 > 设备页面的高级搜索页签使用。

      使用物模型搜索功能,需先配置物模型索引,然后物联网平台基于设备运行时数据,检索设备最近一次上报的属性数据,搜索出符合条件设备。

      重要
      • 一个企业版实例下,最多可配置100个物模型属性的索引。
      • 基础型企业版实例下不支持高级搜索功能。

使用场景

物联网平台控制台的以下使用场景支持高级搜索:

  • 管理设备:在设备管理 > 设备页面的高级搜索页签,从设备列表搜索出指定设备进行管理。
  • 设备分组:在向设备分组添加设备时,搜索待添加的设备。
  • OTA升级:在验证OTA升级包、创建批量升级批次时,搜索待升级的设备。

您也可以调用QueryDeviceBySQL API进行设备高级搜索。使用API进行高级搜索时,不局限于以上控制台使用场景。

操作步骤

本文以使用高级搜索功能向设备分组添加设备、在设备管理中通过物模型搜索设备为例,介绍物联网平台控制台的设备高级搜索操作。

  1. 登录物联网平台控制台
  2. 实例概览页面,选择目标环境,找到对应的实例,单击实例ID或备注名称。
    重要 目前仅开通企业版实例服务的地域下,执行此步骤。其他地域,请跳过此步骤。地域及实例的支持说明,请参见实例概述
    实例概览
  3. 通过高级搜索功能,搜索符合条件设备。
    1. 在左侧导航栏,选择设备管理 > 分组。在分组页面,单击已创建分组对应的查看
    2. 分组详情页面,单击设备列表 > 添加设备到分组。在添加设备到分组面板,开启右上角高级搜索开关。
      设备选择页面
    3. 在搜索框中输入搜索条件的语句,单击搜索图标搜索
      搜索条件语句语法的更多信息,请参见类SQL语法说明
      列表显示搜索结果,搜索框右侧显示下载图标。

      您可单击下载图标下载,获取已搜索设备的列表文件,格式为CSV。

      搜索
  4. 通过物模型搜索设备。
    1. 在左侧导航栏,选择设备管理 > 设备,单击高级搜索页签。
    2. 高级搜索页签,单击通过物模型数据搜索右侧的配置索引
    3. 物模型索引配置面板,选择产品和物模型模块,然后选中待索引属性,单击确定
      说明
      • 配置属性索引后,最多一分钟即可生效。
      • 配置属性索引后,如果您删除了产品下该物模型属性,仍可基于该属性最近一次上报数据检索设备。
      物模型索引配置
    4. 在搜索框中输入物模型索引条件,单击搜索
      您可在通过物模型数据搜索下方,单击复制property.floatText > 11property.module.floatText > 11,然后将floatText替换为已配置索引的属性标识符;module替换为对应的自定义模块标识符;11替换为您要搜索的条件值。
      重要 条件值的数据类型必须与物模型属性的数据类型保持一致。

      例如,物模型属性Temperature(温度)为Double类型,需要搜索上报温度值大于11的设备,条件值必须设置11.0,否则无法进行搜索。

      高级搜索页签,显示搜索结果。如果有满足条件的设备,您可单击下载搜索结果,获取已搜索设备的列表文件,格式为CSV。结果
    5. 可选:如果您需要取消属性的索引能力,在高级搜索页签,单击重置,回到搜索页面。然后单击配置索引,进入物模型索引配置面板。
      您可先选择产品和物模型模块,或单击右上角已选择,然后取消选中的目标属性,单击确定

      如果产品下已删除属性,您可在已选择列表,找到要取消索引的属性。

      重要 任何情况下,如果您取消了属性的索引能力,都不再支持通过该属性搜索设备。
      取消属性索引,会清空该属性的历史搜索数据。如果累计历史数据过多,清空操作会花费时间,属性索引状态不会立刻取消,即您重新打开物模型索引配置面板,该属性可能仍处于选中状态。此时,请您耐心等待,不可重复删除操作。

类SQL语法说明

在控制台使用高级搜索功能时,类SQL语句由WHERE子句、ORDER BY子句(可选)组成,省略SELECT子句、LIMIT子句以及WHERE子句的WHERE。长度限制为400个字符。

示例:

product_key = "a1*****" order by active_time

WHERE子句

格式:

[condition1] AND [condition2] 

省略WHERE

最多使用5个condition,且不支持嵌套,请参见下面的检索字段说明、运算符说明。

连接词支持AND、OR,最多使用5个连接词。

ORDER BY子句(可选)

ORDER BY子句用来实现自定义排序,可自定义排序的字段包括gmt_creategmt_modifiedactive_time

该子句可不填,不填时随机排序。

检索字段说明

字段名类型说明
product_keytext设备所属产品ProductKey
iot_idtext设备标识符。默认返回iot_id
nametext设备名称。
active_timedate设备激活时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。
nicknametext设备备注名称。
gmt_createdate设备创建时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。
gmt_modifieddate设备信息最后一次更新时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。
statustext设备状态,取值:
  • ONLINE:在线
  • OFFLINE:离线
  • UNACTIVE:未激活
  • DISABLE:已禁用
property.floatTexttext物模型属性标识符。
  • property.floatText:默认模块属性。
  • property.module.floatText:自定义模块属性。

仅企业版实例下设备管理 > 设备页面的高级搜索页签支持该字段检索。

property.module.floatTexttext
group.group_idtext设备分组ID。
tag.tag_nametext设备标签名。
tag.tag_valuetext设备标签值。
ota_module.nametextOTA模块名称。

建议与ota_module.version配合使用,用于指定设备当前OTA版本号对应的OTA模块。

ota_module.versiontext设备当前OTA版本号。

建议与ota_module.name配合使用。

运算符说明

运算符支持的字段数值类型
=number、date、text、keyword
> number、date
<number、date
LIKEtext

其中,LIKE支持前缀匹配,不支持后缀匹配或通配符匹配。前缀必须满足以下条件:

  • 前缀不得少于4个字符,且不能包含任何特殊字符,例如反斜线(\)、正斜线(/)、and(&)、加号(+)、短划线(-)、感叹号(!)、半角圆括号(())、半角冒号(:)、波浪线(~)、方括号([])、大括号({})、星号(*)、半角问号(?)等。
  • 前缀填写完成后,必须固定以%结尾。

示例:

product_key = "a1*********" and name LIKE "test%"