数据转发到表格存储(Tablestore)宽表模型

设备元数据(例如设备标签、属性和状态数据)具有高频更新、查询能力要求高等特点,可用于设备管理、设备圈选、设备状态查询,需要支持高并发低延迟的数据更新、多维度检索、地理空间检索以及数据实时计算与分析。表格存储(Tablestore)的宽表引擎是一个分布式的数据表,可用于设备元数据的存储与更新。本文以物模型数据上报Topic为例,介绍使用云产品流转功能将设备数据转发到表格存储(Tablestore)宽表模型中的完整流程。

工作原理

image

云产品流转将设备的Topic消息转发到表格存储实例中的数据表中存储,使用表格存储的宽表引擎服务。

在上图中:

使用限制

  • 新版和旧版云产品流转功能均支持将数据流转到表格存储(Tablestore)。旧版云产品流转使用示例,请参见数据转发到表格存储(旧版)

  • 物联网平台实例及所在地域支持将数据转发到表格存储(Tablestore)宽表模型。支持的地域详细信息,请参见各地域功能说明

  • 物联网平台实例下设备消息转发的更多使用限制,请参见使用限制

应用场景

可应用于车联网、智能家居、工业物联网等物联网场景。详细说明,请参见物联网存储IoTstore的应用场景

前提条件

  • 已添加待转发的设备Topic数据源。例如:创建数据源DataSource,添加指定设备的物模型数据上报Topic。具体步骤,请参见添加待流转的数据源

  • 已创建表格存储实例和用于接收数据的数据表。表格存储使用方法,请参见表格存储文档

    重要

    企业版实例中,表格存储实例所在地域,必须与企业版实例所在地域一致。

背景信息

表格存储宽表模型:类Bigtable/HBase模型,可应用于元数据、大数据等多种场景,支持数据版本、生命周期、主键列自增、条件更新、局部事务、原子计数器、过滤器等功能。更多信息,请参见宽表模型

将物联网平台设备上报数据转发到表格存储中的详细说明,请参见物联网存储介绍

创建数据目的

  1. 登录物联网平台控制台

  2. 实例概览页签的全部环境下,找到对应的实例,单击实例卡片。

  3. 在左侧导航栏,选择消息转发 > 云产品流转

  4. 云产品流转页面,单击右上角体验新版,进入新版功能页面。

    说明

    如果您已执行过此操作,再次进入云产品流转页面,会直接进入新版功能页面。

  5. 单击数据目的页签,然后单击创建数据目的

  6. 创建数据目的对话框,输入数据目的名称,例如DataPurpose,按照以下参数说明,完成配置,然后单击确定

    说明

    仅支持转发JSON格式数据。

    选择操作

    参数

    说明

    选择操作

    选择存储到表格存储(Tablestore)

    地域

    选择表格存储所在地域。

    实例

    选择表格存储实例。

    您可以单击创建实例,跳转到表格存储控制台,创建表格存储实例,请参见表格存储文档

    存储类型

    选择宽表模型

    数据表

    选择接收数据的表格存储数据表。

    您可以单击创建数据表,跳转到表格存储控制台,创建表格存储数据表。

    角色

    授权物联网平台将数据写入表格存储。

    如您还未创建相关角色,单击创建RAM角色,跳转到RAM控制台,创建角色和授权策略,请参见创建RAM角色

配置并启动解析器

  1. 创建解析器,例如DataParser。具体操作,请参见步骤一:创建解析器

  2. 解析器详情页面,关联数据源。

    1. 在配置向导的数据源下,单击关联数据源

    2. 在弹出的对话框中,单击数据源下拉列表,选择已创建的数据源DataSource,单击确定

  3. 解析器详情页面,关联数据目的。

    1. 单击配置向导的数据目的,然后单击数据目的列表右上方的关联数据目的

    2. 在弹出的对话框中,单击数据目的下拉列表,选择已创建的数据目的DataPurpose,单击确定

    3. 在数据目的列表,查看并保存数据目的ID,例如为1000

      后续解析脚本中,需使用此处的数据目的ID

  4. 解析器详情页面,单击解析器

  5. 在脚本输入框,输入解析脚本。

    解析脚本类似JavaScript语言,编辑脚本的语法参考JavaScript语法,详细编辑方法,请参见脚本语法

    函数参数说明,请参见函数列表

    //通过payload函数,获取设备上报的消息内容,并按照JSON格式转换。
    var data = payload("json");
    //获取上报的属性值。
    var h = data.items.Humidity.value;
    var t = data.items.Temperature.value;
    // 表中添加主键deviceName、id,在writeTableStore方法中,可以按column:value的形式,将温湿度值写入对应的列。
    writeTableStore(1000, {"deviceName":deviceName(), "id":timestamp(), "temperature":t, "humidity":h});
  6. 单击调试,根据页面提示,选择产品和设备,输入Topic和Payload数据,验证脚本可执行。

    参数示例如下:调试示例

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

    调试结果

  7. 单击发布

  8. 回到云产品流转页面的解析器页签,单击解析器DataParser对应的启动按钮,启动解析器。

后续操作

  1. 物联网平台控制台,单击目标企业版实例,查看设备状态和消息转发日志。具体操作,请参见云端运行日志

  2. 数据推送成功后,在表格存储接收数据的数据表的数据管理页签,查看是否成功接收到指定数据。

    数据管理

操作样例

设备元数据接入方案

相关文档

  • 设备接入物联网平台上报数据的操作指导,请参见设备接入引导

  • 您可在实例详情页面,查看消息转发TPS可用资源,确保设备消息能正常转发到表格存储中。具体操作,请参见查看实例信息和运行数据。如果可用资源不足,可进行升配。具体内容,请参见升配

  • 使用表格存储的注意事项和常见问题,请参见表格存储的一般性问题