基于Spark的数据分析可视化平台设计与实现
作者: 周正宇 康华夏 刘文军 陈晨
基于Spark的数据分析可视化平台设计与实现
周正宇1,康华夏1,刘文军1,陈晨2
(1.苏州工业职业技术学院 软件与服务外包学院,江苏 苏州 215104;2.苏州砺行信息科技有限公司,江苏 苏州 215151)
摘要:针对企业海量数据进行快速、科学地处理分析,及时获取对企业管理和决策有价值的信息成为企业重要关切。文章给出一种基于Spark的大数据分析可视化平台的设计和实现。平台采用GreenPlum作为分布式数据库存储工具,Spark MLlib作为分析建模工具,通过Greenplum-Spark连接器连接存储和分析,加速数据处理过程。同时,平台采用BS架构,前端拖拽式操作实现便捷的分析处理,为终端用户带来良好的使用体验。此外,平台支持集成新模型和可视化图表,具有良好的扩展性。
关键词:Spark;数据分析;数据可视化;企业决策
中图分类号:TP399 文献标识码:A
文章编号:1009-3044(2022)24-0072-03
1 引言
随着物联网、云计算、大数据等信息技术与传统产业的不断融合,无论是企业内部的经营管理数据还是供应链数据都呈现爆炸式增长。通过对行业相关数据的深入分析,可以直观掌握其业务运营状况,为战略决策、业务调整提供依据;另一方面,供应链协同使得需求预测、产能分析、协同研发等成为可能,产业数据的融合显著提高了企业应对风险的能力。大数据时代,数据作为企业的核心资产,加以分析利用成为提升企业核心竞争力的关键[1-2]。
传统的数据统计、分析挖掘已经显露短板,特别是随着数据量不断攀升,离线的数据分析效率低下的瓶颈日益凸显。相较之下,基于B/S架构的数据分析可视化平台在大数据分析技术的支持下更加适合挖掘数据潜在价值,提供可靠的辅助决策信息,能促进企业核心竞争能力的建立,确保企业的可持续发展[3-7]。
本文针对该问题,给出了一种适用于海量数据下,基于Spark和前端技术实现快速定制化数据分析的平台设计和实现方案。利用数据仓库、线上分析处理等技术对客户数据进行系统的存储和管理,通过各种数据统计分析工具对业务数据进行分析并进行可视化展示,从而实现企业对数据进行有效的管理和整合。
2 关键问题
2.1 运算性能
如今,企业业务的复杂度越来越高,所产生的数据量也越来越大,想要对这些数据进行快速而有效的处理是一个庞大的工程。传统C/S架构的数据分析工具多使用单机CPU进行运算,在业务数据量庞大的今天已经难以满足实际需要。使用分布式系统的数据分析可视化平台对系统的运行效率有着巨大的提升,同时采用B/S架构的交互技术带来良好的用户体验。
2.2 数据可视化
传统的数据分析工具需要用户懂得SQL操作,通常需要用户和技术人员反复讨论,选择特定的字段生成目标图表。这一过程中往往有交流和理解上的困难,给用户带来不佳的操作体验。本系统使用Vue.js的draggable组件,实现了对数据字段的直接拖拽生产分析结果的功能,并且用户可以根据业务需求和逻辑自定义图表来呈现精确的可视化效果,大大便捷了用户的操作。
2.3 分析模型
数据的价值在于通过模型分析后为行业管理者提供参考决策。一方面需要选择合理的数据可视化的图表,科学有效地展示给用户;另一方面,需要确定与业务匹配的数据分析算法模型进行支撑。平台自主选择数据源,并且集成主流的分析模型供用户选择。由于用户的业务不尽相同,需要的算法模型难以通用,因而要求平台具有二次开发能力,支持横向拓展算法模型。
3 系统设计
3.1 系统架构
平台的架构设计如图1所示。从右到左分为存储层、数据处理层和展示层。存储层主要用Greenplum分布式数据库存储用户所连接的数据库数据,可供服务器更快地进行数据处理,而不必等用户操作时再去读取用户数据。这一模式大大提高了运行效率。数据处理层使用Spark并行查询读取数据库数据,再充分利用Spark内存计算的优点,将数据通过基于内存的分布式文件系统Alluxio缓存进内存,通过内存计算来快速处理数据,返回处理结果。展示层采用Vue.js+Element.ui技术实现前端可拖拽页面的呈现,使数据分析结果按照用户的想法进行直观展现。
3.2 数据存储
本系统使用Greenplum-Spark Connector连接器(GSC) 以打通GreenPlum数据库和Spark。GSC是由Drive节点和Executor节点构成,本质上是一个Spark application,其工作机制如图2所示。当系统使用GSC读取GreenPlum数据时,其中Drive节点先通过JDBC的请求方式访问GreenPlum的master节点来获取关于被读取数据元数据的信息。GSC将根据这些元数据,让多个Executor节点并行地读取GreenPlum数据库中所需要的数据,来提高读取数据的效率,以提升用户的体验。
3.3 数据读取
Spark用户通常使用Saprk RDD Cache将数据以RDD的结构存储在Spark Executor中,以后每次对这个RDD进行操作时就无需重新计算,直接从内存或者磁盘中提取持久化的RDD数据。但是存储RDD所需的内存可能会非常大,进而导致Spark Executor的计算内存相对变小,甚至有可能因计算内存不足导致Spark 作业崩溃,致使数据没有被持久化到内存中。本系统为解决这类问题将RDD数据存储在Alluxio中,这样Spark Executor就不需要配置存储数据需要的内存,只需配置计算所需内存。Alluxio提供了RDD数据所需的内存,即使Saprk作业崩溃,数据也会被Alluxio持久化到内存中。Spark仍然可以从内存读取数据,将数据提供给web前端,极大地提高了系统的稳定性和运行效率。该机制下的数据流转如图3所示。
3.4 拖拽式可视化
系统的可视化是基于Vue.js+Element.ui技术实现的。其中可拖拽的功能实现主要引用了Vue的相关draggable组件。其中涉及的主要事件和执行时机包括:
1) ondragstart: 在拖动开始时执行。
2) ondragover: 被拖动的对象在进入另一容器范围内时执行。
3) ondragenter: 在被拖动的对象进入该容器范围内时执行。
4) ondragleave: 在被拖动的对象离开其容器范围内时执行。
5) ondragend: 拖动完成时执行。
6) ondrag, ondrop: 分别为拖动时执行和释放鼠标时执行。系统根据这些事件实现了根据拖拽的字段生成对应维度和数值的图表;实现了对图表大小和位置的编辑等自由度高的功能。
3.5 数据分析模型
平台通过Spark中可拓展的机器学习库Spark MLlib进行数据分析模型搭建,特别使用其包含的算法依赖实现了线性回归、逻辑回归等预测模型。Spark MLlib的算法工具包括聚类、回归、分类、协同过滤、降维等,同时可以进行底层优化,其算法还可以进行扩充。系统通过Spark MLlib可快速实现数据分析模型的横向拓展。可供用户更好地进行业务逻辑和算法模型匹配,提高分析结果的质量,便于用户更好地进行决策。
4 系统实现
4.1 图表生成
网站界面设计遵循简约风格。如图4所示,给出了一个航班分析应用示例。用户在左上角选择数据源,然后拖动兴趣字段名放入中间的维度或者数值,即可自动生成折线图。用户可以根据具体需求,在右下角切换图表类型,可以对字段进行排序和筛选。示例中,折线图所显示的是对航班的数据进行数据处理的结果。x轴为航班号,y轴为航班人次。可以看出各个航班的当日人次,反映出客流量的差异。所生成的图表可以保存,并支持下载成图片作为素材提供给用户。平台支持对字段进行统计操作,如求和、平均值、方差、标准差、聚类等多种计算方式和分析功能。同时也支持数据分析模型的拓展。
4.2 图表组合
前端页面中可以新建可视化图表,并支持将保存过的图表添加进来,通过对图表进行拖动、拉伸,并按照用户意愿自定义图表大小和位置,最后组合为可视化大屏。如图5所示,通过拖拽方式构建了一个航班数据可视化大屏。此外,用户点击分享能够生成链接,把生成的链接发送给其他用户进行共享。
5 结论
信息技术迅猛发展的今天,业务产生的数据量是非常庞大的,这些数据流转快速、类型多样、价值密度低。其中蕴含的商业价值很难被挖掘利用,这也成为现阶段企业的难题。本文设计的大数据分析可视化平台通过Spark内存计算、GreenPlum分布式数据库、可拖拽式的页面呈现等技术,对该类型问题提供了一种有效的解决方案。特别地,本方案支持大数据算力,并且服务器可以进行横向和纵向拓展,为问题的解决提供了一种有益的尝试。
参考文献:
[1] 杨强,秦绪涛,朱云飞,等.江苏核电大数据可视化分析平台的建设与应用[J].电力大数据,2021,24(1):87-92.
[2] 闫巍.网络时代背景下大数据对企业管理决策的影响探究[J].时代金融,2016(17):110,116.
[3] 张文升.分布式数据库Greenplum研究与应用[J].金融科技时代,2017,25(6):48-50.
[4] 刘畅.面向内存计算的Spark性能优化技术研究[D].重庆:重庆邮电大学,2020.
[5] 温东新,董文菁,曹瑞,等.基于Alluxio的异步存储优化[J].东南大学学报(自然科学版),2018,48(2):248-252.
[6] 卢超猛,马泽众,韩阳,等.基于支持向量回归的房价数据分析[J].华北理工大学学报(自然科学版),2021,43(4):76-82.
[7] 崔晓龙,郭茜,边胜琴,等.支持模型复用的通用大数据分析平台[J].实验室研究与探索,2020,39(7):64-70.
【通联编辑:梁书】
收稿日期:2022-04-12
基金项目:江苏省青蓝工程;江苏省大学生创新创业训练计划项目(202112686017Y) ;苏州工业职业技术学院科研启动基金(2017kyqd017) ;苏州工业职业技术学院院级课题(2020kytd04)
作者简介:周正宇(2001—) ,男,大专,主要研究方向为软件技术;康华夏(2001—) ,男,大专,主要研究方向为软件技术;刘文军(1981—) ,男,讲师,博士,主要研究方向为并行与分布式系统、无线传感器网络等;陈晨(1998—) ,女,本科,主要研究方向为工业互联网平台技术与应用研发。