全部产品
Search
文档中心

阿里云物联网平台:数据转发到时序数据库(TSDB)

更新时间:Aug 31, 2023

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

前提条件

  • 已确认当前物联网平台实例及所在地域支持将数据转发到时序数据库(TSDB)。支持的地域详细信息,请参见各地域功能说明

  • 已创建数据源DataSource,并添加物模型数据上报Topic。具体步骤,请参见添加待流转的数据源

  • 已在日本(东京)地域创建专有网络下的TSDB实例。详细内容,请参见时间序列数据库TSDB文档

背景信息

转发的数据目的配置完成后,会自动完成以下配置,实现设备数据通过物联网平台的规则引擎转发到时序数据库(TSDB)。

  • 物联网平台占用TSDB实例所在虚拟交换机的2个IP地址;将虚拟交换机的IPv4网段配置到TSDB实例的白名单中。
  • 在TSDB实例所在的VPC网络下创建托管安全组,安全组名称默认以sg-nsm-开头。

本文示例中,写入时序数据库的数据如下:

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

限制说明

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

使用说明

目前,新版和旧版云产品流转功能均支持将数据流转到时序数据库(TSDB)。旧版云产品流转使用示例,请参见旧版:数据转发到时序数据库(TSDB)

创建数据目的

  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对应的启动按钮,启动解析器。