处理数据库系统的数据技术方案

技术编号:32899873 阅读:13 留言:0更新日期:2022-04-07 11:49
本公开涉及一种用于处理数据库系统的数据的方法,该数据库系统被配置为连接到与其他数据库系统共享的集中式高速缓存。该方法包括使用数据库系统的公共标识方法来确定数据库系统的表的内容的唯一标识符。可以生成数据库命令以用于处理表的数据。该命令引用标识符。可以确定高速缓存是否包括具有相同标识符的相同命令的结果。可以在数据库系统处处理命令,或者可以根据高速缓存是否包括结果而从高速缓存检索命令的结果。速缓存检索命令的结果。速缓存检索命令的结果。

【技术实现步骤摘要】
【国外来华专利技术】处理数据库系统的数据

技术介绍

[0001]本专利技术涉及数字计算机系统领域,更具体地,涉及一种用于处理数据库系统的数据的方法。
[0002]数据湖是一种系统,其中许多类型的数据可以存储在公共平台中,使得可以使用公共工具集来管理、组合和分析它。数据湖通常由可在多个不同站点上运行的独立系统的联合形成,例如跨混合或多云。通常,这些独立系统是在相同或相似数据集上执行的关系数据库系统。然而,需要改进这些独立系统的操作。

技术实现思路

[0003]如独立权利要求的主题所述的各种实施例提供了一种用于处理数据库系统的数据的方法、高速缓存系统和计算机程序产品。在从属权利要求中描述了有利的实施例。如果本专利技术的实施例不是相互排斥的,则它们可以彼此自由地组合。
[0004]在一个方面,本公开涉及一种用于处理数据库系统的数据的方法,该数据库系统被配置为连接到与其他数据库系统共享的集中式高速缓存(或高速缓存)。数据库系统被配置为连接到高速缓存。该方法包括接收用于处理数据库系统的至少一个表的数据的请求。使用数据库系统的公共识别方法确定表的版本的唯一标识符。生成用于处理表的数据库命令,该命令引用标识符。确定高速缓存是否包括具有相同标识符的相同命令的结果。在数据库系统处处理命令,或者根据高速缓存是否包括结果而从高速缓存检索命令的结果。
[0005]在另一方面,本公开涉及一种用于处理数据库系统的数据的方法,该数据库系统被配置为连接到与其他数据库系统共享的集中式高速缓存。该方法包括接收用于处理数据库系统的多个表的数据的请求。对于多个表中的每一个,使用数据库系统的公共标识方法来确定表的版本的唯一标识符。生成用于处理多个表的数据的数据库命令,该命令引用多个标识符。该命令被分解成多个子命令,这些子命令独立地处理该多个表中的表。确定高速缓存是否包括相同指令的结果或每一子指令的结果。在高速缓存中不存在子命令及命令的结果的情况下,处理所生成的命令。在高速缓存中不存在所生成的命令的结果并且所述高速缓存中存在至少一个子命令的结果的情况下:处理至少一个子命令或从高速缓存检索其结果;处理在高速缓存中不存在其结果的子命令;根据所述命令合并所述子命令的结果,以获得所述命令的结果。在高速缓存中存在所生成的命令的结果的情况下,处理所述命令或从所述高速缓存中检索其结果。
[0006]在另一方面,本公开涉及一种计算机程序产品,其包括具有计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码被配置为实现根据前述实施例的方法。
[0007]在另一方面,本公开涉及一种系统,包括:数据库系统,其被配置为连接到与其他数据库系统共享的集中式高速缓存;一个或多个处理器;以及计算机可读存储介质,其耦合到所述一个或多个处理器,存储程序指令,当所述程序指令由所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据前述实施例的方法。
[0008]上述
技术实现思路
并非旨在描述本公开的每个所示实施例或每种实施方式。
附图说明
[0009]本申请中包括的附图并入说明书中并形成说明书的一部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅说明某些实施例,而不限制本公开。
[0010]图1描绘了根据实施例的用于访问存储在多个数据库中的数据的计算机系统的框图。
[0011]图2是根据实施例的用于处理数据库系统的数据的方法的流程图。
[0012]图3A是根据实施例的用于处理数据库系统的数据的方法的流程图。
[0013]图3B是根据实施例的查询结果的查找表的框图。
[0014]图4表示根据实施例的适于实现一个或多个方法步骤的计算机化系统。
[0015]图5是根据实施例的用于处理数据库系统的数据的方法的流程图。
具体实施方式
[0016]本专利技术的各种实施例的描述将出于说明的目的而呈现,但不希望是详尽的或限于所揭示的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
[0017]本专利技术的主题可以通过在一组独立数据库系统之间使用集中式查询记忆(centralized query memorization)来节省数据库系统中的处理资源。本专利技术的主题提供了一种分布式高速缓存,使得可以在数据库系统之间共享部分结果。这可以防止重新计算先前处理的查询。这在数据湖中可能是特别有利的。例如,数据库系统和其它数据库系统可以是数据湖的一部分。
[0018]例如,数据库系统中的每个数据库系统被配置为将在该数据库系统中执行的每个查询的结果与该查询的描述相关联地存储在高速缓存中。例如,高速缓存中的每个条目可以与在数据库系统的相应数据库系统中执行的查询相关联,其中条目可以包括查询的描述、查询中引用的表的标识符以及查询的结果。数据库系统的通用识别方法是由每个数据库系统使用以从表的内容生成唯一标识符的函数。这里描述的方法可以由数据库系统中的每个数据库系统来执行。
[0019]集中式高速缓存例如可以是跨越多个服务器的分布式高速缓存,使得其大小和事务容量可以增长。每个数据库系统可被配置成远程连接到集中式高速缓存。
[0020]表的版本是数据库系统处的表的当前或最后版本。表的版本可以是唯一地标识表的内容(或状态)的唯一版本名称或唯一版本号。
[0021]根据实施例,该方法还包括将由数据库系统处理命令的处理成本与从高速缓存向数据库系统检索结果的检索成本进行比较,并且基于比较结果在数据库系统处执行命令的处理或者从高速缓存检索命令的结果。这些实施例可以使得能够对数据库命令执行成本检查,其中成本检查的结果指示数据库命令的处理成本是否高于从高速缓存检索数据库命令的结果的成本。
[0022]例如,数据库系统处的查询规划器接收哪些子查询已经被计算并且存在于高速缓
存中的指示,然后做出本地决定以确定本地传送结果的估计成本是否超过了重新计算存在于高速缓存中的子查询的估计成本。
[0023]处理成本和检索成本可以指诸如CPU和网络带宽的处理资源的量。处理成本和检索成本可以具有例如在区间[0,1]内的归一化值。取决于要执行的任务,可以通过识别任务中涉及的处理资源来估计成本。例如,对于网络上的数据传输,资源可以是网络带宽、CPU、存储器等。可以使用那些识别的资源来估计成本,并且可以将所得到的成本归一化,使得可以将其与不同任务的其他成本进行比较。
[0024]这些实施例可能是有利的,因为与总是重新计算查询而没有从高速缓存检索结果的可能性的其它数据库系统相比,它可以节省数据库系统中的处理资源。
[0025]根据实施例,该方法还包括:在所述数据库系统处接收查询;由所述数据库系统的查询规划器确定用于所述查询的查询计划,所述查询计划包括引用所述表的至少一个子查询;其中生成所述数据库命令包括用所述子查询中的所述标识符替本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于处理数据库系统的数据的方法,所述数据库系统被配置为连接到与其他数据库系统共享的集中式高速缓存,所述方法包括:接收对所述数据库系统的表的数据进行处理的请求;使用所述数据库系统的公共标识方法来确定所述表的版本的唯一标识符;生成用于处理所述表的数据的数据库命令,所述命令引用所述标识符;确定所述高速缓存是否包括具有相同识别符的相同命令的结果;以及在所述数据库系统处处理所述命令或基于所述高速缓存是否包括所述结果而从所述高速缓存检索所述命令的所述结果。2.根据权利要求1所述的方法,还包括:将由所述数据库系统处理所述命令的处理成本与从所述高速缓存检索所述结果的检索成本进行比较,其中处理所述命令或检索所述结果进一步基于所述比较结果。3.根据权利要求1所述的方法,其中所述数据库系统包括另外的表,所述方法还包括针对所述另外的表中的一个或多个表,重复所述接收、所述确定唯一标识符、所述生成、所述确定所述高速缓存是否包括具有相同标识符的相同命令的结果以及所述处理。4.根据权利要求1所述的方法,其中在确定所述唯一标识符之前执行所述请求的接收。5.根据权利要求1所述的方法,其中在确定所述唯一标识符之后执行所述请求的接收。6.根据权利要求1所述的方法,还包括:在所述数据库系统处接收查询;以及由所述数据库系统的查询规划器确定用于所述查询的查询计划,所述查询计划包括引用所述表的子查询,其中所生成的数据库命令是通过用所述子查询中的所述标识符替换所述表的名称而生成的。7.根据权利要求6所述的方法,其中所述查询计划包括引用不同表的多个子查询,所述方法还包括使用所述表的名称来识别所述子查询。8.根据权利要求6所述的方法,其中所述查询计划包括引用所述表的另外的子查询,所述方法还包括通过用所述另外的子查询中的所述标识符替换所述表的名称来生成用于所述另外的子查询中的每一个的另外的数据库命令,并且针对所述另外生成的命令中的每一个,重复所述确定所述高速缓存是否包括具有相同标识符的相同命令的结果和所述处理。9.根据权利要求6所述的方法,其中所述查询计划包括引用所述数据库系统的不同表的另外的子查询,所述方法还包括:在另外的子查询中识别引用与其它数据库系统共享的表的子查询;针对在所识别的子查询中引用的表的每个不同表,重复确定唯一标识符;以及针对每个所识别的子查询,重复所述生成、所述确定所述高速缓存是否包括具有相同标识符的相同命令的结果以及所述处理。10.根据权利要求1所述的方法,还包括在确定所述标识符之前,确定所述表是与所述其他数据库系统的至少一部分共享的。11.根据权利要求1所述的方法,其中所述表的标识符是通过使用将表名称映射到相应的唯一标识符的ID表来确定的。12.根据权利要求1所述的方法,其中确定所述标识符包括对所述表的所述当前内容应用散列函数以用于生成所述标识符。
13.根据权利要求1所述的方法,其中所述高速缓存包括具有查询的文本描述作为关键字和所述查询的结果作为值的查找表,其中确定所述高速缓存是否包括所述命令的所述结果包括创建所述命令的文本描述和使用所述文本描述查询所述查找表。14.一种用于处理数据库系统的数据的计算机程序产品,所述数据库系统被配置为连接到与其他数据库系统共享的集中式高速缓存,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的计算机可读程序代码,所述计算机可读程序代码可由处...

【专利技术属性】
技术研发人员:J
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1