一种数据存储方法及装置制造方法及图纸

技术编号:33931463 阅读:33 留言:0更新日期:2022-06-25 22:31
本申请提供了一种数据存储方法及装置,获取第一待存储数据,所述第一待存储数据为存储于NAS系统的GZIP压缩文件;将所述第一待存储数据转存为第二待存储数据,所述第二待存储数据为存储于Hadoop分布式文件系统的LZO压缩文件;确定待存储任务,所述待存储任务包括多个所述第二待存储数据;为所述待存储任务分配任务执行参数;按照所述任务执行参数并发读取所述待存储任务对应的多个所述第二待存储数据,并对所述待存储任务对应的数据进行存储。利用LZO压缩文件支持切片并发读取的特点,为待存储任务动态分配任务执行参数,最大化实现数据文件并发读取及并发写入的动态平衡,实现了较高的加载性能、较低的资源消耗。较低的资源消耗。较低的资源消耗。

【技术实现步骤摘要】
一种数据存储方法及装置


[0001]本专利技术涉及数据存储
,尤其涉及一种数据存储方法及装置。

技术介绍

[0002]在大型企业内部,由于每日业务量巨大故会产生大量的数据,而这些业务数据如何入库到企业统一的数据仓库,是进行业务数据存储分析挖掘的第一步。
[0003]针对大批量业务数据入库,企业一般采取从企业级数据总线来获取业务数据文件,且考虑到文件存储传输性能,这些业务数据文件一般采取压缩率较高的GZIP方式进行存储,然后再通过加载数据文件进行数据入库操作,因读写性能有限和计算资源分配不均的原因,海量数据入库过程中存在数据入库慢、入库失败的问题,且在资源有限的情况下,单个大文件的加载任务存在加载效率低、加载失败率高的问题。

技术实现思路

[0004]有鉴于此,本专利技术提供了一种数据存储方法及装置,用以解决不同大小文件的加载效率问题,实现海量压缩数据文件并发加载效率的提升。
[0005]其技术方案如下:
[0006]本申请第一方面提供一种数据存储方法,包括:
[0007]获取第一待存储数据,所述第一待存储数据为存储于网络附属存储NAS系统的GZIP压缩文件;
[0008]将所述第一待存储数据转存为第二待存储数据,所述第二待存储数据为存储于Hadoop分布式文件系统的LZO压缩文件;
[0009]确定待存储任务,所述待存储任务包括多个所述第二待存储数据;
[0010]为所述待存储任务分配任务执行参数;
[0011]按照所述任务执行参数并发读取所述待存储任务对应的多个所述第二待存储数据,并对所述待存储任务对应的数据进行存储。
[0012]优选的,所述确定待存储任务,包括:
[0013]获取待存储任务队列,所述待存储任务队列包括所述待存储任务;
[0014]判断是否存在空闲线程资源;若是,从所述待存储任务队列确定所述待存储任务,若否,则返回所述判断是否存在空闲线程资源。
[0015]优选的,所述为所述待存储任务分配任务执行参数,包括:
[0016]获取所述待存储任务中各个所述第二待存储数据的大小;
[0017]确定所述待存储任务的第一任务大小,所述第一任务大小为所述存储任务中最大的所述第二待存储数据的大小;
[0018]根据所述第一任务大小和任务执行参数集为所述待存储任务分配所述任务执行参数,所述任务执行参数集预设有所述第一任务大小与所述任务执行参数的对应关系。
[0019]优选的,所述任务执行参数包括excutor资源系数和DataFrame的repartition系
数。
[0020]优选的,所述按照所述任务执行参数并发读取所述待存储任务对应的多个所述第二待存储数据,并对所述待存储任务对应的数据进行存储,包括:
[0021]基于Spark计算引擎读取所述待存储任务对应的多个所述第二待存储数据得到第三待存储数据,所述第三待存储数据为弹性分布式数据集RDD;
[0022]对所述第三待存储数据进行数据格式验证以及编码验证;
[0023]当验证通过,将所述第三存储数据转化为DataFrame,所述DataFrame按照所述任务执行参数并发写入Hive数据仓库。
[0024]本申请第二方面还提供一种数据存储装置,包括:
[0025]数据获取模块,用于获取第一待存储数据,所述第一待存储数据为存储于网络附属存储NAS系统的GZIP压缩文件;
[0026]数据转存模块,用于将所述第一待存储数据转存为第二待存储数据,所述第二待存储数据为存储于Hadoop分布式文件系统的LZO压缩文件;
[0027]任务确定模块,用于确定待存储任务,所述待存储任务包括多个所述第二待存储数据;
[0028]参数分配模块,用于为所述待存储任务分配任务执行参数;
[0029]任务存储模块,用于按照所述任务执行参数并发读取所述待存储任务对应的多个所述第二待存储数据,并对所述待存储任务对应的数据进行存储。
[0030]优选的,所述参数分配模块,具体用于:
[0031]获取所述待存储任务中各个所述第二待存储数据的大小;
[0032]确定所述待存储任务的第一任务大小,所述第一任务大小为所述存储任务中最大的所述第二待存储数据的大小;
[0033]根据所述第一任务大小和任务执行参数集为所述待存储任务分配所述任务执行参数,所述任务执行参数集预设有所述第一任务大小与所述任务执行参数的对应关系,所述任务执行参数包括excutor资源系数和DataFrame的repartition系数。
[0034]优选的,所述任务存储模块,具体用于:
[0035]基于Spark计算引擎读取所述待存储任务对应的多个所述第二待存储数据得到第三待存储数据,所述第三待存储数据为弹性分布式数据集RDD;
[0036]对所述第三待存储数据进行数据格式验证以及编码验证;
[0037]当验证通过,将所述第三存储数据转化为DataFrame,所述DataFrame按照所述任务执行参数并发写入Hive数据仓库。
[0038]本申请第三方面还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现任一项上述方法的步骤。
[0039]本申请第四方面还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一项上述方法的步骤。
[0040]上述技术方案具有如下有益效果:
[0041]本申请实施例提供的一种数据存储方法及装置,获取第一待存储数据,所述第一待存储数据为存储于网络附属存储NAS系统的GZIP压缩文件;将所述第一待存储数据转存为第二待存储数据,所述第二待存储数据为存储于Hadoop分布式文件系统的LZO压缩文件;
确定待存储任务,所述待存储任务包括多个所述第二待存储数据;为所述待存储任务分配任务执行参数;按照所述任务执行参数并发读取所述待存储任务对应的多个所述第二待存储数据,并对所述待存储任务对应的数据进行存储。将高压缩率的GZIP压缩文件转存至HDFS上进行缓存,且转存后的数据文件被重新压缩为可切分读入的LZO压缩文件;然后利用Spark计算引擎读取转存后的数据文件并发写入Hive表中,实现大量数据文件的高并发计算与存储,通过引入任务执行参数实现计算资源的动态分配,以支持集群并发运行更多任务,有效解决不同大小文件的加载效率问题,还充分利用了Hadoop集群的计算资源,大幅提升了海量压缩数据文件并发加载效率。
附图说明
[0042]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0043]图1为本专利技术实施例提供的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:获取第一待存储数据,所述第一待存储数据为存储于网络附属存储NAS系统的GZIP压缩文件;将所述第一待存储数据转存为第二待存储数据,所述第二待存储数据为存储于Hadoop分布式文件系统的LZO压缩文件;确定待存储任务,所述待存储任务包括多个所述第二待存储数据;为所述待存储任务分配任务执行参数;按照所述任务执行参数并发读取所述待存储任务对应的多个所述第二待存储数据,并对所述待存储任务对应的数据进行存储。2.根据权利要求1所述的方法,其特征在于,所述确定待存储任务,包括:获取待存储任务队列,所述待存储任务队列包括所述待存储任务;判断是否存在空闲线程资源;若是,从所述待存储任务队列确定所述待存储任务,若否,则返回所述判断是否存在空闲线程资源。3.根据权利要求1所述的方法,其特征在于,所述为所述待存储任务分配任务执行参数,包括:获取所述待存储任务中各个所述第二待存储数据的大小;确定所述待存储任务的第一任务大小,所述第一任务大小为所述存储任务中最大的所述第二待存储数据的大小;根据所述第一任务大小和任务执行参数集为所述待存储任务分配所述任务执行参数,所述任务执行参数集预设有所述第一任务大小与所述任务执行参数的对应关系。4.根据权利要求3所述的方法,其特征在于,所述任务执行参数包括excutor资源系数和DataFrame的repartition系数。5.根据权利要求1所述的方法,其特征在于,所述按照所述任务执行参数并发读取所述待存储任务对应的多个所述第二待存储数据,并对所述待存储任务对应的数据进行存储,包括:基于Spark计算引擎读取所述待存储任务对应的多个所述第二待存储数据得到第三待存储数据,所述第三待存储数据为弹性分布式数据集RDD;对所述第三待存储数据进行数据格式验证以及编码验证;当验证通过,将所述第三存储数据转化为DataFrame,所述DataFrame按照所述任务执行参数并发写入Hive数据仓库。6.一种...

【专利技术属性】
技术研发人员:田莉萍李伟辰
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1