HDC.Cloud | 【IoT最佳实践】数据转发至大数据平台分析并呈现

举报
我是卤蛋 发表于 2020/02/18 10:53:28 2020/02/18
【摘要】 华为云物联网平台提供规则引擎能力,支持将数据上报的数据转发至华为云其他云服务,可实现将海量数据通过数据接入服务(DIS)转发至MapReduce服务(MRS),对数据进行处理后再由数据可视化服务(DLV)读取数据呈现为可视化报表,实现数据的一站式采集、处理和分析。

场景说明

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

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

1581989530626299.png

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

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

创建MapReduce集群

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

  1. 登录华为云官方网站,访问MapReduce服务

  2. 单击“立即购买”,创建集群,以下配置仅为样例。

    注:下图以新版自定义购买界面为例,需要在“购买集群”界面点击右上角的“点击体验新版”,然后选择“自定义购买”。
           

    1581990233546792.png        

    参数名称

    说明

    软件配置

    当前区域

    保持默认。

    集群名称

    自定义或保持默认。

    集群版本

    保持默认。

    集群类型

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

    Kerberos认证

    关闭。

    用户名

    固定为“admin”不可修改。

    密码

    自定义。

    确认密码

    硬件配置

    计费模式

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

    网络配置

    全部保持默认。

    实例

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

    高级配置均保持默认。

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

创建OBS桶

  1. 登录华为云官方网站,访问对象存储服务

  2. 单击“管理控制台”进入对象存储服务管理控制台。

  3. 单击页面右上角的“创建桶”,根据需求选择桶规格后,单击“立即创建”。

    1581990526999242.png        

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

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

  1. 登录华为云官方网站,访问数据接入服务

  2. 单击“立即购买”,购买接入通道,以下配置仅为样例。

    1581990805548584.png        

    参数名称

    说明

    区域

    保持默认。

    通道名称

    自定义或保持默认。

    通道类型

    保持默认值“普通”。

    分区数量

    按需填写。

    生命周期

    源数据类型

    选择“JSON”。

    自动扩缩容

    保持关闭。

    Schema开关

    高级配置

    保持默认。

  3. 通道购买成功后,进入DIS控制台“接入管理 > 通道管理”页面。

  4. 单击需要查看的通道名称,进入所选通道的管理页面,选择“转储管理”页签。

  5. 单击“添加转储任务”按钮。

    1581990927342356.png        

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

    1581990979901838.png        

    参数名称

    说明

    源数据类型

    默认为通道源数据类型

    转储服务类型

    选择“MRS”。

    任务名称

    自定义,如“iot_to_mrs”。

    转储文件格式

    选择“Text”。

    MRS集群

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

    HDFS路径

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

    转储文件目录

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

    偏移量

    选择“最新”。

    数据转储周期

    本示例中修改为“60”。

    数据临时桶

    选择已创建的OBS桶。

    数据临时目录

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

  7. 单击“立即创建”。

注册设备并创建数据转发规则

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

  1. 登录华为云官方网站,访问设备管理服务

  2. 单击“立即使用”进入设备管理控制台。

  3. 单击页面右上角的“进入设备管理服务”进入控制台。

  4. 进入“云服务配置管理”页面,按照页面提示配置与华为云对接。

    1581992119758308.png        

  5. 切换左侧菜单,打开“产品模型”页面,单击页面右上角的“新增产品模型 > 本地导入”。

  6. 导入样例模型文件,“产品名称”自定义,如“Vending_Machine”。点此获取样例模型文件

  7. 进入“设备 > 设备注册”页面,单击“创建”,填写设备注册参数。

    1581992203148600.png        

    参数名称

    说明

    选择产品

    选择您导入的产品模型,如“Vending_Machine”。

    设备标识码

    设备唯一物理标识,如IMEI、MAC地址等,用于设备在接入物联网平台时携带该标识信息完成接入鉴权。

    无真实设备时可填写任意包含数字或英文字母的字符串。

    预置密钥

    NB-IoT设备、集成Agent Lite SDK的设备接入时,用于设备和物联网平台之间的传输通道安全加密。原生MQTT设备接入时,暂无作用,可随意填写。
                       

    确认密钥

    再次填写预置密钥。

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

  8. 进入“规则”页面,单击“创建规则”,再单击“数据转发规则”。

    1581992285195042.png        

  9. 填写规则内容,规则名称自定义,动作类型选择“数据接入服务”,“区域”选择您开通DIS的区域,“通道”选择您购买的通道,“数据类型”选择“JSON”,填写完成后单击“提交”。

    1581992303767902.png        

    参数名称

    说明

    规则名称

    自定义,如“to_DIS”。

    对象类型

    保持默认。

    动作类型

    选择“数据接入服务”。

    区域

    选择您开通了数据接入服务的区域,本示例中为“cn-north-4”。

    通道

    选择已创建的通道名称。

    数据类型

    JSON

配置数据可视化服务

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

  1. 登录华为云官方网站,访问数据可视化服务

  2. 单击“进入控制台”。若您未开通DLV服务,可单击“体验试用”获取30天的基础版免费试用。

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

    1581992484543218.png        

  4. 选择空白模板,输入大屏名称后,单击“创建大屏”。

  5. 单击“文本 > 标题”新增一个标题。

    1581992515867023.png        

  6. 在右侧“数据”面板修改静态数据中“value”的值为“每日销量”。

  7. 在大屏内拖动标题到左上角,并拉伸成合适的形状。

    1581992535609933.png        

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

    1581992563774677.png        

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

    1581992583984977.png        

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

    1581992612634560.png        

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

验证操作

  1. 首先控制设备上报10条数据。

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

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

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

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

    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管理控制台,选择“集群列表 > 现有集群”,单击集群名进入集群管理页面。

    1581993574626991.png        

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

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

    1581993622441010.png        

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

    1581993658322333.png        

    参数名称

    说明

    作业类型

    选择“SparkSubmit”。

    作业名称

    自定义,如“test”。

    执行程序路径

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

    运行程序参数

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

    执行程序参数

    输入“AK SK inputpath outputpath”。

    其中AK SK填写华为云账号的AK、SK。

    inputpath填写文件输入路径,在本样例中为DIS的转储路径,如“/user/temp”。

    outputpath填写文件输出路径,在本样例中为已申请的OBS桶内的output文件夹(无需提前在OBS创建文件夹,MRS会自动创建),如“s3a://{OBS桶名称}/output”。

    服务配置参数

    无需填写。

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

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

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

    1581993777943471.png        

  6. 登录华为云官方网站,访问数据可视化服务

  7. 单击“进入控制台”。

  8. 单击“我的数据 > 新建数据连接” ,在“新建数据连接”页面左侧的数据库类型中,选择“CSV文件”,按照下表的数据规划填写配置后单击“确定”。重复本步骤建立4个数据连接。

    1581993853750444.png        

    参数名

    说明

    名称

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

    salesByDate

    salesByTime

    salesByCategory

    salesByArea

    Access Key

    填写华为云账号的AK、SK。

    Secret Access Key

    文件来源

    选择“OBS文件”。

    文件路径

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

  9. 返回“我的大屏”页签,单击之前创建的大屏右下的铅笔按钮进入编辑页面。

  10. 选中“每日销量”表,在右侧数据面板选择数据类型为“CSV文件”,数据连接选择“salesByDate”。

  11. 根据响应数据的属性名称配置字段映射。

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

    1581994061990346.png        

  12. 选中“时间段销量”表,在右侧数据面板选择数据类型为“CSV文件”,数据连接选择“salesByTime”。

  13. 根据响应数据的属性名称配置字段映射。

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

    1581994103195279.png        

  14. 选中“种类销量”表,在右侧数据面板选择数据类型为“CSV文件”,数据连接选择“salesByCategory”。

  15. 根据响应数据的属性名称配置字段映射。

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

    1581994129458264.png        

  16. 选中“地区销量”表,在右侧数据面板选择数据类型为“CSV文件”,数据连接选择“salesByArea”。

  17. 根据响应数据的属性名称配置字段映射。

    配置 “num”为 “saleNumber”。

    1581994163696977.png        

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

    1581994177438249.png        

最后,让我们宣传一下:

3月27-28日,华为物联网平台在华为开发者大会静候您的光临。

华为开发者大会2020(Cloud)是华为面向ICT(信息与通信)领域全球开发者的年度顶级旗舰活动。大会旨在搭建一个全球性的交流和实践平台,开放华为30年积累的ICT技术和能力,以“鲲鹏+昇腾”硬核双引擎,为开发者提供澎湃动力,改变世界,变不可能为可能。

我们期待与你共创计算新时代

在一起,梦飞扬!

1583829665894051.jpg

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。