[发明专利]一种高性能的数据湖系统及数据存储方法有效
申请号: | 202111368382.X | 申请日: | 2021-11-18 |
公开(公告)号: | CN113791742B | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 刘昊;陈志凌;张涛;王朋;王秋烨;郁晨熹;陈巍;刘荫隆;刘哲峰;屠勇刚 | 申请(专利权)人: | 南湖实验室;北京大数据先进技术研究院 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F9/50 |
代理公司: | 浙江永鼎律师事务所 33233 | 代理人: | 张晓英 |
地址: | 314001 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 性能 数据 系统 存储 方法 | ||
本发明提供了一种高性能的数据湖系统及数据存储方法,数据存储方法包括以下步骤:S1.将文件转成文件流;S2.将文件流转成一个数组嵌套多个子数组的形式;S3.将所述的转成RDD后存储至数据湖的存储层中。本方案提出嵌套的字段结构,为出湖过程的并行处理提供字段结构基础,有效提高出湖性能,并且根据硬件内核灵活生成嵌套的子数组数量,使数据湖具有更强的扩展性能,针对不同的用户均能够保持最佳的入湖效率,满足用户需求。
技术领域
本发明属于数据出入湖技术领域,尤其是涉及一种高性能的数据湖系统及数据存储方法。
背景技术
数据湖是一个用于存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖的一部分价值是把不同种类的数据汇聚到一起,另一部分价值是不需要预定义的模型就能进行数据分析。
数据湖对文件进行格式转变,存储为数据湖支持的parquet,具体如图1所示,数据湖采用api接口将需要入湖的文件转成文件流,然后将文件流转成字节数组,再将字节数组转变成一个RDD,这个RDD包含文件的原始数据(字节数组)和元数据(文件名称,大小等),数据湖底层代码将RDD以parquet格式进行存储,以使数据符合数据湖格式。申请人在使用目前的数据湖系统过程中发现随着文件的增大,文件从湖中读出的速度成倍增长,严重影响数据湖出湖性能。
为了解决上述技术问题,申请人查阅了大量资料,没有查询到能够有效解决数据湖出湖性能的方案。申请人经过大量的研究发现,在一些非关系型数据库中,一个字段可以包含多个字段,对应多种字段类型,而目前的数据湖在将文件流转成数组的时候所有字段都只对应一种字段类型,为此,申请人从字段结构入手,对字段结构提出了改进,并获得了显著的效果。
发明内容
本发明的目的是针对上述问题,提供一种高性能的数据湖系统;
本发明的另一目的是针对上述问题,提供一种能够帮助数据湖系统提高性能的数据存储方法。
为达到上述目的,本发明采用了下列技术方案:
一种数据湖系统的数据存储方法,包括以下步骤:
S1.将文件转成文件流;
S2.将文件流转成一个数组嵌套多个子数组的形式;
S3.将所述的数组转成RDD后存储至数据湖的存储层中。
在上述的数据湖系统的数据存储方法中,步骤S2中,所述数组嵌套子数组的数量为2-8个。
在上述的数据湖系统的数据存储方法中,步骤S2中,所述数组嵌套子数组的数量与当前硬件环境CPU内核数量相一致。
在上述的数据湖系统的数据存储方法中,系统通过读取配置文件的方式获取当前硬件环境CPU内核数量从而动态确定相应数量的子数组。
在上述的数据湖系统的数据存储方法中,步骤S2与S3之间还包括:
检测当前数组大小,若在设定值之内,则以单行形式存储当前数组;若超过设定值,则将当前数组切分以分行存储,且每行的数组大小均小于设定值。
在上述的数据湖系统的数据存储方法中,当数组大小大于设定值时,分行数量n为n=m/s+1,其中m表示数组大小,s表示设定值,/表示整除取商。
在上述的数据湖系统的数据存储方法中,对大于设定值的数组切分成多个后返回包含多个RDD的迭代器。
在上述的数据湖系统的数据存储方法中,还包括通过轮询自动存储方法:
A1.轮询监听文件,在每次轮询中,获得指定路径下所有文件的绝对路径,将其放入到一个数组中,作为最新的偏移量;
A2.取上一次轮询的结果,两个数组做差集;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南湖实验室;北京大数据先进技术研究院,未经南湖实验室;北京大数据先进技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111368382.X/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置