文档首页 > > 最佳实践> 数据转发> 数据转发至大数据平台分析并呈现(联通用户专用)

数据转发至大数据平台分析并呈现(联通用户专用)

分享
更新时间: 2020/05/21 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. 单击页面右上角的“进入设备管理服务”进入控制台。
  4. 进入“云服务配置管理”页面,按照页面提示配置与华为云对接。

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

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

  6. 导入样例模型文件,“产品名称”自定义,如“Vending_Machine”。点此获取样例模型文件
  7. 进入设备 > 设备注册页面,单击“创建”,填写设备注册参数。

    参数名称

    说明

    选择产品

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

    设备标识码

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

    • 原生MQTT设备:通过注册成功后生成的“设备ID”(与设备标识码一一对应)和“密钥”接入平台。

    • NB-IoT设备、集成Agent Lite SDK的设备:设备通过注册时填写的“设备标识码”和“预置密钥”接入平台。

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

    预置密钥

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

    确认密钥

    再次填写预置密钥。

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

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

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

    参数名称

    说明

    规则名称

    自定义,如“to_DIS”。

    对象类型

    保持默认。

    动作类型

    选择“数据接入服务”。

    区域

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

    通道

    选择已创建的通道名称。

    数据类型

    JSON

配置数据可视化服务

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

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

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

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

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

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

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

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

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

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

验证操作

  1. 首先控制设备上报10条数据。
    • 您可以使用配置设备管理服务时注册的真实设备接入平台,上报数据。
    • 您也可以使用模拟器模拟设备上报数据,操作方法请参考通过MQTT.fx体验设备接入

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

    样例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. 全部图表配置完成后,单击页面右上角的可预览报表,示例如下图。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问