杨 诚,易 杨,林建熙,夏 伟
(1.广东电网有限责任公司电力调度控制中心,广州 510600;2.南方电网数字电网研究院有限公司,广州 510600)
目前,随着物联网、云计算、移动互联网等高新技术的高速发展,世界数据量的增长表现出了指数级、爆炸式的增长特征。相关调查结果显示,从2012年开始,世界数据量的增长就已经达到两年增长一倍的速度,到目前为止,世界数据量整体已达35ZB以上。与此同时,人们的行为表现出了强烈的数字化特征,在娱乐社交、生活工作中,人们都离不开大数据[1]。很多大数据技术在这样的背景下应运而生,如Hadoop,引发了多个产业的技术变革,使这些产业获得了颠覆性的发展,例如IT业。在这些技术的运用下,人们利用大数据对事物相关性进行寻找,预测、挖掘、分析事物等。这让我们迎来了大数据时代[2]。基于该背景对大数据动态自动化平台进行设计与研究。
对于大数据动态自动化平台的设计与研究,目前相关研究已经获得了普遍关注并达到了一定高度。国外在对大数据动态自动化平台进行研究的过程中已经取得了相当多的研究成果,目前主要针对平台的数据仓库、分析能力的提升、架构优化等问题进行研究。在国外,目前应用比较广泛的一种平台是基于Java技术的大数据动态自动化平台。该平台主要通过Java技术搭建,目前其部署率正在不断增长,实现了一体化多渠道大数据技术拓展。而国内对于大数据动态自动化平台的研究也在最近几年获得了惊人的成果,设计的平台达到了高度的透明性和内聚性,很多高层软件也被设计出来。目前在国内应用的比较多的平台是基于JStorm系统的大数据动态自动化平台与基于Spark的大数据动态自动化平台。这两种大数据动态自动化平台能够对工作负载进行优化迭代,并提供高效、交互式的大数据查询。而这些目前应用较多的大数据动态自动化平台均存在数据查询性能、数据迁移性能方面的问题,因此设计一种基于GIS数据交互的大数据动态自动化平台,并对该平台进行性能测试,深入研究该平台相关技术。
后台支持模块由主机、交换机、服务器构成。其中主机的数量需要根据实际情况来布设,主机选取的型号为IPC-KR3499,是一种工控电脑。
主机的具体参数如表1所示[3]。
表1 主机具体参数
交换机采用的型号为SAD-DA24。服务器具体包括WEB服务器、文件服务器、内容管理服务器。
数据预处理模块负责进行大数据的导入与清洗。其中大数据的导入使用的工具为Sqoop模型,这是一种迁移数据的工具模型,通过MapReduce提升导出数据的效率。传输数据时采取的是批处理形式,能够自动进行数据类型转换与映射或由用户进行自定义[4]。Sqoop模型支持多种数据库,并且支持API,根据大数据特点,用户可以自行开发加载、转换、抽取大数据的工具。该模型的工作原理具体如图1所示。
图1 Sqoop模型的工作原理
利用Sqoop模型向大数据动态自动化平台导入大数据的具体过程如下:
1)和数据库Server进行通信,得到被导入大数据的表的具体结构模式,其中包括约束条件、列类型、列名、外键、主键、表名等。在以上信息的获取中,最先获取的是全部表名,并依据获取的表名对其他信息进行依次获取。最后,在具体对象内对这些信息进行保存。
2)对被导入大数据的表的具体结构模式进行读取,其中的关键是得到各表之间的关联关系,利用表里的外键能够对各表之间的关联关系进行确定。具体来说就是构建与各表相关的其他表的列表,并遍历每张表,获取与其相关的表,在一个列表中存放。对该列表实施去重操作,获取不存在重复的相关列表。
3)以被导入大数据的表的具体结构模式为依据对HBase的表存储模式进行创建。
4)向HBase迁移被导入大数据。具体包括迁入关系表及其关联表。迁入关系表的步骤比较简单,主要是利用SQL对表的数据进行查询,以对应关系为依据,将关系表主键当做平台数据库表的行键,在平台数据库表中依次插入属性名及其元组值。迁入关联表则是在迁入关系表的基础上,利用生成的平台数据库表的行键对关系表对应的关联表进行确定,接着在表中依次插入关联表的对应属性名与元组值。
大数据的清洗则具体包括四个阶段:准备、检测、定位以及清洗。
其中准备指的是选择清洗工具、选择与分析清洗方法、选择清洗目标与需求,获取清洗数据的方案与策略。
检测指的是分析大数据中存在的问题,分类和识别存在的问题并进行整理,获取分类信息。
定位指的是根据获取的分类信息确定数据源中每一类问题的位置并对其进行标记,获取问题分布[5]。
清洗指的是改正标记处存在的问题数据,具体包括归并不一致名称的数据、去重处理、填充与分析缺失数据、删除脏数据等。
在整体阶段中,清洗与定位需要执行多次操作,以保障清洗数据的准确性。
清洗数据的具体流程如图2所示。
图2 清洗数据的具体流程
其中聚类分析使用的算法是概率聚类算法,首先对以下数据集进行给定:
式(1)中X代表给定数据集;xn表示集合中的第n个数据。
将M个簇的对应聚类中心设为vi(i=1,2,…,M),则概率聚类对应目标函数具体如式(2)所示:
式(2)中J(X,V)代表概率聚类对应目标函数;P(xk)表示xk的对应概率分布。
基于GIS数据交互设计PROFILER模块,PROFILER模块主要负责进行性能分析,该模块支持的数据抓取方式为动态抓取,使用的抓取工具为BTrace,通过事件驱动对动态抓取流程进行控制。抓取数据具体可以分为数据流统计、资源消耗统计、资源消耗、数据流等四类。模块使用的数据存储方式为GIS数据交互存储方式,能够对抓取数据进行实时存储。模块处理事件驱动的方式是Java注解[6]。
对于PROFILER模块,在进行性能分析时,需要满足数据可视化需求,因此通过GIS数据交互思想在模块中搭建一个GIS可视化交互式平台,该平台集合了GIS组件、空间文件地图、关系型数据库、图表可视化表达工具以及多维图像表达工具等多个组件,能够实现平行坐标法、Hyper Tree等,还提供管理工具集功能,UI对工具进行动态地删增。通过搭建该GIS可视化交互式平台,实现PROFILER模块的数据可视化需求。
在PROFILER模块中,抓取方法与驱动方法具体如表2所示。
表2 抓取方法与驱动方法
平台使用的数据库是Hbase,是一种可伸缩、面向内存、高性能、高可靠的数据库。该数据库可以对列进行动态增加,当列是空的,就不需要对数据进行存储,能够节省空间;能够提供读写操作的高并发支持;以及能够对数据进行自动切分,带来数据存储的可伸缩性。其具体结构如图3所示。
图3 数据库具体结构
在该数据库中,存储的文件共分为两种类型,一种是Hfile,存储的是平台的键值数据,文件为二进制格式;另一种是Hlog,存储的是平台写入数据的对应归属信息。数据库中共有以下工作组件:数据读写和用户请求响应工作组件、管理工作组件、数据、状态、地址的存储工作组件以及通信工作组件。
该数据库的功能具体如表3所示。
表3 该数据库的功能
首先对平台测试的实验环境进行搭建,具体如图4所示。
图4 搭建的实验环境
在搭建的实验环境中,实验集群内共包括从节点8个、主节点1个,利用两个交换机连接集群,交换机能够链接到各节点。其中第一个交换机能够实现集群的时钟全局同步,而另一个交换机能够实现组件的数据传输与通讯。
平台测试设备包括硬件设备与软件,其中硬件包括两台主机,具体数据如表4所示。
表4 硬件设备
软件包括Storm、Kafka、Openes JDK、Jetty、CentOS、Hive、Ambari。
在搭建的实验环境与配置的测试设备下,对设计的基于GIS数据交互的大数据动态自动化平台进行性能测试。测试的性能包括数据查询性能、数据迁移性能。
2.4.1 数据查询性能测试结果
首先是对基于GIS数据交互的大数据动态自动化平台的数据查询性能进行测试,具体测试结果如表5所示。
表5 数据查询性能测试结果
根据表5的数据查询性能测试结果可知,基于GIS数据交互的大数据动态自动化平台对于不同的查询接口都能做到迅速的获得查询结果,查询平均用时整体较少。
2.4.2 数据迁移性能测试结果
接着对基于GIS数据交互的大数据动态自动化平台的数据迁移性能进行测试。在测试中,为使实验结果更加丰富,将基于Java技术、基于JStorm系统、基于Spark的大数据动态自动化平台作为对比测试平台,使实验结果具备对比性。同样测试这三种对比平台的数据查询性能、数据采集性能以及数据迁移性能。观察设计平台是否具有性能优势。
数据迁移性能测试结果具体如表6所示。
表6 数据迁移性能测试结果
表6的数据迁移性能测试结果表明,基于GIS数据交互的大数据动态自动化平台的数据迁移速率比基于Java技术、基于JStorm系统、基于Spark的大数据动态自动化平台高,最高甚至可达6.30MB/s。
在大数据动态自动化平台的研究中应用了GIS数据交互技术,实现了数据查询性能、数据迁移性能的提升,提出了一种新的解决大数据的方案。