设备接入 IoTDA设备接入 IoTDA

文档首页> 设备接入 IoTDA> 最佳实践> 数据转发> 数据转发至大数据平台分析并呈现
更新时间:2021/07/22 GMT+08:00
分享

数据转发至大数据平台分析并呈现

场景说明

物联网解决方案中,作为数据主体的“物”可能数量会非常大,产生的数据已经无法通过传统的数据处理服务进行处理。如何分析与利用这庞大的物联网设备数据对物联网企业来说又是一个新的挑战。

华为云物联网平台提供规则引擎能力,支持将数据上报的数据转发至华为云其他云服务,可实现将海量数据通过数据接入服务(DIS)转发至MapReduce服务(MRS),对数据进行处理后再由数据可视化服务(DLV)读取数据呈现为可视化报表,实现数据的一站式采集、处理和分析。

在本示例中,我们实现下述场景:

自动售货机每次销售商品后上报销售商品种类、数量、时间和所属区域到物联网平台,物联网平台将数据通过数据接入服务转发至MapReduce服务,MapReduce服务处理数据并写为统计文件,数据可视化服务从统计文件读取数据展现为四个维度的销售报表。

创建MapReduce集群

创建集群,用于存储和处理DIS转储的数据。

  1. 登录华为云官方网站,访问MapReduce服务
  2. 单击“立即购买”,在购买页面单击“自定义购买”页签,创建集群,以下配置仅为样例。

    参数名称

    说明

    软件配置

    当前区域

    保持默认。

    集群名称

    自定义或保持默认。

    集群版本

    保持默认。

    集群类型

    分析集群。组件勾选Spark,系统会自动勾选Hive和Tez。“Hive使用外部数据源存储元数据”保持关闭。

    Kerberos认证

    关闭。

    用户名

    固定为“admin”不可修改。

    密码

    自定义。

    确认密码

    硬件配置

    计费模式

    按实际使用需求选择,本示例中选择“按需计费”。

    网络配置

    全部保持默认。

    实例

    为节省实验费用,可修改分析Core的实例数量为1,其余保持默认值。密码自定义。

    高级配置均保持默认。

  3. 集群创建成功后,等待15到30分钟,集群状态变更为“运行中”则表示创建成功。

创建OBS桶

  1. 登录华为云官方网站,访问对象存储服务
  2. 单击“管理控制台”进入对象存储服务管理控制台。
  3. 单击页面右上角的“创建桶”,根据需求选择桶规格后,单击“立即创建”。

创建数据接入通道和转储任务

创建通道并配置转储任务,实现将设备管理服务传入DIS的数据转发至MRS。

  1. 登录华为云官方网站,访问数据接入服务
  2. 单击“立即购买”,购买接入通道,以下配置仅为样例。

    参数名称

    说明

    区域

    保持默认。

    通道名称

    自定义或保持默认。

    通道类型

    保持默认值“普通”。

    分区数量

    按需填写。

    生命周期

    源数据类型

    选择“JSON”。

    自动扩缩容

    保持关闭。

    Schema开关

    高级配置

    保持默认。

  3. 通道购买成功后,进入DIS控制台接入管理 > 通道管理页面。
  4. 单击需要查看的通道名称,进入所选通道的管理页面,选择“转储管理”页签。
  5. 单击“添加转储任务”按钮。

  6. 在弹出的“添加转储任务”页面配置转储相关配置项。

    参数名称

    说明

    源数据类型

    默认为通道源数据类型

    转储服务类型

    选择“MRS”。

    任务名称

    自定义,如“iot_to_mrs”。

    转储文件格式

    选择“Text”。

    MRS集群

    选择已创建成功的MRS集群。

    HDFS路径

    选择转储文件要存储的路径,建议选择“/user”。

    转储文件目录

    自定义转储文件存放的文件夹名称,本示例中为“temp”。

    偏移量

    选择“最新”。

    数据转储周期

    本示例中修改为“60”。

    数据临时桶

    选择已创建的OBS桶。

    数据临时目录

    自定义,本示例中为“temp”。

  7. 单击“立即创建”。

配置设备接入服务

在设备接入服务中创建产品模型、注册设备并设置数据转发规则,实现当设备上报数据时将数据转发至DIS。

  1. 访问设备接入服务,单击“立即使用”进入设备接入控制台。
  2. 选择左侧导航栏的“产品”,单击右上角下拉框,选择新建产品所属的资源空间。

    注:本文中使用的产品模型和设备仅为示例,您可以使用自己的产品模型和设备进行操作。

  3. 单击右上角的“创建产品”,创建一个基于MQTT协议的产品,填写参数后,单击“确认”

    基本信息

    产品名称

    自定义,如MQTT_Device

    协议类型

    选择“MQTT”

    数据格式

    选择“JSON”

    厂商名称

    自定义

    模型定义

    选择模型

    请参考步骤5导入产品模型。

    所属行业

    根据实际情况进行填写。

    设备类型

  4. 单击Profile.zip,获取产品模型文件样例。
  5. 在模型定义页面,单击“上传模型文件”,在弹出的页面中加载产品模型文件,然后单击“确认”。
    图1 上传模型文件
  6. 选择左侧导航栏的设备 > 设备注册,单击右上角的“注册设备”,填写设备注册参数。

    参数名称

    说明

    所属产品

    选择在步骤3中创建的产品。

    设备标识码

    即node_id,填写为设备的IMEI、MAC地址或Serial No;若没有真实设备,填写自定义字符串,由英文字母和数字组成。

    设备名称

    自定义。

    设备认证类型

    选择“密钥”。

    密钥

    设备密钥,可自定义,不填写物联网平台会自动生成。

    填写完成后单击“确定”,请注意保存注册成功返回的“设备ID”和“设备密钥”。

  7. 选择左侧导航栏的规则>数据转发,单击右上角的“创建规则”

    :您也可以基于已经创建的规则,在规则详情页面,添加新的转发目标MySQL。

  8. 参考下表参数说明,填写规则内容。以下参数取值仅为示例,您可参考用户指南创建自己的规则,填写完成后单击“创建规则”

    参数名

    参数说明

    规则名称

    自定义,如iotda-dis。

    规则描述

    自定义,如数据转发至DIS服务。

    数据来源

    选择“设备属性”

    触发事件

    自动匹配“设备属性上报”

    资源空间

    2中的资源空间保持一致。

    快速配置

    1. 单击右侧的“快速配置”。
    2. 勾选“符合以下所选条件的数据”。
    3. 所属产品:选择3创建的产品。
    4. “所属服务”和“按属性过滤”均不选择,保持默认。单击“确认”。
  9. 单击“设置转发目标”页签,单击“添加”,设置转发目标。

    参数名

    参数说明

    转发目标

    选择“数据接入服务(DIS)”

    区域

    选择DIS服务的所在区域。若未授权访问此区域的服务,请根据界面提示,配置云服务访问授权。

    通道归属

    选择“自有通道”

    通道

    选择通道。若没有,请前往DIS服务创建通道

  10. 单击“启动规则”,激活配置好的数据转发规则。
    图2 激活规则

配置数据可视化服务

配置数据可视化服务,新建数据报表视图。

  1. 登录华为云官方网站,访问数据可视化服务
  2. 单击“进入控制台”。

    注:若您未开通DLV服务,可单击“体验试用”获取30天的基础版免费试用。

  3. 访问DLV控制台“我的大屏”页面,新建一个大屏。

  4. 选择空白模板,输入大屏名称后,单击“创建大屏”。
  5. 单击文本 > 标题新增一个标题。

  6. 在右侧“数据”面板修改静态数据中“value”的值为“每日销量”。
  7. 在大屏内拖动标题到左上角,并拉伸成合适的形状。

  8. 单击常用图表 > 线状图新增一个线状图报表。

  9. 拖动图表到标题下面并拉伸成合适的形状。

  10. 重复以上步骤再添加一个标题为“时间段销量”柱状图,一个标题为“种类销量”的饼状图,一个标题为“地区销量”的区域排行图,并根据自己的需要设置图表的样式。最终效果类似下图。

  11. 单击页面右上角的按钮退出编辑页面。

验证操作

  1. 首先控制设备上报10条数据。
    • 您可以使用配置设备接入服务时注册的真实设备接入平台,上报数据。
    • 您也可以使用模拟器模拟设备上报数据,操作方法请参考在线开发MQTT协议的智慧路灯

    上报数据的样例如下,请自行修改参数的取值模拟真实设备数据:

    样例1
    {
    	"msgType": "deviceReq",
    	"data": [{
    		"serviceId": "sales",
    		"serviceData": {
    			"category": "soda",
                            "number": "1",
                            "area": "SZLH",
                            "timeStamp": "20190425T091157Z"
    		}
    	}]
    }

    上述样例表示UTC时间2019年4月25日9点11分57秒深圳罗湖的自动贩卖机卖出了一支碳酸饮料。

    样例2

    {
    	"msgType": "deviceReq",
    	"data": [{
    		"serviceId": "sales",
    		"serviceData": {
    			"category": "juice",
                            "number": "2",
                            "area": "SZFT"
                            "timeStamp": "20190426T170005Z"
    		}
    	}]
    }

    上述样例表示UTC时间2019年4月26日17点05秒深圳福田的自动贩卖机卖出了两支果汁饮料。

    本文以上报下表的数据为例。

    category

    number

    area

    timeStamp

    soda

    1

    SZLH

    20190425T091157Z

    juice

    1

    SZFT

    20190425T121511Z

    sport

    1

    SZLH

    20190425T172433Z

    juice

    2

    SZFT

    20190426T170005Z

    soda

    1

    SZNS

    20190426T190905Z

    juice

    1

    SZNS

    20190427T085959Z

    juice

    2

    SZLH

    20190427T111111Z

    soda

    3

    SZFT

    20190428T182215Z

    sport

    1

    SZLH

    20190429T205901Z

    soda

    1

    SZLG

    20190430T225045Z

  2. 登录MRS管理控制台,选择“集群列表 > 现有集群”,单击集群名进入集群管理页面。

  3. 单击页面上方的“文件管理”,再单击“HDFS文件列表”,进入转储文件目录(例如“temp”)查看是否存在转储的数据文件。

    注:DIS会将数据合并转发,所以此处的文件数量和上报的数据条数可能会不一致。

  4. 单击页面上方的“作业管理”,在“作业”页签中单击“添加”,配置作业信息。本示例中创建一个spark类型的作业,实现分析设备上报数据,分别按日期、时间段、种类、区域统计销量,将分析结果输出为CSV文件并保存至OBS。

    参数名称

    说明

    作业类型

    选择“SparkSubmit”。

    作业名称

    自定义,如“test”。

    执行程序路径

    1. 下载jar包并上传至OBS桶。
    2. 回到添加作业页面,单击“OBS”后单击“浏览”选择刚刚上传的jar文件。

    运行程序参数

    左侧选择“--class”,右侧输入“com.huawei.bigdata.spark.examples.SalesStatistics”。

    执行程序参数

    输入“AK SK inputpath outputpath”。

    • 其中AK SK填写华为云账号的AK、SK,获取方法可参考AK和SK的获取方法
    • inputpath填写文件输入路径,在本样例中为DIS的转储路径,如“/user/temp”。
    • outputpath填写文件输出路径,在本样例中为已申请的OBS桶内的output文件夹(无需提前在OBS创建文件夹,MRS会自动创建),如“s3a://{OBS桶名称}/output”。

    服务配置参数

    无需填写。

    配置完成后单击“确定”启动作业。

  5. 作业完成后,可在OBS桶内看到output文件夹,里面有四个文件夹,每个文件夹内有一个“_SUCCESS”文件和一个“part”开头的csv文件。

    注:本实验的样例程序分析数据时会将UTC时间转换为本地时间,因此数据分析结果中的日期与时间段数值会和上报时的数值不一致。

  6. 登录华为云官方网站,访问数据可视化服务
  7. 单击“进入控制台”。
  8. 单击“我的数据 > 新建数据连接” ,在“新建数据连接”页面左侧的数据库类型中,选择“CSV文件”,按照下表的数据规划填写配置后单击“确定”。重复本步骤建立4个数据连接。

    参数名

    说明

    名称

    建立4个数据连接,分别命名为:

    • salesByDate
    • salesByTime
    • salesByCategory
    • salesByArea

    Access Key

    填写华为云账号的AK、SK,获取方法可参考AK和SK的获取方法

    Secret Access Key

    文件来源

    选择“OBS文件”。

    文件路径

    4个连接分别选择步骤5的output文件夹内和连接同名的文件夹内的csv文件。

  9. 返回“我的大屏”页签,单击配置数据可视化服务时创建的大屏右下的按钮进入编辑页面。
  10. 选中“每日销量”表,在右侧数据面板选择数据类型为“CSV文件”,数据连接选择步骤8添加的数据连接“salesByDate”。
  11. 根据响应数据的属性名称配置字段映射。

    配置 “x”为 “saleDate”, “y”为 “saleNumber”。

  12. 选中“时间段销量”表,在右侧数据面板选择数据类型为“CSV文件”,数据连接选择步骤8添加的数据连接“salesByTime”。
  13. 根据响应数据的属性名称配置字段映射。

    配置 “x”为 “saleTime”, “y”为 “saleNumber”。

  14. 选中“种类销量”表,在右侧数据面板选择数据类型为“CSV文件”,数据连接选择步骤8添加的数据连接“salesByCategory”。
  15. 根据响应数据的属性名称配置字段映射。

    配置 “s”为 “category”, “y”为 “saleNumber”,并设置各个分类的名称(本示例中为“soda”,“juice”,“sport”)和图例的颜色。

  16. 选中“地区销量”表,在右侧数据面板选择数据类型为“CSV文件”,数据连接选择步骤8添加的数据连接“salesByArea”。
  17. 根据响应数据的属性名称配置字段映射。

    配置 “num”为 “saleNumber”。

  18. 全部图表配置完成后,单击页面右上角的可预览报表,示例如下图。

分享:

    相关文档

    相关产品