基于并行处理数据库的数据存储方法、装置和设备与流程

文档序号:37341820发布日期:2024-03-18 18:12阅读:11来源:国知局
基于并行处理数据库的数据存储方法、装置和设备与流程

本技术涉及数据库,具体涉及一种基于并行处理数据库的数据存储方法、装置和设备。


背景技术:

1、在数据库管理和数据分析的原处理流程中,并行处理数据库是将json数据作为一个完整且独立的数据进行操作,对于一条json数据,例如{"a":1,"b":1},要么全部读取,要么不读取。如果实际用户的查询只想访问json数据中的某一列数据,例如只想访问a列,原处理流程会将b列一起查询出来,在这种部分列访问的场景下,原处理流程会造成非必要数据的查询。


技术实现思路

1、本技术提供了一种基于并行处理数据库的数据存储方法、装置、电子设备和可读存储介质,在部分列访问的场景下,能够减少非必要数据的查询,提高查询性能。

2、本技术实施例的技术方案如下:

3、第一方面,本技术实施例提供了一种基于并行处理数据库的数据存储方法,所述方法包括:

4、获取待存储数据,所述待存储数据包括多个json数据,每一个所述json数据的格式为键值对格式;

5、对各个所述json数据进行分配,得到各个所述json数据对应的存储文件;

6、基于每一个所述存储文件,对各个所述json数据进行格式解析,得到相同键和非相同键;

7、将一个所述相同键对应存储至所述存储文件中一个存储数据页列,将所有所述非相同键存储至所述存储文件中一个存储数据页列;

8、将所述相同键对应的键值写入所述相同键对应的所述存储数据页列的元数据中,将所述非相同键对应的键值写入所述非相同键对应的所述存储数据页列的元数据中,得到存储数据。

9、在上述技术方案中,首先获取待存储数据,待存储数据包括多个json数据,每一个json数据的格式为键值对格式,键值对格式的数据方便后续按照键和值进行解析,提供数据支持;然后对各个json数据进行分配,得到各个json数据对应的存储文件,有利于将不同类型的数据分开存储;基于每一个存储文件,对各个json数据进行格式解析,得到相同键和非相同键,有利于后续按照相同键和非相同键将数据进行分开存储;将一个相同键对应存储至存储文件中一个存储数据页列,将所有非相同键存储至存储文件中一个存储数据页列,通过分开存储,方便部分列读取,减少非必要数据的查询,提高查询性能;将相同键对应的键值写入相同键对应的存储数据页列的元数据中,将非相同键对应的键值写入非相同键对应的存储数据页列的元数据中,得到存储数据,并对键值进行存储,从而实现各个json数据的存储,便于部分列读取,减少cpu、磁盘的开销,提高查询性能。

10、在本技术的一些实施例中,所述基于每一个所述存储文件,对各个所述json数据进行格式解析,得到相同键和非相同键,包括:

11、基于每一个所述存储文件,提取所有所述json数据中相同键名,判断所述相同键名对应的键值是否为预设值,在所述相同键名对应的键值不是预设值的情况下,得到第一相同键;

12、在所述相同键名对应的键值是预设值,且所述预设值的个数小于预设数量的情况下,将所述相同键名作为第二相同键,其中,所述预设数量为所述json数据的总数量的一半;

13、将所述第一相同键和所述第二相同键构成所述相同键。

14、在上述技术方案中,提取所有json数据中相同键名,在相同键名对应的键值不是预设值得到第一相同键,在相同键名对应的键值是预设值,且预设值的个数小于预设数量的情况下,得到第二相同键,上述两种情况均可以得到相同键,有利于后续按照相同键进行存储,方便进行部分数据的读取。

15、在本技术的一些实施例中,在所述提取所有所述json数据中相同键名之后,所述方法还包括:

16、在所述相同键名对应的键值是预设值,且所述预设值的个数大于或者等于预设数量的情况下,将所述相同键名作为第一非相同键;

17、将所述json数据中非相同键名作为所述第二非相同键;

18、将所述第一非相同键和所述第二非相同键构成所述非相同键。

19、在上述技术方案中,在相同键名对应的键值是预设值,且预设值的个数大于或者等于预设数量的情况下得到第一非相同键,以及将非相同键名作为第二非相同键,上述两种情况均可以得到非相同键,有利于后续将相同键与非相同键进行分开存储,方便部分数据存储和读取,减少非必要数据的查询,提高查询性能。

20、在本技术的一些实施例中,所述在所述相同键名对应的键值是预设值,且所述预设值的个数小于预设数量的情况下,所述方法还包括:

21、在所述相同键名对应的键值是预设值,且所述预设值的个数小于预设数量的情况下,对所述相同键名是否存在公共类型进行判断,得到判断结果;

22、在所述判断结果为存在所述公共类型的情况下,对所述相同键名对应的键值进行拆分,并进行类型转换,得到转换值;

23、将所述相同键名作为所述第二相同键,所述第二相同键对应的键值为所述转换值。

24、在上述技术方案中,在相同键名对应的键值是预设值,且预设值的个数小于预设数量的情况下,判断相同键名是否存在公共类型,在存在公共类型或者类型可以转换的情况下,进行类型转换,并更新第二相同键对应的键值,使得数据类型统一,方便进行数据存储和数据读取,能够减少查询流程中不同数据格式的转换开销,提高查询性能。

25、在本技术的一些实施例中,在所述对所述相同键名是否存在公共类型进行判断,得到判断结果之后,所述方法还包括:

26、在所述判断结果不存在所述公共类型的情况下,将所述相同键名作为所述第二相同键,所述第二相同键对应的键值不变。

27、在上述技术方案中,在不存在公共类型或者类型可以转换的情况下,直接对第二相同键和第二相同键对应的键值进行存储,能够支持多种类型的存储形式。

28、在本技术的一些实施例中,在所述将所述相同键对应的键值写入所述相同键对应的所述存储数据页列的元数据中,将所述非相同键对应的键值写入所述非相同键对应的所述存储数据页列的元数据中,得到存储数据之后,所述方法还包括:

29、获取查询语言,利用预设的优化器规则从所述查询语言中提取得到查询表达式;

30、从所述查询表达式中提取访问路径,将所述访问路径存储至扫描节点;

31、利用所述扫描节点进行数据读取,得到读取数据。

32、在上述技术方案中,在上述存储数据的基础之上,进行数据读取,能够读取得到部分数据,也可以读取全部数据。

33、在本技术的一些实施例中,所述利用所述扫描节点进行数据读取,得到读取数据,包括:

34、根据所述访问路径读取所述存储文件,得到初始读取数据;

35、将所述初始读取数据进行包装处理,得到所述读取数据。

36、在上述技术方案中,在初始读取数据为部分数据的情况下,利用json函数对初始读取数据进行包装处理,得到读取数据,读取数据为json格式,方便后续对数据的计算使用。

37、第二方面,本技术实施例提供了一种基于并行处理数据库的数据存储装置,所述装置包括:

38、数据获取模块,用于获取待存储数据,所述待存储数据包括多个json数据,每一个所述json数据的格式为键值对格式;

39、数据分配模块,用于对各个所述json数据进行分配,得到各个所述json数据对应的存储文件;

40、数据解析模块,用于基于每一个所述存储文件,对各个所述json数据进行格式解析,得到相同键和非相同键;

41、第一数据存储模块,用于将一个所述相同键对应存储至所述存储文件中一个存储数据页列,将所有所述非相同键存储至所述存储文件中一个存储数据页列;

42、第二数据存储模块,用于将所述相同键对应的键值写入所述相同键对应的所述存储数据页列的元数据中,将所述非相同键对应的键值写入所述非相同键对应的所述存储数据页列的元数据中,得到存储数据。

43、第三方面,本技术实施例提供了一种电子设备,包括处理器、存储器、用户接口及网络接口,所述存储器用于存储指令,所述用户接口和网络接口用于给其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行上述第一方面提供的任意一项所述的方法。

44、第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,执行上述第一方面提供的任意一项所述的方法。

45、综上所述,本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

46、1、由于采用了在每一个存储文件中,对各个json数据进行解析,得到相同键和非相同键,再将一个相同键存储于一个存储数据页列,将非相同键存储于一个存储数据页列,以及将键值也进行存储得到存储数据的技术手段,所以,有效解决了相关技术中在这种部分列访问的场景下,原处理流程会造成非必要数据的查询的问题。本技术实施例通过在每一个存储文件,对json数据进行解析,将一个相同键存储于一个存储数据页列,将非相同键存储于一个存储数据页列,不仅能够进行部分数据读取还能够进行整体数据读取,减少非必要数据的查询,减少cpu、磁盘的开销,提高查询性能。

47、2、通过对相同键名进行公共类型判断,在存在公共类型的情况下,进行数据格式转换,数据格式较为统一,能够减少查询流程中不同数据格式的转换开销,提高查询性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1