使用公共实例时,可以配置数据流转规则,将处理过的数据转发到公共实例外部的时序数据库(TSDB)的中。本文以物模型数据上报Topic为例,介绍流转消息数据的完整流程。

前提条件

背景信息

本文示例中,写入时序数据库的数据如下:
  • timestamp:使用函数timestamp()获取设备上报数据的当前时间。
  • tag:使用函数deviceName()获取设备名称,写入标签{"deviceName":deviceName()}
  • metric:使用JSONPath方法,获取设备上报的物模型属性TemperatureHumidity的值,分别写入温、湿度的时序数据。

限制说明

  • 仅支持同地域转发。例如:华东2(上海)的物联网平台实例数据只能转发到华东2(上海)的TSDB实例中。
  • 仅支持转发到专有网络(VPC)下的TSDB实例。
  • 仅支持转发JSON格式数据。
  • 仅支持时序数据库(TSDB),不支持时序数据库InfluxDB版、时空数据库等。
  • 转发的消息中,除了配置为timestamptag值的字段外,其他字段都将作为metric写入时序数据库。metric的数据类型支持数值型、字符串,其他类型会导致写入数据库失败。

创建数据目的

  1. 登录物联网平台控制台
  2. 实例概览页面,找到对应的实例,单击实例进入实例详情页面。
    实例概览
  3. 在左侧导航栏,选择规则引擎 > 云产品流转
  4. 可选:云产品流转页面,单击右上角体验新版,进入新版功能页面。
    说明 如果您已执行过此操作,再次进入云产品流转页面,会直接进入新版功能页面。
  5. 单击数据目的页签,然后单击创建数据目的
  6. 创建数据目的对话框,输入数据目的名称,例如DataPurpose,按照以下参数说明,完成配置,然后单击确定
    参数 描述
    选择操作 选择存储到时序数据库(TSDB)中
    地域 与您的物联网平台实例所在地域一致。
    TSDB实例 选择数据转发目的为您已创建的专有网络(VPC)下的TSDB实例。
    metric数据类型 选择metric的数据类型。支持数值型字符串

    更多信息,可单击帮助按钮帮助查看。

    角色 授权物联网平台将数据写入TSDB。

配置并启动解析器

  1. 创建解析器,例如DataParser。具体操作,请参见创建解析器
  2. 解析器详情页面,关联数据源。
    1. 在配置向导的数据源下,单击关联数据源
    2. 在弹出的对话框中,单击数据源下拉列表,选择已创建的数据源DataSource,单击确定
  3. 解析器详情页面,关联数据目的。
    1. 单击配置向导的数据目的,然后单击数据目的列表右上方的关联数据目的
    2. 在弹出的对话框中,单击数据目的下拉列表,选择已创建的数据目的DataPurpose,单击确定
    3. 在数据目的列表,查看并保存数据目的ID,例如为1000
      后续解析脚本中,需使用此处的数据目的ID
  4. 解析器详情页面,单击解析器
  5. 在脚本输入框,输入解析脚本。脚本编辑方法,请参见脚本示例
    函数参数说明,请参见函数列表
    //通过payload函数,获取设备上报的消息内容,并按照JSON格式转换。
    var data = payload("json");
    //筛选出上报的温湿度值。
    var h = data.items.Humidity.value;
    var t = data.items.Temperature.value;
    //直接流转物模型上报数据。
    writeTsdb(1000,timestamp(),"temperature", t , {"deviceName":deviceName()});
    writeTsdb(1000,timestamp(),"humidity", h , {"deviceName":deviceName()});
  6. 单击调试,根据页面提示,选择产品和设备,输入Topic和Payload数据,验证脚本可执行。
    参数示例如下:示例

    运行结果如下,表示脚本执行成功。

    调试结果
  7. 单击发布
  8. 回到云产品流转页面的解析器页签,单击解析器DataParser对应的启动按钮,启动解析器。