数据存储方法及装置、计算机可读存储介质、电子设备制造方法及图纸

技术编号:30697952 阅读:19 留言:0更新日期:2021-11-06 09:33
本公开是关于一种数据存储方法及装置、计算机可读存储介质、电子设备,涉及大数据处理技术领域,该方法包括:对待存储数据进行分片处理,得到包括键值对的待存储分片,并根据所述待存储分片的键,确定所述待存储分片所属的存储区间;将属于同一存储区间的待存储分片转换成待存储文件;根据所述存储区间所属的存储引擎节点,将所述待存储文件存储至所述存储引擎节点中。本公开提高了待存储文件的存储效率。率。率。

【技术实现步骤摘要】
数据存储方法及装置、计算机可读存储介质、电子设备


[0001]本公开的实施方式涉及大数据处理领域,更具体地,本公开的实施方式涉及一种数据存储方法、数据存储装置、计算机可读存储介质以及电子设备。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]在一些数据存储方案中,可以基于如下技术方案实现:通过计算引擎将待存储数据拆分成若干条的小数据,然后同时执行多个任务,将每一条小数据通过存储引擎提供的远程调用接口写入,直至所有的小数据均被写入到存储引擎中。
[0004]但是,由于待存储数据的数据量过大,所拆分得到的小数据数量也大,采用远程调用接口的方式会使得写入效率较低。

技术实现思路

[0005]为此,非常需要一种改进的数据存储方法,以根据待存储分片的键确定其待存储分片所属的存储区间,进而根据存储区间所属的存储引擎节点,将根据待存储分片得到的待存储文件存储至该存储引擎节点。
[0006]在本上下文中,本公开的实施方式期望提供一种数据存储方法、数据存储装置、计算机可读存储介质以及电子设备。
[0007]根据本公开的一个方面,提供一种数据存储方法,包括:
[0008]对待存储数据进行分片处理,得到包括键值对的待存储分片,并根据所述待存储分片的键,确定所述待存储分片所属的存储区间;
[0009]将属于同一存储区间的待存储分片转换成待存储文件;
[0010]根据所述存储区间所属的存储引擎节点,将所述待存储文件存储至所述存储引擎节点中。
[0011]在本公开的一种示例性实施例中,对待存储数据进行分片处理,得到多个包括键值对的待存储分片,包括:
[0012]获取待存储数据,并对所述待存储数据的键进行哈希运算,得到所述待存储数据的键的哈希值;
[0013]根据所述待存储数据的键的哈希值以及与所述待存储数据的键对应的值,得到所述包括键值对的待存储分片。
[0014]在本公开的一种示例性实施例中,获取待存储数据包括:
[0015]根据数据文件的路径,从分布式文件系统中获取包括键值对的待存储数据;和/或
[0016]从Hive集群中获取包括键值对的待存储数据。
[0017]在本公开的一种示例性实施例中,根据所述待存储分片的键,确定所述待存储分片所属的存储区间,包括:
[0018]根据所述待存储分片的键的哈希值的第一个字符在预设的字典序中的顺序,确定所述待存储分片所属的存储区间。
[0019]在本公开的一种示例性实施例中,所述数据存储方法还包括:
[0020]根据所述待存储分片的键的哈希值的第一个字符在预设的字典序中的顺序,对属于同一存储区间的待存储分片进行排序。
[0021]在本公开的一种示例性实施例中,将属于同一存储区间的待存储分片转换成待存储文件,包括:
[0022]根据所述待存储分片所属的存储区间,对所述待存储分片进行归类;
[0023]获取属于同一存储区间的待存储分片的场景编号以及所述存储区间的区间编码,并将所述场景编号以及所述区间编码写入所述待存储分片的键中;
[0024]获取属于同一类别的待存储分片的版本号、过期时间以及写入时间,并将所述版本号、过期时间以及写入时间,写入所述待存储分片的值中;
[0025]对属于同一存储区间的待存储分片进行格式转换,得到所述待存储文件。
[0026]在本公开的一种示例性实施例中,所述数据存储方法还包括:
[0027]计算当前待存储文件的数据量,并判断所述数据量是否大于预设阈值;
[0028]若是,则将剩余的待存储分片写入下一个待存储文件。
[0029]在本公开的一种示例性实施例中,根据所述存储区间所属的存储引擎节点,将所述存储区间中包括的待存储文件存储至所述存储引擎节点中,包括:
[0030]根据分布式存储引擎的路由表,确定所述存储区间所对应的存储引擎节点;
[0031]根据所述存储区间中包括的待存储文件以及所述存储区间所对应的存储引擎节点,确定所述待存储文件所对应的存储引擎节点;
[0032]调用所述存储引擎节点所在的存储引擎服务器,拉取所述待存储文件,并将拉取到的待存储文件加载至对应的存储引擎节点中。
[0033]在本公开的一种示例性实施例中,拉取所述待存储文件,包括:
[0034]为所述存储引擎节点配置拉取速度值,并在所述存储引擎服务器上部署代理服务;
[0035]通过所述代理服务控制所述存储引擎节点以所述拉取速度值拉取所述待存储文件。
[0036]在本公开的一种示例性实施例中,将拉取到的待存储文件加载至对应的存储引擎节点中,包括:
[0037]读取所述拉取到的待存储文件的元信息;
[0038]基于所述元信息,将所述待存储文件添加至所述存储引擎节点中包括的日志结构的合并树中。
[0039]在本公开的一种示例性实施例中,所述数据存储方法还包括:
[0040]根据所述待存储文件的值中包括的版本号,确定所述日志结构的合并树中是否存在与所述待存储文件对应的历史版本文件;
[0041]若存在,则对所述历史版本文件进行删除。
[0042]在本公开的一种示例性实施例中,所述数据存储方法还包括:
[0043]根据已存储分片的键,确定所述已存储分片所在的存储引擎节点,并从所述存储
引擎节点中获取与所述已存储分片对应的已存储文件;
[0044]从所述已存储文件中获取所述已存储分片。
[0045]根据本公开的一个方面,提供一种数据存储装置,包括:
[0046]存储区间确定模块,用于对待存储数据进行分片处理,得到包括键值对的待存储分片,并根据所述待存储分片的键,确定所述待存储分片所属的存储区间;
[0047]待存储文件转换模块,用于将属于同一存储区间的待存储分片转换成待存储文件;
[0048]文件存储模块,用于根据所述存储区间所属的存储引擎节点,将所述待存储文件存储至所述存储引擎节点中。
[0049]在本公开的一种示例性实施例中,对待存储数据进行分片处理,得到多个包括键值对的待存储分片,包括:
[0050]获取待存储数据,并对所述待存储数据的键进行哈希运算,得到所述待存储数据的键的哈希值;
[0051]根据所述待存储数据的键的哈希值以及与所述待存储数据的键对应的值,得到所述包括键值对的待存储分片。
[0052]在本公开的一种示例性实施例中,获取待存储数据包括:
[0053]根据数据文件的路径,从分布式文件系统中获取包括键值对的待存储数据;和/或
[0054]从Hive集群中获取包括键值对的待存储数据。
[0055]在本公开的一种示例性实施例中,根据所述待存储分片的键,确定所述待存储分片所属的存储区间,包括:
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,包括:对待存储数据进行分片处理,得到包括键值对的待存储分片,并根据所述待存储分片的键,确定所述待存储分片所属的存储区间;将属于同一存储区间的待存储分片转换成待存储文件;根据所述存储区间所属的存储引擎节点,将所述待存储文件存储至所述存储引擎节点中。2.根据权利要求1所述的数据存储方法,其中,对待存储数据进行分片处理,得到多个包括键值对的待存储分片,包括:获取待存储数据,并对所述待存储数据的键进行哈希运算,得到所述待存储数据的键的哈希值;根据所述待存储数据的键的哈希值以及与所述待存储数据的键对应的值,得到所述包括键值对的待存储分片。3.根据权利要求2所述的数据存储方法,其中,获取待存储数据包括:根据数据文件的路径,从分布式文件系统中获取包括键值对的待存储数据;和/或从Hive集群中获取包括键值对的待存储数据。4.根据权利要求2所述的数据存储方法,其中,根据所述待存储分片的键,确定所述待存储分片所属的存储区间,包括:根据所述待存储分片的键的哈希值的第一个字符在预设的字典序中的顺序,确定所述待存储分片所属的存储区间。5.根据权利要求4所述的数据存储方法,其中,所述数据存储方法还包括:根据所述待存储分片的键的哈希值的第一个字符在预设的字典序中的顺序,对属于同一存储区间的待存储分片进行排序。6.根据权利要求1所述的数据存储方法,其中,将属于同一存储区间的待存储分片转换成待存储文件,包括:根据所述待存储分片所属...

【专利技术属性】
技术研发人员:柳奇涛李雪冬张磊黄崛骆庚
申请(专利权)人:杭州网易云音乐科技有限公司
类型:发明
国别省市:

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

1