进入物联网平台

点击“物联网”下的“设备接入”或“设备管理”进入物联网平台页面。

项目

创建项目

项目为 Internet 设备与云提供安全的双向通信。完成从多台设备收集遥测数据,并实现存储和分析数据。

菜单路径

项目 → 创建项目

操作步骤

1.点击“项目”,进入项目操作界面。

2.点击“+创建接入项目”,填写基本信息。 如表 1所示。

表 1 属性说明

属性 属性说明
项目名称 项目的名称。名称只能包含中文、数字、字母和"-"或"_",长度不超过 36。
描述 项目的描述信息,最多能输入 255 位字符。

3.点击“确定”按钮,完成一个项目的创建。

4.点击“取消”按钮到项目列表界面,列表显示已经创建的项目以及项目信息。

设备管理

创建产品

菜单路径

设备管理→产品。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“产品”,进入产品列表页面。

3.点击"+ 创建产品",完成产品信息填写。 如表1所示。

表1 属性说明

属性 属性说明
所属项目 产品的所属项目。
产品名称 产品的名称。名称只能包含中文、数字、字母和"-"或"_",1-36个字符。
产品编码 产品的编码。只能包含数字、字母和特殊字符中的"_",并且不能以数字开头,1-36个字符。。
节点类型 支持三种类型:
  • 直连设备:指不能挂载子设备的设备。这种设备可以直接连接物联网平台。
  • 网关:指可以挂载子设备的设备。网关能直接连接物联网平台且具有子设备管理模块,能够代理子设备连接云端。
  • 子设备:本质上也是设备,但子设备不能直接连接物联网平台,只能通过网关连接。
产品模板 预定义好的标准产品模板;若需要完全自定义该产品的物模型,选择“自定义品类”。
认证方式 产品下设备接入使用的连接方式。
协议类型 设备与平台之间,设备与设备之间通信使用的协议 。
数据格式 设备上下行的数据格式,可选择透传/自定义。
  • 透传/自定义:如果您希望使用自定义的串口数据格式,可以选择透传/自定义。
描述 产品的描述信息,最多能输入255位字符。

4.点击“确认”按钮,可完成产品的创建并将自动返回产品列表页面。

5.点击“取消”按钮,返回到产品列表页面。列表中的基本操作如表2

表2 基本操作

操作名称 操作 详解
查看 点击“产品编码“ 查看产品,包括:
  • 基本信息
  • 物模型定义
  • Topic管理
  • 服务端订阅
编辑 点击”编辑“ 编辑产品信息。
删除 点击”删除“ 删除产品。

1)“基本信息”标签页面中展示了产品基本信息、标签信息、产品秘钥以及动态注册开关,标签信息可编辑,支持添加、修改和删除,产品秘钥可以重置。

2)“物模型定义”标签页面中展示了产品物模型。产品物模型可根据需求添加、修改和删除。

3)“Topic管理”标签页面中展示了用于与云端交互的Topic模板,产品下的设备将继承并实现这些Topic。

快速入门

菜单路径

设备管理→产品→快速入门。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“产品”,进入产品列表页面。

3.点击"开始体验"。

4.完成产品信息填写,如表1所示。。

5.点击“下一步”按钮

6.完成设备信息填写,包括设备编码和设备名称

7.点击“下一步”按钮

8.点击“下载”按钮,下载证书

9.点击“完成”

创建产品标签

产品标签通常描述的是对一个产品下所有设备所具有的共性信息。如产品的制造商、所属单位、外观尺寸、操作系统等。需在创建产品后,再为该产品添加产品标签。

菜单路径

设备管理→产品→查看。

操作步骤

1.点击“设备管理”,进入设备管理操作界面。

2.点击菜单项“产品”,进入产品列表页面。

3.点击“查看”按钮,进入产品详情页。

4.点击“+ 添加标签”,填写标签信息。 如表3所示。

表3 属性说明

属性 属性说明
标签key 标签key值,只能包含数字、字母和特殊字符中的"_",1-36个字符。
显示名称 标签名称,只能包含中文、数字、字母和特殊字符中的"-"或"_",1-36个字符。
标签value 标签value值,1-36个字符。

5.点击“确认”按钮,可完成产品标签的创建。

创建物模型

菜单路径

设备管理→产品→产品编码→物模型定义。

操作步骤

1.点击“设备管理”,进入设备管理操作界面。

2.点击菜单项“产品”,进入产品列表页面。

3.点击产品所在行的“查看”按钮,进入产品详情页,选择“物模型定义”标签页。

4.点击“+ 自定义物模型”,选择属性、指令参数或事件,填写物模型信息,如表4所示。

表4 属性说明

属性 属性说明
功能类型 物模型类型:包括属性、指令和事件
名称 物模型的名称,同一产品下物模型名称不能重复。1-36个字符,只能包含中文、数字、字母和特殊字符中的"-"或"_"。
标识符 属性唯一标识符,在产品中具有唯一性。1-36个字符,只能包含数字、字母和特殊字符中的"_",并且不能以数字开头。
数据类型
  • int:整型。需定义取值范围、步长和单位符号。
  • float:单精度浮点型。需定义取值范围、步长和单位符号。
  • double:双精度浮点型。需定义取值范围、步长和单位符号。
  • enum:枚举型。定义枚举项的参数值和参数描述,如 1-加热模式、2-制冷模式。
  • bool:布尔型。采用 0 或 1 来定义布尔值,如 0-关、1-开。
  • text:字符串。需定义字符串的数据长度。
  • date:时间戳。格式为 string 类型的 UTC 时间戳,单位:毫秒。
  • struct:JSON对象。定义一个JSON结构体,新增JSON参数项,例如定义灯的颜色是由Red、Green、Blue三个参数组成的结构体。不支持结构体嵌套。
  • array:数组。需声明数组内元素的数据类型,可选择int、float、double、text或struct。需确保同一个数组元素类型相同。数组内可包含1-128个元素。
步长 属性值输入输出参数值变化的最小粒度。数据类型为int、float、double时,需要设置步长。
单位 单位可选择为无或根据实际情况选择。
描述 物模型的描述信息,最多能输入255位字符。
下行参数 物模型的下行消息定义
上行参数 物模型的上行消息定义
事件类型 事件功能的类型,包括:信息、告警、故障

5.点击“确认”按钮,可完成物模型的添加。

导入物模型

菜单路径

设备管理→产品→查看→物模型定义。

操作步骤

1.“设备管理”,进入设备管理操作界面。

2.点击菜单项“产品”,进入产品列表页面。

3.点击对应产品所在行的“查看”按钮,进入产品详情页,选择“物模型定义”标签页。

4.点击“导入物模型”,物模型支持两种导入方式,如物模型导入方式所示。

物模型导入方式 属性说明

方式 方式说明
拷贝产品 选择已有产品,单击确定,即可将已有产品的物模型导入到此产品中。如果需要修改某些物模型,单击物模型对应的编辑按钮,即可修改该物模型。
导入物模型 将自定义的物模型脚本粘贴进编辑框中,然后单击确定

5.点击“确认”按钮,可完成物模型的添加。

注意:导入物模型后,会覆盖该产品原有的物模型定义。请谨慎使用。

添加topic类

菜单路径

设备管理→产品→查看→Topic管理。

操作步骤

1.点击“设备管理”,进入设备管理操作界面。

2.点击菜单项“产品”,进入产品列表页面。

3.点击对应产品所在行的“查看”按钮,进入产品详情页,选择“Topic管理”标签页。

4.选择自定义Topic,点击“定义Topic权限”,填写Topic类信息,如Topic类表所示。

Topic类表 属性说明

属性 属性说明
设备操作权限 设备对该Topic的操作权限,可设置为发布、订阅、发布和订阅。
Topic类 Topic类的自定义类目名称。1-64个字符,只能包含字母、数字和特殊字符中的"- _ /"、+和#(仅权限是订阅时支持)。
描述 Topic类的描述信息,最多能输入255位字符,可以为空。

5.点击“确认”按钮,可完成Topic类的添加。

重置产品秘钥

菜单路径

设备管理→产品→查看→产品详情。

操作步骤

1.点击“设备管理”,进入设备管理操作界面。

2.点击菜单项“产品”,进入设备产品页面。

3.点击对应产品的“查看”按钮。

4.点击“显示”,再点击“重置”。注意:只有节点类型为网关和直连设备的产品才具有产品秘钥。

动态注册

菜单路径

设备管理→产品→产品编码→产品详情。

操作步骤

1.点击“设备管理”,进入设备管理操作界面。

2.点击菜单项“产品”,进入设备产品页面。

3.点击对应产品编码,选择“基本信息”标签页。

4.点击“开”。注意:只有节点类型为网关和直连设备的产品才具有“开/关”按钮。

创建设备

菜单路径

设备管理→设备。

操作步骤

1.点击“设备管理”,进入设备管理操作界面。

2.点击菜单项“设备”,进入设备列表页面。

3.选择设备所属项目,点击“+ 添加设备”,填写设备信息。 如表6所示。

表6 属性说明

属性 属性说明
所属产品 设备的模板,新创建的设备将继承该产品定义好的物模型、标签和特性。
设备编码 设备的编码,自动生成。编码只能包含数字、字母和"_",1-36个字符,并且不能以数字开头。
备注名称 备注名称只能包含中文、大小写字母、数字和特殊字符中的"-"或"_",0-36个字符
描述 设备的描述信息,最多能输入255位字符。

4.点击“确定”按钮,完成创建项目下的一个设备。

5.点击“取消”按钮,返回到设备列表页面。列表中的基本操作如表7

表7 基本操作

操作名称 操作 详解
查看 点击“设备编码” 查看设备,包括:
  • 设备详情
  • 运行状态
  • Topic列表
  • 设备影子
  • 配置信息:直连设备和网关才具有配置信息
  • 子设备:网关才具有子设备
删除 点击“删除” 删除设备。
禁用/启用 点击“禁用/启用” 点击禁用后,设备将不能连接到平台;点击启用后,设备才可以连接到平台。

6.点击对应的设备编码,进入设备详情,单击证书名称后的下载,可下载设备的证书。

设备tab表 设备tab描述

列表项 描述
设备详情 “设备详情”标签页中展示设备的基本信息和标签信息,标签信息分为自定义的标签信息和继承自产品的标签信息。自定义的标签信息支持添加、修改和删除;继承自产品的标签信息只支持编辑,编辑该标签信息不会影响产品的标签信息。
运行状态 “运行状态”标签页中展示设备的实时运行状态,可手动点击“刷新”,或打开“实时刷新”按钮,每5秒刷新一次。
Topic列表 “Topic列表”标签页中展示设备与云端交互的Topic列表。
配置信息 “配置信息”标签页中展示用于二次开发的配置文件信息。
子设备 ”子设备“标签页中展示网关关联的子设备,支持建立关联和解除关联。

批量创建设备

菜单路径

设备管理→设备。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“设备”,进入设备列表页面。

3.选择设备所属项目,点击“批量添加”。

4.选择一个已创建的产品。选择后,新创建的设备将继承该产品的物模型和特性。

5.选择设备名称的添加方式。添加方式如表8

表8 方式说明

方式 方式说明
自动生成 您无需为要创建的设备指定编码,您只需填写设备数量,系统将为每个设备自动生成设备编码。
批量上传 您需为每个要创建的设备指定名称。选择为批量上传后,您可以单击页面上蓝色字体的下载模板下载模板。在模板表格中输入产品编码、设备编码、设备名称、网关产品编码、网关设备编码并保存,然后单击选择,将已填好设备名称的表格上传至控制台。

6.点击“下载证书”按钮,下载批量创建的所有设备的证书。

批次管理

菜单路径

设备管理→设备。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“设备”,进入设备列表页面。

3.选择“批次管理”标签。

4.点击“详情”,查看该批次设备的情况。

5.点击“下载证书”,下载该批次所有设备的证书。

批量删除设备

菜单路径

设备管理→设备。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“设备”,进入设备列表页面。

3.选择需要批量删除的设备,点击“批量删除”。

4.弹出批量删除确认框,点击“确认”。

自定义设备标签

根据设备的特性为设备添加特有的标签,方便对设备进行管理。

菜单路径

设备管理→设备→查看。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“设备”,进入设备列表页面。

3.点击对应设备所在行的“查看”按钮,进入设备详情页。

4.点击“+ 添加标签”,填写标签信息。 如表9所示。

表9 属性说明

属性 属性说明
标签key 标签key值,只能包含数字、字母和特殊字符中的"_",1-36个字符。
标签name 标签名称,只能包含中文、数字、字母和特殊字符中的"-"或"_",1-36个字符。
标签value 标签value值,1-36个字符。

5.点击“确认”按钮,可完成设备自定义标签的创建。

子设备

菜单路径

设备管理→设备→设备编码→子设备。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“设备”,进入设备列表页面。

3.点击对应设备所在行的“查看”按钮,选择"子设备"标签页。注意:只有节点类型为网关的设备才具有“子设备”标签页。

4.点击”+添加子设备”,勾选需要添加的子设备,将会得到分页展示列表,包括全部子设备(除绑定自身的子设备)、全部未绑定的子设备、全部已绑定的子设备(除绑定自身的子设备),通过勾选需要添加的子设备可以绑定未绑定的子设备或绑定到其他网关的子设备,如果绑定其他网关的子设备,该子设备将与原设备解绑。详见创建设备

注意:网关绑定或者解绑子设备,相应的网关需要重新连接EMQ服务器,子设备主题权限才会生效,否则可能引起无法发布/订阅子设备权限等问题

重置证书

菜单路径

设备管理→设备→查看→设备详情→重置证书。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“设备”,进入设备列表页面。

3.点击对应设备所在行的“查看”按钮,选择"设备详情"标签页。

4.点击“重置证书”。注意:只有节点类型为网关和直连设备且接入方式为证书的设备才具有“重置证书”按钮。

重置/自定义密码

菜单路径

设备管理→设备→查看→设备详情。

操作步骤

1.选择“设备管理”,进入设备管理操作界面。

2.点击菜单项“设备”,进入设备列表页面。

3.点击对应设备所在行的“查看”按钮,选择"设备详情"标签页。

4.点击“显示”→“重置/自定义”。注意:只有节点类型为网关和直连设备且接入方式为密码的设备才具有“重置/自定义”按钮。

设备运维

查看指令详情

菜单路径

设备运维→设备指令下发→查看

操作步骤

1.点击“设备运维”,进入设备运维界面。

2.选择菜单项"设备指令下发",进入设备指令下发页面

3.点击“查看”按钮,查看对应的事件详情

下发指令

菜单路径

设备运维→设备指令下发→“+ 指令下发”按钮

操作步骤

1.进入"设备管理”-"设备"-"设备详情"-"topic列表”,选择设备要接收指令对应的主题,设备端订阅该主题

2.点击“设备运维”,进入设备运维菜单。

3.点击"设备指令下发"菜单选项,进入设备指令下发。

4.点击“指令下发“ 按钮,填写基本信息。 如表 manager所示。

表 manager 属性说明

属性 属性说明
所属项目 选择指令所在项目
所属产品 选择指令所在的产品
指令 选择要进行下发的指令
设备 选择要下发指令的设备
输入参数 符合指令参数中定义的输入参数

点击“确定”后,指令状态变为“设备待响应”。

5.设备通过订阅的指令对应主题可以接收到平台下发的指令

6.设备向指令上报主题(按步骤一查看)上报消息,格式为

{ "params": { "input": "1" }, "uuid": "4577028beb714696b7aedc241da233d2" }

7.平台收到设备上发的消息后指令状态变更为“收到设备响应”

查看事件详情

菜单路径

设备运维→事件管理→查看

操作步骤

1.点击“设备运维”,进入设备运维菜单。

2.点击"事件管理"菜单选项,进入事件管理页面。

3.点击对应事件所在行的“查看”按钮

事件上报

1.进入"设备管理”-"设备"-"设备详情"-"topic列表”,选择设备对应事件响应主题,设备端订阅该主题

2.设备向设备对应的事件主题发送消息

3.事件列表中新增该条事件实例

规则引擎

规则引擎旨在为物联网解决方案提供实时分析功能,实现每秒对数百万事件的流式分析,帮助用户灵活地转发和处理设备消息, 用户可通过类SQL语言设定规则,对消息进行筛选、变型和转发,实现过滤数据和处理数据,并根据不同场景将数据无缝转发至不同的数据目的地,例如MQTT设备接入主题、消息队列、jdbc、用户api等。

创建规则

菜单路径

规则引擎

操作步骤

1.点击“规则引擎”,进入规则引擎操作界面。

2.点击"+ 创建规则",进入创建规则页面,填写基本信息。 如表1所示。

表1 属性说明

属性 属性说明
规则名称 系统自动生成,用户可根据需要自行更改
规则描述 用于描述标记该规则的用途等信息

数据来源需要设备有发布权限(用户有订阅权限),如果没有上述权限,规则将无法创建成功。

3.点击“确定”按钮,规则创建完成,返回“规则列表”页面,查看已经创建的规则。

编辑规则详情

菜单路径

规则引擎→规则列表→规则名称

操作步骤

1.点击“规则引擎”,进入规则列表面。

2.点击"查看"按钮,进入规则详情页面,设置基本信息、数据来源、查询语句、数据目的地。控制台提供了SQL填写的方式来简化SQL语句的生成,具体可参考SQL表达式

  • 数据来源:原始消息数据所属的项目、产品、设备和MQTT主题.
  • 查询字段:从消息中筛选出数据用于后续操作。系统支持多个字段的处理,在数据转发至消费者之前需要对数据格式进行调整。注意:如果想筛选timestamp,value等flink sql中的关键字,需要加上反引号,比如timestamp,value,具体可参考Flink关键字.
  • 查询函数:topic()、topic(1)、topic(2)、deviceName()。从数据来源读取信息并转化为数据转存至输出数据中,系统支持多个函数的处理。举例说明,原始消息数据格式为:
{
  "timestamp": 1560757257790,
  "state": {
    "reported": {
      "GeoLocation": "Australia",
      "temperature": 25,
      "_send": 22713,
      "_receive": 0,
      "k1": "home",
      "k2": "yellow",
      "humi": 28,
      "_delayMs": 0
    }
  },
  "clientToken": "e5a2edc6-6fbe-43b9-bfa8-10ae68999c1f"
}

(1)流向MQTT时,要求字段中必须包含注解字段,根据注解生成流向MQTT的数据格式。如果不加暗示,将查询字段组成简单的json流向mqtt。查询字段实例如下:

 /*+ json('timestamp', 'clienttoken', 'data.temp:temp', 'data.humi:humi' ,'data.k1:k1','device','topic') */ state.reported.humi as humi,state.reported.k1 as k1, state.reported.temperature as temp, `timestamp` as `timestamp`, clientToken as clienttoken,topic() as topic,deviceName() as device

点击“测试”按钮,原始数据经过上述查询字段转换后输出数据为:

{
  "data": {
    "temp": 25,
    "k1": "home",
    "humi": 28
  },
  "clienttoken": "e5a2edc6-6fbe-43b9-bfa8-10ae68999c1f",
  "topic": "iot/iotol9592xu/21m0kg2y/device20/shadow/update",
  "device": "device20",
  "timestamp": 1560757257790
}

(2)流向jdbc时,字段必须与待流入数据表的字段相匹配,可根据数据流入填写的jdbc数据库配置信息进行修改。要求筛选出来的字段顺序与insert语句中的字段顺序必须相同。如下为流入jdbc的实例:

     state.reported.k1 as k1, state.reported.temperature as temp, deviceName() as device,`timestamp` as `timestamp`

原始数据经过上述查询字段转换后数据:

{
  "temp": 25,
  "k1": "home",
  "device": "device20",
  "timestamp": 1560757257790
}

(3)流向用户api时,可根据用户需求设置相应字段。如下为流入用户api的实例:

     `timestamp` as `timestamp`,'temperature' As metric, state.reported.temperature as _value,  clientToken as tag, topic() as topic,deviceName() as device

原始数据经过上述查询字段转换后数据:

{
  "metric": "temperature",
  "topic": "iot/iotol9592xu/21m0kg2y/device20/shadow/update",
  "_value": 25,
  "tag": "e5a2edc6-6fbe-43b9-bfa8-10ae68999c1f",
  "device": "device20",
  "timestamp": 1560757257790
}
  • 约束条件:后续操作的触发条件。缺省情况下,转发每一条消息至目的地。例如state.reported.temperature > 50

  • 消息模板:Json格式消息示例,用于spark针对此类消息定义schema,在流处理过程中执行类SQL操作,目的是为了创建表结构,缓存设备上报的数据。可从订阅主题中随机获取某条消息。消息示例中消息schema需要对应查询字段。

  • 数据目的地:规则引擎目前支持将数据转发到MQTT设备接入主题、消息队列、jdbc、用户api,点击“+添加数据目的地”按钮可进行添加,目前仅支持添加一个数据目的地,相关属性设置如下各表所示。

(1)MQTT

属性 属性说明
主题类型 设置主题类型,目前可选系统主题和自定义主题
项目 设置项目名称
产品 根据用户需要设置具体产品
Topic 即主题名称,支持通配符

数据目的地为mqtt时,要求设备有订阅该主题的权限,如果权限,添加数据目的地将不能成功。topic支持变量的形式,如${device}

(2)jdbc

属性 属性说明
数据库类型 设置数据库的类型,目前支持mysql
数据库地址 设置数据库地址
端口 设置数据库端口
数据库名称 设置数据库名称
字符集 设置数据库字符集
用户名 设置数据库用户名
密码 设置数据库用户密码
表名称 设置数据表名称
写入字段 填写需要写入的字段

要求:多个写入字段需要用英文的","隔开,写入字段的顺序与前面筛选出来字段的顺序必须要严格一致。

(3)用户api,输入可以获取并处理数据的api接口,该接口的请求方式需为POST,数据将在requestbody中以json字符串的形式逐条传送。

属性 属性说明
api地址 用户接受数据的API地址,支持http/https,可拼接参数。例:https://www.example.cloud.com/api/test?user=zhangsan&state=1

示例页面如下图所示,

属性设置完成后,点击“确定”按钮,添加数据目的地成功,返回编辑调试页面,可查看数据目的地。

可对目的地进行编辑和删除,编辑的时候目的地类型不允许改变。

  • 失败转发目的地:转发至数据目的地失败时,将数据转发至失败转发目的地,点击“+失败转发目的地”按钮可进行添加,目前仅支持添加一个失败转发目的地,且仅支持转发到kafka,相关属性设置如下各表所示。

(1)kafka

属性 属性说明
目的地类型 目前仅支持kafka
服务地址 kafka服务地址
端口 kafka服务端口
主题 即kafka主题名称
用户名 kafka用户名
密码 kafka用户密码

基本操作

列表中的基本操作如表2

表2 基本操作

操作名称 操作 详解
编辑调试 进入规则编辑调试页面,编辑规则。 规则名称、规则描述、数据来源、查询字段、约束条件、消息模板、数据目的地均可修改。
启用 提交流式处理任务。
停用 停止所执行的流式处理任务。
删除 删除规则。

编辑SQL

编辑和测试正确的SQL语句,使数据可以通过规则引擎流通

数据格式

根据消息内容格式选择json或者jsonArray

查询字段

填写要查询的模板中的字段,详细用法请参考SQL表达式

约束条件

填写查询字段的筛选条件,如age>18

消息模板

填写所选topic上报消息的格式模板

测试

点击测试按钮,预览查询结果

SQL表达式

建立规则时,可以编写SQL来解析和处理数据。JSON数据可以映射为虚拟的表,其中Key对应表的列,Value对应列值,这样就可以使用SQL处理。

SELECT

SELECT语句中的字段,可以使用JSON中的键值,也可以使用SQL内置的函数,规则引擎支持的常用函数见表3
支持 * 和函数的组合。不支持SQL子查询。 上报的JSON数据格式,可以是数组或者嵌套的JSON,SQL语句支持使用JSONPath获取其中的属性值,如对于{a:{key1:v1, key2:v2}},可以通过a.key2 获取到值v2。使用变量时,需要注意单双引号区别:单引号表示常量,双引号或不加引号表示变量。如使用单引号'a.key2',值为a.key2。
支持函数查询。支持的函数有:topic()、topic(1)、topic(2)、deviceName()。如对于数据来源:iot/iotol9592xu/21m0kg2y/device20/shadow/update,可以通过topic()获取到值iot/iotol9592xu/21m0kg2y/device20/shadow/update,通过topic(1)获取到值iot,通过topic(2)获取到值iotol9592xu,通过deviceName()获取到值device20。
支持暗示的数据格式,比如/*+ json('timestamp', 'clienttoken', 'data.temp:temp', 'data.humi:humi' ,'data.k1:k1')*/,暗示用于数据目的地为物接入主题的情况,目的是将筛选出来的数据按照暗示给出的json格式进行转化,并存入目的主题。

表3 函数列表

函数名 说明 示例
CURRENT_TIMESTAMP 获取系统当前时间 CURRENT_TIMESTAMP
abs 求绝对值 abs(data)
floor 向下取整 floor(number)
ceil 向上取整 ceil(number)
char_length 求字符串长度 char_length(deviceid)
pmod 取模 pmod(m, n)
power 返回n的m次幂 power(2, 10)
upper 返回大写字符 upper(string)
topic 获取数据来源 topic() topic(1),topic(2)分别获取第一字段和第二字段。
deviceName 获取设备名称 deviceName()

FROM

FROM Topic 即该规则指定的数据来源。

WHERE

规则触发条件,条件表达式。不支持子SQL查询。WHERE中可以使用的字段和SELECT语句一致,当接收到对应Topic的消息时,WHERE语句的结果会作为是否触发规则的判断条件。具体条件表达式列表见表4

表4 条件表达式

操作符 描述 示例
= 相等 color='red'
<> 不等于 color<>'red'
AND 逻辑与 color='red' AND state='running'
OR 逻辑或 color='red' OR state='running'
() 括号代表一个整体 color='red' AND (state='running' OR state='ready')
+ 算数加 4+5
- 算数减 5-4
/ 20/5
* 4*5
% 取余数 11%2
< 小于 5<6
<= 小于或等于 5<=6
> 大于 5>4
>= 大于或等于 5>=4
CASE...WHEN...
THEN...ELSE...END
Case表达式 CASE col WHEN 1 THEN ‘Y’ WHEN 0 THEN ‘N’ ELSE ‘’ END as flag
IN 仅支持枚举,不支持子查询 比如 WHERE a IN(1,2,3); 不支持以下形式: WHERE a IN(select xxx)

Flink关键字

以下字符串组合已经被Flink保留为关键字。如果您想使用以下字符串作为字段名称,请在关键字两端添加`,例如`value`。

  A,ABS,ABSOLUTE,ACTION,ADA,ADD,ADMIN,AFTER,ALL,ALLOCATE,ALLOW,ALTER,ALWAYS,AND,ANY,ARE,ARRAY,AS,ASC,ASENSITIVE,ASSERTION,ASSIGNMENT,ASYMMETRIC,AT,ATOMIC,ATTRIBUTE,ATTRIBUTES,AUTHORIZATION,AVG,BEFORE,BEGIN,BERNOULLI,BETWEEN,BIGINT,BINARY,BIT,BLOB,BOOLEAN,BOTH,BREADTH,BY,C,CALL,CALLED,CARDINALITY,CASCADE,CASCADED,CASE,CAST,CATALOG,CATALOG_NAME,CEIL,CEILING,CENTURY,CHAIN,CHAR,CHARACTER,CHARACTERISTICTS,CHARACTERS,CHARACTER_LENGTH,CHARACTER_SET_CATALOG,CHARACTER_SET_NAME,CHARACTER_SET_SCHEMA,CHAR_LENGTH,CHECK,CLASS_ORIGIN,CLOB,CLOSE,COALESCE,COBOL,COLLATE,COLLATION,COLLATION_CATALOG,COLLATION_NAME,COLLATION_SCHEMA,COLLECT,COLUMN,COLUMN_NAME,COMMAND_FUNCTION,COMMAND_FUNCTION_CODE,COMMIT,COMMITTED,CONDITION,CONDITION_NUMBER,CONNECT,CONNECTION,CONNECTION_NAME,CONSTRAINT,CONSTRAINTS,CONSTRAINT_CATALOG,CONSTRAINT_NAME,CONSTRAINT_SCHEMA,CONSTRUCTOR,CONTAINS,CONTINUE,CONVERT,CORR,CORRESPONDING,COUNT,COVAR_POP,COVAR_SAMP,CREATE,CROSS,CUBE,CUME_DIST,CURRENT,CURRENT_CATALOG,CURRENT_DATE,CURRENT_DEFAULT_TRANSFORM_GROUP,CURRENT_PATH,CURRENT_ROLE,CURRENT_SCHEMA,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_TRANSFORM_GROUP_FOR_TYPE,CURRENT_USER,CURSOR,CURSOR_NAME,CYCLE,DATA,DATABASE,DATE,DATETIME_INTERVAL_CODE,DATETIME_INTERVAL_PRECISION,DAY,DEALLOCATE,DEC,DECADE,DECIMAL,DECLARE,DEFAULT,DEFAULTS,DEFERRABLE,DEFERRED,DEFINED,DEFINER,DEGREE,DELETE,DENSE_RANK,DEPTH,DEREF,DERIVED,DESC,DESCRIBE,DESCRIPTION,DESCRIPTOR,DETERMINISTIC,DIAGNOSTICS,DISALLOW,DISCONNECT,DISPATCH,DISTINCT,DOMAIN,DOUBLE,DOW,DOY,DROP,DYNAMIC,DYNAMIC_FUNCTION,DYNAMIC_FUNCTION_CODE,EACH,ELEMENT,ELSE,END,END-EXEC,EPOCH,EQUALS,ESCAPE,EVERY,EXCEPT,EXCEPTION,EXCLUDE,EXCLUDING,EXEC,EXECUTE,EXISTS,EXP,EXPLAIN,EXTEND,EXTERNAL,EXTRACT,FALSE,FETCH,FILTER,FINAL,FIRST,FIRST_VALUE,FLOAT,FLOOR,FOLLOWING,FOR,FOREIGN,FORTRAN,FOUND,FRAC_SECOND,FREE,FROM,FULL,FUNCTION,FUSION,G,GENERAL,GENERATED,GET,GLOBAL,GO,GOTO,GRANT,GRANTED,GROUP,GROUPING,HAVING,HIERARCHY,HOLD,HOUR,IDENTITY,IMMEDIATE,IMPLEMENTATION,IMPORT,IN,INCLUDING,INCREMENT,INDICATOR,INITIALLY,INNER,INOUT,INPUT,INSENSITIVE,INSERT,INSTANCE,INSTANTIABLE,INT,INTEGER,INTERSECT,INTERSECTION,INTERVAL,INTO,INVOKER,IS,ISOLATION,JAVA,JOIN,K,KEY,KEY_MEMBER,KEY_TYPE,LABEL,LANGUAGE,LARGE,LAST,LAST_VALUE,LATERAL,LEADING,LEFT,LENGTH,LEVEL,LIBRARY,LIKE,LIMIT,LN,LOCAL,LOCALTIME,LOCALTIMESTAMP,LOCATOR,LOWER,M,MAP,MATCH,MATCHED,MAX,MAXVALUE,MEMBER,MERGE,MESSAGE_LENGTH,MESSAGE_OCTET_LENGTH,MESSAGE_TEXT,METHOD,MICROSECOND,MILLENNIUM,MIN,MINUTE,MINVALUE,MOD,MODIFIES,MODULE,MONTH,MORE,MULTISET,MUMPS,NAME,NAMES,NATIONAL,NATURAL,NCHAR,NCLOB,NESTING,NEW,NEXT,NO,NONE,NORMALIZE,NORMALIZED,NOT,NULL,NULLABLE,NULLIF,NULLS,NUMBER,NUMERIC,OBJECT,OCTETS,OCTET_LENGTH,OF,OFFSET,OLD,ON,ONLY,OPEN,OPTION,OPTIONS,OR,ORDER,ORDERING,ORDINALITY,OTHERS,OUT,OUTER,OUTPUT,OVER,OVERLAPS,OVERLAY,OVERRIDING,PAD,PARAMETER,PARAMETER_MODE,PARAMETER_NAME,PARAMETER_ORDINAL_POSITION,PARAMETER_SPECIFIC_CATALOG,PARAMETER_SPECIFIC_NAME,PARAMETER_SPECIFIC_SCHEMA,PARTIAL,PARTITION,PASCAL,PASSTHROUGH,PATH,PERCENTILE_CONT,PERCENTILE_DISC,PERCENT_RANK,PLACING,PLAN,PLI,POSITION,POWER,PRECEDING,PRECISION,PREPARE,PRESERVE,PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,QUARTER,RANGE,RANK,READ,READS,REAL,RECURSIVE,REF,REFERENCES,REFERENCING,REGR_AVGX,REGR_AVGY,REGR_COUNT,REGR_INTERCEPT,REGR_R2,REGR_SLOPE,REGR_SXX,REGR_SXY,REGR_SYY,RELATIVE,RELEASE,REPEATABLE,RESET,RESTART,RESTRICT,RESULT,RETURN,RETURNED_CARDINALITY,RETURNED_LENGTH,RETURNED_OCTET_LENGTH,RETURNED_SQLSTATE,RETURNS,REVOKE,RIGHT,ROLE,ROLLBACK,ROLLUP,ROUTINE,ROUTINE_CATALOG,ROUTINE_NAME,ROUTINE_SCHEMA,ROW,ROWS,ROW_COUNT,ROW_NUMBER,SAVEPOINT,SCALE,SCHEMA,SCHEMA_NAME,SCOPE,SCOPE_CATALOGS,SCOPE_NAME,SCOPE_SCHEMA,SCROLL,SEARCH,SECOND,SECTION,SECURITY,SELECT,SELF,SENSITIVE,SEQUENCE,SERIALIZABLE,SERVER,SERVER_NAME,SESSION,SESSION_USER,SET,SETS,SIMILAR,SIMPLE,SIZE,SMALLINT,SOME,SOURCE,SPACE,SPECIFIC,SPECIFICTYPE,SPECIFIC_NAME,SQL,SQLEXCEPTION,SQLSTATE,SQLWARNING,SQL_TSI_DAY,SQL_TSI_FRAC_SECOND,SQL_TSI_HOUR,SQL_TSI_MICROSECOND,SQL_TSI_MINUTE,SQL_TSI_MONTH,SQL_TSI_QUARTER,SQL_TSI_SECOND,SQL_TSI_WEEK,SQL_TSI_YEAR,SQRT,START,STATE,STATEMENT,STATIC,STDDEV_POP,STDDEV_SAMP,STREAM,STRUCTURE,STYLE,SUBCLASS_ORIGIN,SUBMULTISET,SUBSTITUTE,SUBSTRING,SUM,SYMMETRIC,SYSTEM,SYSTEM_USER,TABLE,TABLESAMPLE,TABLE_NAME,TEMPORARY,THEN,TIES,TIME,TIMESTAMP,TIMESTAMPADD,TIMESTAMPDIFF,TIMEZONE_HOUR,TIMEZONE_MINUTE,TINYINT,TO,TOP_LEVEL_COUNT,TRAILING,TRANSACTION,TRANSACTIONS_ACTIVE,TRANSACTIONS_COMMITTED,TRANSACTIONS_ROLLED_BACK,TRANSFORM,TRANSFORMS,TRANSLATE,TRANSLATION,TREAT,TRIGGER,TRIGGER_CATALOG,TRIGGER_NAME,TRIGGER_SCHEMA,TRIM,TRUE,TYPE,UESCAPE,UNBOUNDED,UNCOMMITTED,UNDER,UNION,UNIQUE,UNKNOWN,UNNAMED,UNNEST,UPDATE,UPPER,UPSERT,USAGE,USER,USER_DEFINED_TYPE_CATALOG,USER_DEFINED_TYPE_CODE,USER_DEFINED_TYPE_NAME,USER_DEFINED_TYPE_SCHEMA,USING,VALUE,VALUES,VARBINARY,VARCHAR,VARYING,VAR_POP,VAR_SAMP,VERSION,VIEW,WEEK,WHEN,WHENEVER,WHERE,WIDTH_BUCKET,WINDOW,WITH,WITHIN,WITHOUT,WORK,WRAPPER,WRITE,XML,YEAR,ZONE

应用接入

创建应用证书

菜单路径

应用 → +自定义接入权限

操作步骤

1.点击“应用接入”,进入应用接入操作界面。

2.点击"+自定义接入权限""。

3.选择所属项目,输入证书编码,点击确定。

查看应用详情

菜单路径

应用接入→查看

操作步骤

1.点击“应用接入”,进入应用接入操作界面。

2.选择应用证书所在行,点击"查看",进入应用详情页面

添加应用权限

菜单路径

应用接入→查看→添加。

操作步骤

1.点击“应用接入”,进入应用接入界面。

2.点击应用列表中的”查看“按钮,进入应用详情界面。

3.点击权限范围栏中的"添加“按钮。