通过规则引擎的数据流转功能,物联网平台可将指定Topic的数据流转至其他Topic和其他阿里云服务中。本文将为您详细讲解如何设置一条完整的数据流转规则。设置过程依次是创建规则、编写处理数据的SQL、设置数据流转目的地和设置流转失败的数据转发目的地。

操作步骤

  1. 在物联网平台控制台左侧导航栏,选择规则引擎
  2. 数据流转页签栏下,单击创建规则
  3. 填写规则名称,选择数据格式后,单击确认


    参数 描述
    规则名称 输入规则名称,用以区别各条规则。名称支持中文汉字、英文字母、数字、下划线和连字符。长度为1-30字节。一个中文汉字占二字节。
    数据格式 选择该规则处理数据的格式。可选:JSON和二进制。
    说明
    • 因数据流转基于Topic处理数据,此处的数据格式需与被处理Topic中的数据格式保持一致。
    • 若选择为二进制,该规则不能处理系统Topic的消息,且不能将数据转发至表格存储、时序时空数据库和云数据库RDS版。
    规则描述 规则描述信息。
  4. 规则创建成功后,页面将跳转到数据流转详情页。您需编辑处理消息数据的SQL、设置数据转发目的地和设置错误数据转发目的地。


    1. 单击编写SQL,编写筛选消息字段的SQL。

      例如:以下示例SQL可以从test1128产品下,全部设备的所有Topic消息中,取出deviceName字段内容。

      说明 二进制数据可使用 to_base64(*)将原始数据转换成base64String,同时支持内置函数和条件筛选。


      参数设置解释如下,具体可参考SQL表达式函数列表

      参数 描述
      规则查询语句 系统会在这里,根据您设置的字段Topic条件自动补充完整规则查询语句。
      字段

      指定要处理的消息内容字段。如,填入deviceName() as deviceName,则表示需筛选出消息中的deviceName字段内容。

      有关消息内容数据格式,请参见数据格式

      Topic

      选择需要处理的消息来源Topic。

      可选类型:

      • 自定义:指定消息源是自定义Topic时,支持使用通配符+#
        • 全部设备(+):表示指定产品下所有设备。
        • /user/#:表示指定设备的所有Topic。

        自定义Topic和通配符使用,请参见自定义Topic

      • 系统:规则数据类型是JSON时的可选项。系统Topic消息包含:设备上报属性和事件消息、设备生命周期变更消息、设备拓扑关系变更消息和网关发现子设备消息。相关消息格式,请参见数据格式

        支持使用通配符+代表指定产品下的所有设备。

      • 设备状态:规则数据类型是JSON时的可选项。表示设备上下线状态变更消息Topic。设备上下线消息格式,请参见数据格式
      条件 设置规则触发条件。
    2. 单击转发数据一栏的添加操作,将数据转发至目的云产品。数据转发的具体实例,请参考使用实例目录下的具体文档。
      说明 最多可为一个规则创建10个数据转发操作。


      数据转发时,因选择的目的云产品出现异常情况导致转发失败,物联网平台会间隔1秒、3秒、10秒进行3次重试(重试策略可能会调整)。3次重试均失败后,消息会被丢弃。如果您对消息可靠性要求比较高,可以进行下一步:添加错误操作。重试失败的消息可以通过错误操作转发到其它云产品中。

    3. 单击转发错误数据一栏的添加错误操作,设置参数,将重试失败的错误消息转发至指定位置。


      说明
      • 正常操作和错误操作的转发目的地云产品不能相同。比如不能同时转发到表格存储。
      • 消息转发至云产品失败后,会进行重试。若重试失败,将根据错误操作数据转发的设置转发错误消息。
      • 错误消息转发失败后,不会再进行重试。
      • 这里的错误消息仅针对因其他云产品实例问题导致的规则引擎转发失败错误。
      • 最多支持添加一个错误操作。
      • 错误消息格式:
        {
              "ruleName":"",
              "topic":"",
              "productKey":"",
              "deviceName":"",
              "messageId":"",
              "base64OriginalPayload":"",
              "failures":[
                {
                  "actionType":"OTS",
                  "actionRegion":"cn-shanghai",
                  "actionResource":"table1",
                  "errorMessage":""
                },
                {
                  "actionType":"RDS",
                  "actionRegion":"cn-shanghai",
                  "actionResource":"instance1/table1",
                  "errorMessage":""
                }
              ]
        
        }

        错误消息参数说明如下:

        参数 说明
        ruleName 规则名称。
        topic 消息来源Topic。
        productKey 产品Key。
        deviceName 设备名称。
        messageId 云端消息ID。
        base64OriginalPayload Base64编码后的原始数据。
        failures 错误详情。可能会有多个。
        actionType 出错操作的类型。
        actionRegion 出错操作的地域。
        actionResource 出错操作的目的资源。
        errorMessage 错误信息。
  5. 所有设置完成后,返回至规则引擎数据流转页签栏,单击规则对应的启动按钮。规则启动后,数据即可按照规则进行转发。


    您也可以:
    • 单击查看进入数据流转详情页,修改规则的具体设置。
    • 单击删除删除对应规则。
      说明 运行中的规则不可删除。
    • 单击停止停止对应规则转发数据。