多维数据库中的沙箱数据查询方法、装置及设备制造方法及图纸

技术编号:33809163 阅读:16 留言:0更新日期:2022-06-16 10:18
本申请提供了一种多维数据库中的沙箱数据查询方法、装置及设备。该方法包括:接收用户发送的数据查询请求;根据数据查询请求确定待查询数据的查询范围;若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量;若聚合cell和非聚合cell的数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;根据查询范围,通过目标根节点进行数据遍历,获取目标cell值;将目标cell值作为查询范围的结果集返回至用户。根据本申请实施例,可以提高多维数据库中的沙箱数据查询效率。数据库中的沙箱数据查询效率。数据库中的沙箱数据查询效率。

【技术实现步骤摘要】
多维数据库中的沙箱数据查询方法、装置及设备


[0001]本申请属于数据库处理领域,尤其涉及一种多维数据库中的沙箱数据查询方法、装置及设备。

技术介绍

[0002]数据库领域中,沙箱用于提供一种隔离数据读写的独立作业空间。其中,在多维数据库中,沙箱通常用于提供一种隔离多维数据集Cube数据读写的独立作业环境。
[0003]多维数据库沙箱中的Cube数据,可以分两个存储单元,其中,第一存储单元可以对基线数据的一个或多个改变,第二存储单元用于存储基线数据。并且,第一存储单元和第二存储单元中存储的都是非聚合Cell。
[0004]目前,沙箱数据查询和聚合计算时,从存储单元查询数据的原则通常是:若Cell值存在于第一存储单元,则使用第一存储单元的Cell值;或者,若Cell值不存在于第一存储单元,则使用第二存储单元的Cell值;再或者,若Cell值在第一、第二存储单元均不存在,则Cell值为空。其中,从存储单元获取的Cells,可以用于聚合计算或者直接返回给用户。
[0005]相关技术中,沙箱数据查询的方式,主要包括以下两种:
[0006]方法一:针对用户的数据查询范围进行沙箱数据查询,即分别从第一单存储元和第二存储单元查询数据,然后合并查询数据并处理冲突;之后,用合并后的数据进行聚合计算。
[0007]方法二:当第一存储单元和第二存储单元的数据分别存储在两个数据树上时,则同时遍历第一存储单元和第二存储单元的两个数据树,并在遍历时处理节点冲突,同时进行聚合计算,以降低空间复杂度。聚合计算时,每从存储单元中获取一个Cell,就直接通过计算加到最终的聚合结果上,以将空间复杂度会降到O(1)。
[0008]然而,采用上述方法一时,若需要从沙箱中获取大批量值时,而第一存储单元和第二存储单元存在大量冲突的Cell时(也即,第一存储单元和第二存储单元同时拥有多个相同的Cell),则可能造成空间浪费,以及影响查询效率。并且,采用上述方法二时,由于同时遍历两个数据树时,每次遍历时都要处理冲突,这样一来,若要获取一批Cell值,则必须按照本批cell路径的字典序从小到大依次获取,然后随机获取一批Cell中的某一个,会影响查询效率。
[0009]因此,如何提高多维数据库中的沙箱数据查询效率是本领域技术人员亟需解决的技术问题。

技术实现思路

[0010]本申请实施例提供一种多维数据库中的沙箱数据查询方法、装置、设备及计算机可读存储介质,能够提高多维数据库中的沙箱数据查询效率。
[0011]第一方面,本申请实施例提供一种多维数据库中的沙箱数据查询方法,方法包括:
[0012]接收用户发送的数据查询请求,数据查询请求中包括用于表征待查询数据的查询
范围的信息;
[0013]根据数据查询请求确定待查询数据的查询范围;
[0014]若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量;
[0015]若聚合cell和非聚合cell的数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;
[0016]根据查询范围,通过目标根节点进行数据遍历,获取目标cell值;
[0017]将目标cell值作为查询范围的结果集返回至用户。
[0018]可选的,该方法还包括:若聚合cell和非聚合cell的数量不满足预设第一条件,则判断聚合cell的数量是否为1,或,查询范围中是否包括至少一个录入cell;若聚合cell的数量为1,则将聚合cell拆解成多个子cell,并且分别遍历第一存储单元和第二存储单元的两个数据树,以产生查询范围的结果集。
[0019]可选的,该方法还包括:若查询范围中包括至少一个录入cell,则遍历两个数据树,将遍历得到的cell值存到最终的结果集中,产生查询范围的结果集。
[0020]可选的,根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点,包括:
[0021]获取多维数据库中第一存储单元的数据树的最新可读版本的第一根节点;
[0022]获取多维数据库中第二存储单元的数据树的最新可读版本的第二根节点;
[0023]基于第一根节点和第二根节点,同时遍历第一存储单元的数据树和第二存储单元的数据树,检测冲突并进行合并;
[0024]根据合并产生的可持久化数据结构,生成用于数据查询的目标根节点。
[0025]可选的,该方法还包括:针对合并产生可持久化数据结构时,产生衔接的节点进行标记;根据标记拆分可持久化数据结构。
[0026]可选的,根据标记拆分可持久化数据结构,包括:
[0027]根据目标根节点和标记,遍历查找产生衔接的节点;
[0028]针对产生衔接的节点,根据合并时的记录,将子项节点指针指向第二存储单元的指针赋空,实现可持久化数据结构的拆分。
[0029]可选的,方法还包括:遍历查找产生衔接的节点时,当遍历到第一个非产生衔接的节点时,则进行回溯。
[0030]第二方面,本申请实施例提供了一种多维数据库中的沙箱数据查询装置,装置包括:
[0031]请求接收模块,用于接收用户发送的数据查询请求,数据查询请求中包括用于表征待查询数据的查询范围的信息;
[0032]范围确定模块,用于根据数据查询请求确定待查询数据的查询范围;
[0033]数量确定模块,用于若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量;
[0034]节点生成模块,用于若聚合cell和非聚合cell的数量满足预设第一条件,则根据
多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;
[0035]获取模块,用于根据查询范围,通过目标根节点进行数据遍历,获取目标cell值;
[0036]返回模块,用于将目标cell值作为查询范围的结果集返回至用户。
[0037]可选的,该装置还用于:
[0038]若聚合cell和非聚合cell的数量不满足预设第一条件,则判断聚合cell的数量是否为1,或,查询范围中是否包括至少一个录入cell;
[0039]若聚合cell的数量为1,则将聚合cell拆解成多个子cell,并且分别遍历第一存储单元和第二存储单元的两个数据树,以产生查询范围的结果集。
[0040]可选的,该装置还用于:
[0041]若查询范围中包括至少一个录入cell,则遍历两个数据树,将遍历得到的cell值存到最终的结果集中,产生查询范围的结果集。
[0042]可选的,节点生成模块,具体用于:
[0043]获取多维数据库中第一存储单元本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多维数据库中的沙箱数据查询方法,其特征在于,包括:接收用户发送的数据查询请求,所述数据查询请求中包括用于表征待查询数据的查询范围的信息;根据所述数据查询请求确定所述待查询数据的查询范围;若所述查询范围为预设查询范围时,则确定所述查询范围中聚合cell和非聚合cell的数量;若所述聚合cell和所述非聚合cell的所述数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;根据所述查询范围,通过所述目标根节点进行数据遍历,获取目标cell值;将所述目标cell值作为所述查询范围的结果集返回至所述用户。2.根据权利要求1所述的沙箱数据查询方法,其特征在于,所述方法还包括:若所述聚合cell和所述非聚合cell的所述数量不满足所述预设第一条件,则判断所述聚合cell的数量是否为1,或,所述查询范围中是否包括至少一个录入cell;若所述聚合cell的数量为1,则将所述聚合cell拆解成多个子cell,并且分别遍历所述第一存储单元和所述第二存储单元的两个数据树,以产生所述查询范围的结果集。3.根据权利要求2所述的沙箱数据查询方法,其特征在于,所述方法还包括:若所述查询范围中包括至少一个录入cell,则遍历所述两个数据树,将遍历得到的cell值存到最终的结果集中,产生所述查询范围的结果集。4.根据权利要求1所述的沙箱数据查询方法,其特征在于,所述根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点,包括:获取所述多维数据库中所述第一存储单元的数据树的最新可读版本的第一根节点;获取所述多维数据库中所述第二存储单元的数据树的最新可读版本的第二根节点;基于所述第一根节点和所述第二根节点,同时遍历所述第一存储单元的数据树和所述第二存储单元的数据树,检测冲突并进行合并;根据合并产生的可持久化数据结构,生成用于数据查询的所述目标根节点。5.根据权利要求4所述的沙箱...

【专利技术属性】
技术研发人员:刘成豪
申请(专利权)人:北京元年科技股份有限公司
类型:发明
国别省市:

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

1