APP下载

基于云计算技术的海量信息分布式存储研究

2022-11-09李韬睿徐超胡龙舟朱彤白海

微型电脑应用 2022年10期
关键词:计算技术海量分布式

李韬睿, 徐超, 胡龙舟, 朱彤, 白海

(国网湖北省电力有限公司超高压公司, 湖北, 武汉 430050)

0 引言

云计算技术是一种密集型数据计算技术,其在数据存储、数据管理以及虚拟化技术等方面,均具备显著的技术优势。其关键技术包括分布式存储技术、虚拟化技术以及可扩展性并行技术等[1-3]。传统的海量信息存储是以集中的存储服务器作为数据存储,但是其存在海量信息存储限制和瓶颈。以文献[4]和文献[5]的基于压缩感知的数据存储方法和基于SWIFT的海量数据存储方法为例:前者以压缩感知理论与数字模型相结合,完成数据存储,但是其在存储信息实行抽取使用时,信噪比较低;后者则是采用哈希过程以及优化步骤后,完成数据存储,但是该方法在对存储信息实行查询时效率较低。基于此,本文提出基于云计算技术的海量信息分布式存储方法,具备可扩展性是分布式存储的显著优势,其可将海量信息分散存储于多台服务器中,以此降低存储限制和瓶颈,同时,通过位置服务器的定位完成海量信息的存储,极大地提高了存储系统的存储效率和可靠性。

1 基于云计算技术的海量信息分布式存储

1.1 海量信息存储技术

基于云计算技术的海量信息分布式存储可解决单一服务器计算和存储模式,可使信息的利用率极大提高[6],在实现海量信息有效存储的同时,可完成海量信息的聚集、抽取以及查询。分布式存储技术是当下解决海量信息存储的主要方法。当下Google设计的GFS(google file system)和Hadoop开发团队开发的GFS的开源实现HDFS(hadoop distributed file system)是信息数据存储的主要技术。GFS作为分布式文件系统,数据的存储、管理、定位等多层面的数据处理均是其主要功能。具备控制节点和存储节点构成的庞大存储处理能力[7],计算机集群是其主要框架,并且该架构是由大量安装有Linux操作系统的普通PC组成。HDFS采用管理节点/存储节点架构,见图1。一个管理节点和一定数目的存储节点可构成一个HDFS集群。为提升系统性能以及信息利用率,采用GFS与HDFS技术完成异地计算机资源整合,形成极大存储容量的计算机群,并且对信息数据实行并行处理,打破信息存储瓶颈。

图1 管理节点/存储节点架构

1.2 事实表生成

海量信息存储过程中需建立事实表和维度表,两者之间是采用主外键完成关联。其中,事实表的主要作用是实现信息在不同维度和粒度的情况下完成信息处理和分析[8]。为生成事实表,以原有的关联模式为依据,并在信息存储时,采用维度表ID代替维度表与源表中的关联值。将事实表和维度表的原始信息记录实行划分,并向相同的计算节点中分配信息连接的记录,可同时在2个表中操作多个计算节点的数据,加载采用维度表ID替换源表中相关属性的数据至新表中,生成新的事实表[9]。事实表的生成过程见图2。事实表的生成步骤如下所述。

图2 事实表生成

(1) Map逐一获取源表和维度表中对应数据块中的信息,并且获取依据是表的元数据和Name Node中的元数据。根据获取的信息,完成Map类型能够识别的键值对的建立以及源表和维度表数据行号的标记。

(2) value值的解析和各列属性值的取出,根据表的元数据完成,并且,将Map的key值采用源表中与维度表关联的属性值和该维度表中的属性代替。

(3) Map的输出和标签tag由处理结果生成。其中:key和value分别包含表的关联属性值和其余属性值的对象;数据行来源则通过tag实行标记。

(4) 相同key值数据的收集、tag标签不同数据的连接以及将源表中的相关属性值用维度表中的ID表示,是Reduce的主要作用,并输出。其中,key和value分别表示空文本和处理过后的每行文本,并且表的各列值位于value中。

(5) 向HDFS中新表所在目录中输入Reduce处理后的结果,即生成事实表。

1.3 数据聚集

通过对沉淀了大量历史数据的原始数据库的数据提取和分析关联操作后生成事实表,但事实表是按数据的最新粒度来组织的数据。在实际的数据挖掘应用中需要不同的粒度和维度的数据,因此在构建数据仓库时聚集生成可用报表是一个必不可少的环节[10]。聚集就是用group by操作对选取的特定维度用所需的度量方式对表中的数据进行整合的操作。并行数据聚集的基本思路:将数据按所选的维度分组,不同组的数据分配至不同计算节点,各节点因数据互不相关,故可以同时使用Hive的group by语句和聚集函数进行数据聚集。

1.4 云计算技术改进ETL处理算法的海量信息抽取

考虑ETL算法针对信息的处理和任务调度方面存在的不足之处,为改善上述问题,采用基于云计算技术对其改进。改进主要从两个方面完成,分别是信息抽取和任务调度。信息抽取的改进是将Map/Reduce原理引入ETL的抽取过程中,以此提升信息处理效率[11];任务调度改进的是将任务的优先级和任务处理时间作为主要参考内容。

基于云计算技术改进ETL处理算法的海量信息抽取,将原来的多次抽取的信息转化为一次性抽取信息,将信息划分成多个目标文件,该划分采用Map/Reduce原理完成,以此实现信息抽取和优化,该过程称为SMB-DP算法;将划分后的目标文件实行分配调度和处理,并且以任务优先级和运行时间为主要参考,以此完成任务调度优化,该过程称为AGB-ETL算法。改进后的算法原理见图3。

图3 改进后算法原理

SMB-DP算法的核心是将ETL算法在信息处理过程的多次抽取转化成单次抽取,并实行划分后完成并行的转换装载[12]。所以,其实现的主要包含3部分:一是单次抽取;二是对信息实行拆分;三是并行转换装载。详细内容如下。

(1) 单次抽取:将需要提取的信息采用关键词的方式实行有效合并。

(2) 信息拆分:信息抽取的目的是对其实行信息拆分。将信息按照一定的字段划分后,依据Map/Reduce原理将其存储至云终端。

(3) 并行转换装载:划分后的多个目标文件的并行转换以及装载处理,利用多种有效的并行处理技术完成[13],并向不同的计算终端中分配处理后的多个目标文件,以此实现BASS的处理效能提升目的。

AGB-ETL算法的核心是遵循分配原则并且以任务优先级和任务运行时间为主要目标,向处理时间所需最少的终端中分配最需要处理的任务,以此实现信息利用率的提升、信息优化配置和调度。

AGB-ETL算法实现主要步骤如下所述。

(1) 确定执行优先级:结合相关业务规范和移动BASS实时性处理需求而设置的优先级,并且确定优先级规范标准,最高优先等级为1,依次类推。

(2) 确定估算时间:各个任务执行时间的获取通常从系统日志取得。任务执行的平均时间的计算依据是该任务最近N次的执行时间,其是依据系统操作日志的查询获取。

(3) 处理流程:第一步是判断任务是否发生调度,发生调度将其加入队列,反之,则等待;第二步是按照优先级从高至低的原则,对队列实行排序处理,如果存在相同的优先级,则根据任务执行时间,依旧按照从高至低的原则实行排列[14];第三步向执行时间最少的单元中传入最需要处理的任务;第四步是估算该任务组的总执行时间,并进行更新;第五步是分析任务列队,判断其是否完成分配。

1.5 数据库信息查询

基于云计算技术的数据库信息查询时,用户查询请求的信息提供,可由某个数据对象的等价数据集合中的全部节点完成[15]。所以,对等价节点数据集合中的节点实行其负载能力和信息的标记。固定时间范围t中,M(q,y,u)表示数据节点q中的数据对象y的请求次数,则节点q的负载信息的公式为

D(q,u)=(Md,Mυ,Mm)

(1)

式中,数据节点时的负载信息用Md、Mυ和Mm表示,同时节点负载能力极大值和极小值也用其描述。该数据节点的超载信息和欠载信息为

(2)

(3)

为描述该节点的等价节点负载信息数据集合,将式(2)和式(3)实行联立,则得出:

D(q,u)={(r,F,O)|r∈F(q,y)F=Fm(q,y,u),O=Ol(p,x,t)}

(4)

如果Mm

2 性能测试

为验证本文方法的有效性,选取某地区城市规划数据信息为研究对象,该数据中总共包含的数据数量为48 000个,采用本文方法对其实行相关存储测试。实验中使用8台同品牌、同等配置的服务器搭建服务器集群,其中性能较好的1台为主机服务器,剩余的为节点从机。

向事实表中插入不同数量信息,测试本文方法的插入性能,结果见图4。根据图4的测试结果可知,随着物理节点数量的增加,信息插入的时间逐渐减小,是由于本文方法可在不同维度和粒度的情况下完成插入信息的处理和分析,并且分布式存储可提高信息存储速度,因此,信息的插入效率随着物理节点数量的增加而增加,说明物理节点越多,数据存储效率越快。

图4 插入性能

本文方法在实行海量信息抽取时,需将信息划分成多个目标文件。测试本文方法在划分成不同数量的目标文件时的信息抽取效率,结果见图5。根据图5的测试结果可知,随着划分目标文件数量的逐渐增加,抽取时间逐渐降低。没有划分之前,针对一个整体信息实行抽取,无法通过多个物理节点完成,需要完成整个信息的抽取;将信息划分成多个目标文件之后,可通过分布式存储物理节点同时进行抽取,极大程度提高信息抽取效率,缩小信息抽取时间。

图5 抽取效率

统计本文方法抽取不同信息数量时,抽取结果的信噪比,并将本文方法的抽取结果与基于压缩感知的数据存储方法(文献[4]方法)和基于SWIFT的海量数据存储方法(文献[5]方法)的抽取结果作对比,结果见图6。根据图6的测试结果可知,采用本文方法抽取信息后,抽取的信息中信噪比明显高于其余2种对比方法的信噪比。该结果说明本文方法抽取的信息可有效保证信息完整性的同时,亦可有效保证信息的信噪比,说明本文方法具备较好的信息抽取性能。

图6 3种方法的抽取对比结果

测试3种方法的空间数据信息查询性能。空间信息查询性能是指对不同量级信息实行查询,并返回该信息的所有字段值。3种方法的查询结果见图7。根据图7的测试结果可知,本文方法具备良好的查询性能,查询速度约是2种对比方法的3倍,是由于本文方法可以将信息经过划分处理后存储在分布的集群中,在实行信息查询时,可实现并行查询处理,因此显著提升查询速度。

图7 3种方法查询对比结果

采用3种方法分别进行城市规划成本信息的查询,统计3种方法的成本信息查询误差结果,见图8。根据图8的测试结果可知,本文方法查询城市规划成本信息的误差最低,其余2种对比方法的查询误差显著高于本文方法。该结果说明本文方法的实际信息查询性能较好。

图8 3种方法的查询结果

3 总结

本文针对传统海量信息的存储方法的不足展开分析,研究基于云计算技术的海量信息分布存储方法。通过分布式存储方式,保证信息的高效存储的同时,亦可保证信息的可靠性,并满足用户低成本地完成海量信息存储的目的。测试结果表明,本文方法可高效完成信息的插入、抽取和查询。

猜你喜欢

计算技术海量分布式
一种傅里叶域海量数据高速谱聚类方法
新时期计算机网络云计算技术研究
浅析分布式发电对电力系统的影响
海量快递垃圾正在“围城”——“绿色快递”势在必行
“海量+”:大学生品格提升的浸润方——以高职艺术设计专业为例
浅谈云计算技术下的GIS软件工程模式
基于预处理MUSIC算法的分布式阵列DOA估计
计算机技术在通信中的应用研究
一个图形所蕴含的“海量”巧题
云计算及其在地理信息工程中的应用