DataWorks百问百答42:如何自动同步IoT系统新生成文件至MaxCompute?

背景:

物联网(The Internet of Things,简称IOT)是指通过各种信息传感器等各种装置与技术,实时采集任何需要的各种信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。其是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。
物联网、大数据和云计算作为当前第三次信息化浪潮的代表技术,将在未来形成广泛的影响。物联网专注于物物相连,大数据专注于数据的价值化,而云计算则为大数据和物联网提供计算资源等服务支持。
大数据是物联网体系的重要组成部分。物联网的体系结构分成六个部分,分别是设备、网络、平台、分析、应用和安全,其中分析部分的主要内容就是大数据分析。大数据分析是大数据完成数据价值化的重要手段之一,而进行数据分析的第一步就是要使数据能够上云。

解决方案

整条链路的关键步骤可以分为原始数据的存储,以及数据进入分析系统两大步。
存储方面IoT设备大量的数据通常情况下都会被以半结构化的形式,比如存储为CSV文件用以保留原始信息。这块可以利用阿里云的OSS来做存储获得较好的性能和量价比。但对于数据进入到大数据系统或者传统数据库来说急需要有专业数据同步系统。下图给出了一个非常典型的解决方案图,使用DataWorks的数据集成(Data Integration)来完成数据从OSS进入到大数据系统的过程。具体参考“向导模式配置任务”以及读取OSS写入MaxCompute,或者写入其他类型的数据源中
DataWorks百问百答42:如何自动同步IoT系统新生成文件至MaxCompute?

流程自动化配置

使用OSS读取CSV文件时,如下图需要配置读取的文件名
DataWorks百问百答42:如何自动同步IoT系统新生成文件至MaxCompute?

但是一般情况下IoT的数据都是在不停地生成,并且落地为csv文件,如果手工去配置对应的同步任务,并且将这些csv文件一个个的读取到云上(在此示例中使用MaxCompute),那将是一个非常繁琐,甚至是不可能完成的任务,比如这些csv文件每5分钟就生成一份,如何将这些csv能够自动同步到MaxCompute中?下面教给大家具体操作方法。

Step0.方案规约

1、OSS上的文件需要按时周期性生成。

由于DataWorks本身可以按照时间来周期调度,所以可以利用这点,周期性的启动同步任务,每次启动时读取不同的问题。方案就是DataWorks任务的调度周期和OSS上生成的文件同步,比如OSS上的文件都是每15分钟生成一份,DataWorks上的同步任务也设置为每15分钟调度一次。

2、生成的文件名需要利用时间戳来命名

OSS同步任务读取文件时需要明确OSS文件的名称,但是我们使用参数变量来动态的生成文件名,为了使同步任务自动生成的文件名可以跟OSS上文件名一致,需要IoT向OSS生成文件时,也使用同样的规律命名。推荐使用yyyymmddhhmm这样的时间戳作为文件名的一部分,其他部分保持不变。比如是iot_log_201911062315.csv。

Step1.文件名使用参数变量

DataWorks百问百答42:如何自动同步IoT系统新生成文件至MaxCompute?
如上图,将文件名的时间戳部分作为变量,使用一个参数来代替。${...}就是参数,里面写上参数名,这个名称可以自定义,此处定义为filename。
然后在调度配置面板中写下这个参数变量的变量值:(这里使用了自定义变量,具体用法非常灵活,可以参考:调度参数中的自定义参数部分。)

filename=$[yyyymmddhh24mi]

如下图,
DataWorks百问百答42:如何自动同步IoT系统新生成文件至MaxCompute?
此处自定义变量$[yyyymmddhh24mi]的含义为精确到分的时间戳,比如201911062315(2019年11月6日23点15分),202005250843(2020年5月25日08点43分),201912012207(2019年12月1日22点7分)。

Step2.设置周期调度

DataWorks百问百答42:如何自动同步IoT系统新生成文件至MaxCompute?
如上图,这里面是周期调度最关键的参数。
调度周期:选择“分钟”
开始时间和结束时间根据自己实际的情况来设置时间范围
时间间隔:根据自己业务情况,进行选择,这点就上面说的,一定要和参数时间戳和任务命名范围保持一致。即如果OSS里的文件是每15分钟生成一个文件,则时间间隔也定为15。

Step3.发布任务

DataWorks百问百答42:如何自动同步IoT系统新生成文件至MaxCompute?
如图点击"发布"将任务发布,然后在运维页面“周期任务”和“周期实例”中检查生成的任务和实例是否符合需求。
DataWorks百问百答42:如何自动同步IoT系统新生成文件至MaxCompute?

至此就完成了整个OSS自动同步的步骤。

DataWorks百问百答历史记录 请点击这里查看>>

更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】

上一篇:FineCMS v5.0.5 系统实现置顶与推荐功能及排序


下一篇:Exchange 2010 添加DAG成员报静态地址配置错误问题解决方法