CN114625733A - 多维数据库中的沙箱数据查询方法、装置及设备 - Google Patents
多维数据库中的沙箱数据查询方法、装置及设备 Download PDFInfo
- Publication number
- CN114625733A CN114625733A CN202210128284.7A CN202210128284A CN114625733A CN 114625733 A CN114625733 A CN 114625733A CN 202210128284 A CN202210128284 A CN 202210128284A CN 114625733 A CN114625733 A CN 114625733A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- storage unit
- aggregated cells
- root node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 244000035744 Hura crepitans Species 0.000 title abstract description 33
- 230000002085 persistent effect Effects 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 9
- 239000003550 marker Substances 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 8
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种多维数据库中的沙箱数据查询方法、装置及设备。该方法包括:接收用户发送的数据查询请求;根据数据查询请求确定待查询数据的查询范围;若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量;若聚合cell和非聚合cell的数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;根据查询范围,通过目标根节点进行数据遍历,获取目标cell值;将目标cell值作为查询范围的结果集返回至用户。根据本申请实施例,可以提高多维数据库中的沙箱数据查询效率。
Description
技术领域
本申请属于数据库处理领域,尤其涉及一种多维数据库中的沙箱数据查询方法、装置及设备。
背景技术
数据库领域中,沙箱用于提供一种隔离数据读写的独立作业空间。其中,在多维数据库中,沙箱通常用于提供一种隔离多维数据集Cube数据读写的独立作业环境。
多维数据库沙箱中的Cube数据,可以分两个存储单元,其中,第一存储单元可以对基线数据的一个或多个改变,第二存储单元用于存储基线数据。并且,第一存储单元和第二存储单元中存储的都是非聚合Cell。
目前,沙箱数据查询和聚合计算时,从存储单元查询数据的原则通常是:若Cell值存在于第一存储单元,则使用第一存储单元的Cell值;或者,若Cell值不存在于第一存储单元,则使用第二存储单元的Cell值;再或者,若Cell值在第一、第二存储单元均不存在,则Cell值为空。其中,从存储单元获取的Cells,可以用于聚合计算或者直接返回给用户。
相关技术中,沙箱数据查询的方式,主要包括以下两种:
方法一:针对用户的数据查询范围进行沙箱数据查询,即分别从第一单存储元和第二存储单元查询数据,然后合并查询数据并处理冲突;之后,用合并后的数据进行聚合计算。
方法二:当第一存储单元和第二存储单元的数据分别存储在两个数据树上时,则同时遍历第一存储单元和第二存储单元的两个数据树,并在遍历时处理节点冲突,同时进行聚合计算,以降低空间复杂度。聚合计算时,每从存储单元中获取一个Cell,就直接通过计算加到最终的聚合结果上,以将空间复杂度会降到O(1)。
然而,采用上述方法一时,若需要从沙箱中获取大批量值时,而第一存储单元和第二存储单元存在大量冲突的Cell时(也即,第一存储单元和第二存储单元同时拥有多个相同的Cell),则可能造成空间浪费,以及影响查询效率。并且,采用上述方法二时,由于同时遍历两个数据树时,每次遍历时都要处理冲突,这样一来,若要获取一批Cell值,则必须按照本批cell路径的字典序从小到大依次获取,然后随机获取一批Cell中的某一个,会影响查询效率。
因此,如何提高多维数据库中的沙箱数据查询效率是本领域技术人员亟需解决的技术问题。
发明内容
本申请实施例提供一种多维数据库中的沙箱数据查询方法、装置、设备及计算机可读存储介质,能够提高多维数据库中的沙箱数据查询效率。
第一方面,本申请实施例提供一种多维数据库中的沙箱数据查询方法,方法包括:
接收用户发送的数据查询请求,数据查询请求中包括用于表征待查询数据的查询范围的信息;
根据数据查询请求确定待查询数据的查询范围;
若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量;
若聚合cell和非聚合cell的数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;
根据查询范围,通过目标根节点进行数据遍历,获取目标cell值;
将目标cell值作为查询范围的结果集返回至用户。
可选的,该方法还包括:若聚合cell和非聚合cell的数量不满足预设第一条件,则判断聚合cell的数量是否为1,或,查询范围中是否包括至少一个录入cell;若聚合cell的数量为1,则将聚合cell拆解成多个子cell,并且分别遍历第一存储单元和第二存储单元的两个数据树,以产生查询范围的结果集。
可选的,该方法还包括:若查询范围中包括至少一个录入cell,则遍历两个数据树,将遍历得到的cell值存到最终的结果集中,产生查询范围的结果集。
可选的,根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点,包括:
获取多维数据库中第一存储单元的数据树的最新可读版本的第一根节点;
获取多维数据库中第二存储单元的数据树的最新可读版本的第二根节点;
基于第一根节点和第二根节点,同时遍历第一存储单元的数据树和第二存储单元的数据树,检测冲突并进行合并;
根据合并产生的可持久化数据结构,生成用于数据查询的目标根节点。
可选的,该方法还包括:针对合并产生可持久化数据结构时,产生衔接的节点进行标记;根据标记拆分可持久化数据结构。
可选的,根据标记拆分可持久化数据结构,包括:
根据目标根节点和标记,遍历查找产生衔接的节点;
针对产生衔接的节点,根据合并时的记录,将子项节点指针指向第二存储单元的指针赋空,实现可持久化数据结构的拆分。
可选的,方法还包括:遍历查找产生衔接的节点时,当遍历到第一个非产生衔接的节点时,则进行回溯。
第二方面,本申请实施例提供了一种多维数据库中的沙箱数据查询装置,装置包括:
请求接收模块,用于接收用户发送的数据查询请求,数据查询请求中包括用于表征待查询数据的查询范围的信息;
范围确定模块,用于根据数据查询请求确定待查询数据的查询范围;
数量确定模块,用于若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量;
节点生成模块,用于若聚合cell和非聚合cell的数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;
获取模块,用于根据查询范围,通过目标根节点进行数据遍历,获取目标cell值;
返回模块,用于将目标cell值作为查询范围的结果集返回至用户。
可选的,该装置还用于:
若聚合cell和非聚合cell的数量不满足预设第一条件,则判断聚合cell的数量是否为1,或,查询范围中是否包括至少一个录入cell;
若聚合cell的数量为1,则将聚合cell拆解成多个子cell,并且分别遍历第一存储单元和第二存储单元的两个数据树,以产生查询范围的结果集。
可选的,该装置还用于:
若查询范围中包括至少一个录入cell,则遍历两个数据树,将遍历得到的cell值存到最终的结果集中,产生查询范围的结果集。
可选的,节点生成模块,具体用于:
获取多维数据库中第一存储单元的数据树的最新可读版本的第一根节点;
获取多维数据库中第二存储单元的数据树的最新可读版本的第二根节点;
基于第一根节点和第二根节点,同时遍历第一存储单元的数据树和第二存储单元的数据树,检测冲突并进行合并;
根据合并产生的可持久化数据结构,生成用于数据查询的目标根节点。
可选的,该装置还包括:
节点标记模块,用于针对合并产生可持久化数据结构时,产生衔接的节点进行标记;
拆分模块,用于根据标记拆分可持久化数据结构。
可选的,拆分模块,具体用于:
根据目标根节点和标记,遍历查找产生衔接的节点;
针对产生衔接的节点,根据合并时的记录,将子项节点指针指向第二存储单元的指针赋空,实现可持久化数据结构的拆分。
可选的,该装置还包括:
遍历查找产生衔接的节点时,当遍历到第一个非产生衔接的节点时,则进行回溯。
第三方面,本申请实施例提供了一种多维数据库中的沙箱数据查询设备,设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如第一方面所述的多维数据库中的沙箱数据查询方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,该计算机程序指令被处理器执行时实现如第一方面所述的多维数据库中的沙箱数据查询方法。
本申请实施例的多维数据库中的沙箱数据查询方法、装置、设备及计算机可读存储介质,能够将第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并成一个可持久化数据结构,并生成目标根节点,这样,在后续遍历查找时,可以直接使用目标根节点遍历,能够一次性处理数据树所有冲突的节点,进而可以避免相关技术中需要多次处理相同的Cell的冲突的问题,从而提高多维数据库中的沙箱数据查询效率。
另一方面,合并产生的可持久化数据结构,可以打破聚合计算时,多个子cell需要按照路径字典序遍历的局限,可以支持更强大的遍历能力,从而可以提高多维数据库中的沙箱数据查询效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的多维数据库中的沙箱数据查询方法的流程示意图;
图2是本申请一个实施例提供的合并产生可持久化数据结构,并生成用于数据查询的目标根节点的方法的流程示意图;
图3是本申请一个实施例提供的第一存储单元的cube数据树的示意图;
图4是本申请一个实施例提供的第二存储单元的cube数据树的示意图;
图5是本申请一个实施例提供的合并产生的可持久化数据结构的示意图;
图6是本申请一个实施例提供的拆分可持久化数据结构的示意图;
图7是本申请一个实施例提供的多维数据库中的沙箱数据查询装置的结构示意图;
图8是本申请一个实施例提供的多维数据库中的沙箱数据查询设备的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了解决现有技术问题,本申请实施例提供了一种多维数据库中的沙箱数据查询方法、装置、设备及计算机可读存储介质。下面首先对本申请实施例所提供的多维数据库中的沙箱数据查询方法进行介绍。
本申请提供的多维数据库中的沙箱数据查询方法,包括:接收用户发送的数据查询请求,数据查询请求中包括用于表征待查询数据的查询范围的信息;根据数据查询请求确定待查询数据的查询范围;若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量;若聚合cell和非聚合cell的数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;根据查询范围,通过目标根节点进行数据遍历,获取目标cell值;将目标cell值作为查询范围的结果集返回至用户。
图1示出了本申请一个实施例提供的多维数据库中的沙箱数据查询方法的流程示意图。如图1所示,
S001、接收用户发送的数据查询请求,数据查询请求中包括用于表征待查询数据的查询范围的信息。
本申请实施例中,当用户需要查询数据时,即可以向预先构建的多维库Tabase发送数据查询请求,在Tabase接收到用户发送的数据查询请求之后,即可以执行后续S002~S006的操作,以向用户返回查询结果。
待查询数据的查询范围,例如可以是一个Cell路径,一个切片或者一个切块等。
可选的,本申请在执行S001之前,还可以预先基于多维库服务为多维库创建沙箱,并按业务需求在沙箱中和基线数据层中录入数据。其次,在沙箱中向Cube录入数据,并且数据存储在第一存储单元。需要说明的是,不指定沙箱直接向Cube录入数据,以及数据存储在第二存储单元(基线数据层)。
S002、根据数据查询请求确定待查询数据的查询范围。
本申请实施例中,Tabase接收到用户发送的数据查询请求之后,可以根据数据查询请求中包含的用于表征待查询数据的查询范围的信息确定待查询数据的查询范围。
S003、若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量。
本申请实施例中,预设查询范围可以包括切片,或切块。
例如,以预设查询范围为切片(或切块)为例,若查询范围为切片(或切块),则认为查询范围为预设查询范围。
S004、若聚合cell和非聚合cell的数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点。
预设第一条件包括,查询范围中聚合cell个数大于1,或查询范围中既有聚合cell又有录入cell。例如,以查询范围为切片(或切块)为例,即切片(或切块)中聚合cell个数大于1,或切片(或切块)中既有聚合cell又有录入cell。
沿用上例,以查询范围为切片(或切块)为例,当切片(或切块)中聚合cell个数大于1,或切片(或切块)中既有聚合cell又有录入cell,即认为聚合cell和非聚合cell的数量满足预设第一条件。
例如,假设查询范围为切片,且切片中聚合cell个数为3,则认为聚合cell和非聚合cell的数量满足预设第一条件。或者,假设查询范围为切片,且切片中既有聚合cell又有录入cell,则认为聚合cell和非聚合cell的数量满足预设第一条件。
目标根节点,可以表示为TmpRoot,可以指合成可持久化数据结构后,产生的用于优化查询的新版本的根节点。
在一个实施例中,如图2所示,根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点,包括:
S021、获取多维数据库中第一存储单元的数据树的最新可读版本的第一根节点。
如图3所示,为本申请实施例中第一存储单元的cube数据树的示意图。其中,root表示第一存储单元的数据树的最新可读版本的第一根节点。e1、e2和e3为第一根节点的子节点。
S022、获取多维数据库中第二存储单元的数据树的最新可读版本的第二根节点。
如图4所示,为本申请实施例中第二存储单元的cube数据树的示意图。其中,root表示第一存储单元的数据树的最新可读版本的第一根节点。e1和e2为第二根节点的子节点。
S023、基于第一根节点和第二根节点,同时遍历第一存储单元的数据树和第二存储单元的数据树,检测冲突并进行合并。
本申请实施例中,可以基于第一根节点和第二根节点,同时深度优先遍历第一存储单元的数据树和第二存储单元的数据树,检测冲突并进行合并。
其中,深度遍历处理冲突时,当遇见第一个非冲突节点时,则进行回溯。基于此,当两个树的冲突节点的个数有m个,则合并产生可持久化数据结构时,时间复杂度是O(m),空间复杂度是O(1)。合并时,记录产生衔接关系的节点。
S024、根据合并产生的可持久化数据结构,生成用于数据查询的目标根节点。
可选的,本申请中,针对合并产生可持久化数据结构时,产生衔接的节点可以进行标记。然后,根据标记拆分可持久化数据结构。其中,若产生衔接的点有n个,则拆分的时间复杂度是O(n)。如图5所示,为本申请实施例提供的合并产生的可持久化数据结构的示意图,其中,产生衔接的节点,即图5中标记有字母“c”的节点,图5中标记有字母“a”的节点表示冲突的节点;图5中标记有字母“b”的节点表示原第二存储单元的普通节点;图5中标记有字母“d”的节点表示原第一存储单元的普通节点。图5中右边的“root”节点表示新版本的目标根节点(也即原第一存储单元的根节点)。
需要说明的是,如图5所示的数据树中的节点可以有多个子项;其次,对于图5中的每个产生衔接的节点,合并时还可以记录哪些子项来自于第二存储单元,例如:root节点的e2子项;e1节点中的e2子项。
在一个可选的实施例中,根据标记拆分可持久化数据结构,包括:
根据目标根节点和标记,遍历查找产生衔接的节点;
针对产生衔接的节点,根据合并时的记录,将子项节点指针指向第二存储单元的指针赋空,实现可持久化数据结构的拆分。
本申请实施例中,若冲突且产生衔接的节点的个数为n,则拆分的时间复杂度是O(n)。
如图6所示,为本申请实施例提供的拆分可持久化数据结构的示意图。其中,图6中标记有字母“b”的节点表示原第二存储单元的普通节点;图6中标记有字母“d”的节点表示原第一存储单元的普通节点。
在一个实施例中,若聚合cell和非聚合cell的数量不满足预设第一条件,则本方案还包括:判断聚合cell的数量是否为1,或,查询范围中是否包括至少一个录入cell;若聚合cell的数量为1,则将聚合cell拆解成多个子cell,并且分别遍历第一存储单元和第二存储单元的两个数据树,以产生查询范围的结果集。或者,若查询范围中包括至少一个录入cell,则遍历两个数据树,将遍历得到的cell值存到最终的结果集中,产生查询范围的结果集。
例如,实际应用中,查询范围中可能出现以下两种情况:
情况一:查询范围中只有一个聚合cell;
情况二:查询范围中有一个或者多个录入cell。
针对情况一,本申请中,可以将聚合cell拆解成多个子cell,同时遍历第一存储单元和第二存储单元的两个数据树,遍历时处理节点冲突,同时进行计算,产生结果集。
针对情况二,本申请中,可以同时遍历第一存储单元的数据树和第二存储单元的数据树,遍历时处理节点冲突,将遍历到cell值存到最终的结果集中,产生结果集。
S005、根据查询范围,通过目标根节点进行数据遍历,获取目标cell值。
本申请实施例中,可以根据查询范围,使用目标根节点TmpRoot进行数据遍历,获取相应的cell值。需要说明的是,查询聚合cell值时,可以批量遍历子cell,每遍历一个直接将子cell值加到聚合cell最终的结果上。并且,批量获取cell值时,无需按批量cell路径的字典序,从小到大遍历。
S006、将目标cell值作为查询范围的结果集返回至用户。
本申请实施例的多维数据库中的沙箱数据查询方法,能够将第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并成一个可持久化数据结构,并生成目标根节点,这样,在后续遍历查找时,可以直接使用目标根节点遍历,能够一次性处理数据树所有冲突的节点,进而可以避免相关技术中需要多次处理相同的Cell的冲突的问题,从而提高多维数据库中的沙箱数据查询效率。
另一方面,合并产生的可持久化数据结构,可以打破聚合计算时,多个子cell需要按照路径字典序遍历的局限,可以支持更强大的遍历能力,从而可以提高多维数据库中的沙箱数据查询效率。
图7示出了本申请实施例提供的多维数据库中的沙箱数据查询装置的结构示意图。如图7所示,该装置包括:
请求接收模块701,用于接收用户发送的数据查询请求,数据查询请求中包括用于表征待查询数据的查询范围的信息;
范围确定模块702,用于根据数据查询请求确定待查询数据的查询范围;
数量确定模块703,用于若查询范围为预设查询范围时,则确定查询范围中聚合cell和非聚合cell的数量;
节点生成模块704,用于若聚合cell和非聚合cell的数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;
获取模块705,用于根据查询范围,通过目标根节点进行数据遍历,获取目标cell值;
返回模块706,用于将目标cell值作为查询范围的结果集返回至用户。
在一个实施例中,该装置还用于:
若聚合cell和非聚合cell的数量不满足预设第一条件,则判断聚合cell的数量是否为1,或,查询范围中是否包括至少一个录入cell;
若聚合cell的数量为1,则将聚合cell拆解成多个子cell,并且分别遍历第一存储单元和第二存储单元的两个数据树,以产生查询范围的结果集。
在一个实施例中,该装置还用于:
若查询范围中包括至少一个录入cell,则遍历两个数据树,将遍历得到的cell值存到最终的结果集中,产生查询范围的结果集。
在一个实施例中,节点生成模块704,具体用于:
获取多维数据库中第一存储单元的数据树的最新可读版本的第一根节点;
获取多维数据库中第二存储单元的数据树的最新可读版本的第二根节点;
基于第一根节点和第二根节点,同时遍历第一存储单元的数据树和第二存储单元的数据树,检测冲突并进行合并;
根据合并产生的可持久化数据结构,生成用于数据查询的目标根节点。
在一个实施例中,该装置还包括:
节点标记模块,用于针对合并产生可持久化数据结构时,产生衔接的节点进行标记;
拆分模块,用于根据标记拆分可持久化数据结构。
可选的,拆分模块,具体用于:
根据目标根节点和标记,遍历查找产生衔接的节点;
针对产生衔接的节点,根据合并时的记录,将子项节点指针指向第二存储单元的指针赋空,实现可持久化数据结构的拆分。
在一个实施例中,该装置还包括:
遍历查找产生衔接的节点时,当遍历到第一个非产生衔接的节点时,则进行回溯。
图7所示装置中的各个模块/单元具有实现图1中各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。
图8示出了本申请实施例提供的多维数据库中的沙箱数据查询设备的结构示意图。
多维数据库中的沙箱数据查询设备可以包括处理器801以及存储有计算机程序指令的存储器802。
具体地,上述处理器801可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器802可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器802可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器802可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器802可在多维数据库中的沙箱数据查询设备的内部或外部。在特定实施例中,存储器802可以是非易失性固态存储器。
在一个实施例中,存储器802可以是只读存储器(Read Only Memory,ROM)。在一个实施例中,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器801通过读取并执行存储器802中存储的计算机程序指令,以实现上述实施例中的任意一种多维数据库中的沙箱数据查询方法。
在一个示例中,多维数据库中的沙箱数据查询设备还可包括通信接口803和总线810。其中,如图8所示,处理器801、存储器802、通信接口803通过总线810连接并完成相互间的通信。
通信接口803,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线810包括硬件、软件或两者,将多维数据库中的沙箱数据查询设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线810可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的多维数据库中的沙箱数据查询方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种多维数据库中的沙箱数据查询方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能模块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (10)
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所述的沙箱数据查询方法,其特征在于,所述方法还包括:
针对合并产生可持久化数据结构时,产生衔接的节点进行标记;
根据所述标记拆分所述可持久化数据结构。
6.根据权利要求5所述的沙箱数据查询方法,其特征在于,所述根据所述标记拆分所述可持久化数据结构,包括:
根据所述目标根节点和所述标记,遍历查找产生衔接的节点;
针对所述产生衔接的节点,根据合并时的记录,将子项节点指针指向所述第二存储单元的指针赋空,实现所述可持久化数据结构的拆分。
7.根据权利要求6所述的沙箱数据查询方法,其特征在于,所述方法还包括:
遍历查找所述产生衔接的节点时,当遍历到第一个非产生衔接的节点时,则进行回溯。
8.一种多维数据库中的沙箱数据查询装置,其特征在于,所述装置包括:
请求接收模块,用于接收用户发送的数据查询请求,所述数据查询请求中包括用于表征待查询数据的查询范围的信息;
范围确定模块,用于根据所述数据查询请求确定所述待查询数据的查询范围;
数量确定模块,用于若所述查询范围为预设查询范围时,则确定所述查询范围中聚合cell和非聚合cell的数量;
节点生成模块,用于若所述聚合cell和所述非聚合cell的所述数量满足预设第一条件,则根据多维数据库中第一存储单元的数据树的最新可读版本与第二存储单元的数据树的最新可读版本,合并产生可持久化数据结构,并生成用于数据查询的目标根节点;
获取模块,用于根据所述查询范围,通过所述目标根节点进行数据遍历,获取目标cell值;
返回模块,用于将所述目标cell值作为所述查询范围的结果集返回至所述用户。
9.一种多维数据库中的沙箱数据查询设备,其特征在于,所述沙箱数据查询设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-7任意一项所述的多维数据库中的沙箱数据查询方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-7任意一项所述的多维数据库中的沙箱数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210128284.7A CN114625733A (zh) | 2022-02-11 | 2022-02-11 | 多维数据库中的沙箱数据查询方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210128284.7A CN114625733A (zh) | 2022-02-11 | 2022-02-11 | 多维数据库中的沙箱数据查询方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625733A true CN114625733A (zh) | 2022-06-14 |
Family
ID=81897840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210128284.7A Pending CN114625733A (zh) | 2022-02-11 | 2022-02-11 | 多维数据库中的沙箱数据查询方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625733A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118260454A (zh) * | 2024-05-29 | 2024-06-28 | 浙江邦盛科技股份有限公司 | 时序中间态聚合图构建与查询方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405207B1 (en) * | 1999-10-15 | 2002-06-11 | Microsoft Corporation | Reporting aggregate results from database queries |
CN102982103A (zh) * | 2012-11-06 | 2013-03-20 | 东南大学 | 一种olap海量多维数据维存储方法 |
CN105550241A (zh) * | 2015-12-07 | 2016-05-04 | 珠海多玩信息技术有限公司 | 多维数据库查询方法及装置 |
CN107533569A (zh) * | 2015-10-23 | 2018-01-02 | 甲骨文国际公司 | 用于多维数据库环境中的沙箱支持的系统和方法 |
CN108182242A (zh) * | 2017-12-28 | 2018-06-19 | 湖南大学 | 一种用于海量多维数值数据范围查询的索引方法 |
CN110704548A (zh) * | 2019-09-30 | 2020-01-17 | 北京元年科技股份有限公司 | 用于多维数据库的筛选有效计算数据的系统和方法 |
CN112424767A (zh) * | 2018-07-19 | 2021-02-26 | 甲骨文国际公司 | 多维数据库环境中的虚拟立方体中进行实时数据聚合的系统和方法 |
-
2022
- 2022-02-11 CN CN202210128284.7A patent/CN114625733A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405207B1 (en) * | 1999-10-15 | 2002-06-11 | Microsoft Corporation | Reporting aggregate results from database queries |
CN102982103A (zh) * | 2012-11-06 | 2013-03-20 | 东南大学 | 一种olap海量多维数据维存储方法 |
CN107533569A (zh) * | 2015-10-23 | 2018-01-02 | 甲骨文国际公司 | 用于多维数据库环境中的沙箱支持的系统和方法 |
CN105550241A (zh) * | 2015-12-07 | 2016-05-04 | 珠海多玩信息技术有限公司 | 多维数据库查询方法及装置 |
CN108182242A (zh) * | 2017-12-28 | 2018-06-19 | 湖南大学 | 一种用于海量多维数值数据范围查询的索引方法 |
CN112424767A (zh) * | 2018-07-19 | 2021-02-26 | 甲骨文国际公司 | 多维数据库环境中的虚拟立方体中进行实时数据聚合的系统和方法 |
CN110704548A (zh) * | 2019-09-30 | 2020-01-17 | 北京元年科技股份有限公司 | 用于多维数据库的筛选有效计算数据的系统和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118260454A (zh) * | 2024-05-29 | 2024-06-28 | 浙江邦盛科技股份有限公司 | 时序中间态聚合图构建与查询方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138601B (zh) | 一种支持模糊约束关系的图模式匹配方法 | |
EP3968178B1 (en) | Log parsing method and device, server and storage medium | |
CN108694221B (zh) | 数据实时分析方法、模块、设备和装置 | |
CN114398394B (zh) | 数据血缘解析方法、装置、设备及存储介质 | |
CN110866029A (zh) | sql语句构建方法、装置、服务器及可读存储介质 | |
CN113722600A (zh) | 应用于大数据的数据查询方法、装置、设备及产品 | |
CN110674231A (zh) | 一种面向数据湖的用户id集成方法和系统 | |
CN114625733A (zh) | 多维数据库中的沙箱数据查询方法、装置及设备 | |
CN111797095A (zh) | 索引构建方法和json数据查询方法 | |
CN113157720B (zh) | 查询语句的处理方法、装置、设备及介质 | |
CN118210645A (zh) | 基于树结构的json数据校验方法及相关装置 | |
CN115130043B (zh) | 基于数据库的数据处理方法、装置、设备及存储介质 | |
CN114547380B (zh) | 数据遍历查询方法、装置、电子设备及可读存储介质 | |
CN116932537A (zh) | 车辆信息的查询方法、装置、设备、存储介质及车辆 | |
CN116263770A (zh) | 基于数据库的业务数据存储方法、装置、终端设备及介质 | |
CN114579580A (zh) | 存储数据的方法、查询数据的方法和装置 | |
CN103577560B (zh) | 一种输入数据库操作指令的方法和装置 | |
CN112052341A (zh) | 知识图谱剪枝方法及装置 | |
CN114090014A (zh) | 程序拆分方法、装置、设备及计算机存储介质 | |
CN115237903A (zh) | 宽表的生成方法、装置、设备及存储介质 | |
CN112749187A (zh) | 数据查询方法、装置、电子设备及计算机存储介质 | |
CN111695031A (zh) | 基于标签的搜索方法、装置、服务器及存储介质 | |
CN114553683B (zh) | 基于安全大数据反馈的云端配置更新方法及信息安全系统 | |
CN118427186B (zh) | 数据血缘追溯方法、装置、设备和介质 | |
CN117891979B (zh) | 血缘图谱构建方法、装置、电子设备和可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |