物联网(IoT)是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互相连通的网络。本文将为您介绍IoT数据自动化同步至云端的解决方案。

背景信息

物联网(The Internet of Things,简称IoT)是指通过信息传感器等各种装置和技术,实时采集任何需要的信息。通过各类网络的接入,实现物与物、物与人的连接,实现对物品和过程的智能化感知、识别和管理。

物联网、大数据和云计算作为当前第三次信息化浪潮的代表技术,将在未来形成广泛的影响。物联网专注于物物相连,大数据专注于数据的价值化,云计算则为大数据和物联网提供计算资源等服务支持。

大数据是物联网体系的重要组成部分。物联网的体系结构包括设备、网络、平台、分析、应用和安全,其中分析部分的主要内容为大数据分析。大数据分析是大数据完成数据价值化的重要手段之一,而进行大数据分析的第一步是让数据成功上云。

解决方案

IoT数据自动化同步至云端解决方案主要包括存储原始数据和同步数据至分析系统两部分。

IoT设备大量的数据通常以半结构化的形式存储。例如,使用OSS存储原始信息为CSV文件。

但同步至大数据系统或传统数据库的数据,需要使用专业的数据同步系统。下图为您展示使用DataWorks数据集成完成OSS数据同步至大数据系统的解决方案流程。 解决方案
  1. 新建离线同步节点,详情请参见通过向导模式配置任务
  2. 选择数据来源OSS进行读取,详情请参见配置OSS Reader
  3. 选择数据去向进行写入,本文以写入MaxCompute为例,您也可以写入其它类型的数据源中

配置自动化流程

使用OSS读取CSV文件时,需要配置读取的文件名(Object前缀)。通常IoT会不停生成数据并存储为CSV文件,如果您手动配置同步任务以读取IoT数据至云端,会较为复杂且不易实现。下文将为您介绍每5分钟生成一份CSV文件的情况下,如何自动同步数据至云端(MaxCompute)。

该解决方案需要注意的问题如下:
  • OSS上的文件需要按时周期性生成。

    DataWorks具备按照定时时间进行周期调度的特点,您可以设置DataWorks同步任务的调度周期为OSS生成文件的周期。例如,OSS上的文件每15分钟生成一份,设置DataWorks同步任务的调度周期为每15分钟调度一次。

  • 生成的文件名需要使用时间戳来命名。
    OSS同步任务在读取文件时,需要使用时间戳对文件进行命名。DataWorks通过参数变量来动态生成文件名称,以确保和OSS上的文件名称保持一致。
    说明 推荐您使用 yyyymmddhhmm等时间戳作为文件名的一部分,例如 iot_log_201911062315.csv
  1. 登录DataWorks控制台,单击相应工作空间后的进入数据集成
  2. 新增OSS数据源和MaxCompute数据源,详情请参见配置OSS数据源配置MaxCompute数据源
  3. 单击当前页面左上角的图标,选择全部产品 > 数据开发,新建业务流程,详情请参见新建业务流程
  4. 新建离线同步节点,详情请参见新建离线同步节点
  5. 在离线同步节点的编辑页面,选择数据来源,并使用参数变量作为文件名。
    数据来源

    如上图所示,将文件名的时间戳部分作为变量,使用${...}格式的参数代替。您可以自定义参数名称,示例为filename

    单击右侧的 调度配置,在 基础属性 > 参数中为上述自定义参数赋值为 filename=$[yyyymmddhh24mi],详情请参见 调度参数赋值

    此处自定义变量$[yyyymmddhh24mi]的含义为精确到分的时间戳。例如201911062315(2019年11月6日23点15分)、202005250843(2020年5月25日08点43分)和201912012207(2019年12月1日22点7分)。

  6. 调度配置 > 时间属性下,配置调度周期
    调度周期
    选择 调度周期分钟,根据自身需求设置 开始时间时间间隔结束时间
    注意 时间间隔务必和参数时间戳、任务命名范围保持一致。例如OSS上的文件每15分钟生成一份,则时间间隔同样设置为15分钟。
  7. 提交并发布节点,详情请参见发布管理
    发布
  8. 任务发布成功后,单击右上角的运维,进入周期任务周期实例页面,查看生成的任务或实例是否符合需求。详情请参见周期任务