数据处理方法、设备、程序产品及存储介质技术

技术编号:30234847 阅读:22 留言:0更新日期:2021-09-29 10:14
本申请实施例提供一种数据处理方法、设备、程序产品及存储介质。在本申请实施例中,针对待查询的多张数据表,可根据多张数据表之间的主外键关系,生成多张数据表的索引;之后,可根据多张数据表之间的主外键关系,利用多张数据表的索引对多张数据表进行连接,得到连接结果;之后,可根据查询请求查询连接结果,得到查询请求对应的查询结果。其中,根据多张数据表之间的主外键关系,利用多张数据表的索引对多张数据表进行连接,实现了多张数据表的多路连接,无需进行多次双向连接,产生双向连接的中间连接结果,因此,可降低连接查询时间,提高连接查询效率。接查询效率。接查询效率。

【技术实现步骤摘要】
数据处理方法、设备、程序产品及存储介质


[0001]本申请涉及数据处理
,尤其涉及一种数据处理方法、设备、程序产品及存储介质。

技术介绍

[0002]在现今的信息化时代,对信息数据的应用与研究已成为一种趋势,数据库基于其优势,被广泛应用于数据的存储、管理、维护和查询。
[0003]数据库是一个按数据结构来存储和管理数据的计算机软件系统,经常需要为不同用户提供不同维度的数据。连接查询是关系数据库中最主要的查询方式,可通过连接运算符可以实现多个表查询。现有的查询引擎提供的连接运算仅支持双向连接,连接查询过程中产生大量的中间连接结果,极大地影响了查询速度。

技术实现思路

[0004]本申请的多个方面提供一种数据处理方法、设备、程序产品及存储介质,用以提高连接查询效率。
[0005]本申请实施例提供一种数据处理方法,包括:获取查询请求对应的执行计划;根据所述执行计划,确定待查询的多张数据表;根据所述多张数据表之间的主外键关系,生成所述多张数据表的索引;根据所述多张数据表之间的主外键关系,利用所述多张数据表的索引对所述多张数据表进行连接,以得到连接结果;按照所述执行计划访问连接结果,以得到所述查询请求对应的查询结果。
[0006]本申请实施例还提供一种计算机设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行数据处理方法中的步骤。
[0007]本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行数据处理方法中的步骤。
[0008]本申请实施例还提供一种计算机程序产品,包括:计算机程序;所述计算机程序被处理器执行可实现数据处理方法中的步骤。
[0009]在本申请实施例中,针对待查询的多张数据表,可根据多张数据表之间的主外键关系,生成多张数据表的索引;之后,可根据多张数据表之间的主外键关系,利用多张数据表的索引对多张数据表进行连接,得到连接结果;之后,可根据查询请求查询连接结果,得到查询请求对应的查询结果。其中,根据多张数据表之间的主外键关系,利用多张数据表的索引对多张数据表进行连接,实现了多张数据表的多路连接,无需进行多次双向连接,产生
Tree,AST),并在该过程中对查询请求的语句进行错误检测,确保输入的请求语句没有语法和词法错误。例如,检测是否存在关键词拼写错误、是否有多余的标点符号、整个语句是否合法等等。
[0022]进一步,可对上述抽象语法树的节点依次进行检查,并把相关表的元数据,属性的元数据附在语法树上,最后生成含有语义的语法树(bound AST)。进一步,可根据含有语义的语法树获取查询请求的访问需求内容。
[0023]进一步,可根据访问需求内容,生成执行计划。可选地,优化器可根据语义语法树,生成逻辑执行树(logical operator tree,LOT)。可选地,可将语义语法树节点对应到操作符节点,得到逻辑执行树。逻辑执行树上的每个节点,称为逻辑操作符(logical operator)。进一步,可扩展出每个逻辑操作符对应的物理操作符(physical operator),得到物理执行树。进一步,可从物理执行树中选择出代价最小的物理执行树,作为执行计划。其中,代价最小可以为路径最短、内存消耗最小、计算量最小或者计算时间最短等等。
[0024]由于执行计划可反映待访问或待查询的数据表,基于此,在步骤102中,可根据执行计划,确定待查询的多张数据表。多张是指2张或2张以上。优选地,多张为至少3张。图2a和图2b以待查询的多张数据表为3张为例进行图示,但不构成限定。其中,图2a和图2b中3张数据表的表名分别为:“Lineitem”、“Orders”和“Customer”。
[0025]对于多张数据表来说,可对多张数据表进行连接查询,以提高查询效率。但是,现有针对多张数据表的连接查询为双向连接查询。对于3张或3张以上的数据表来说,需要将多路连接分解为多个双向连接,并维护双向连接的中间连接结果。一方面多个双向连接过程耗时较长,导致连接查询效率较低;另一方面,大量的中间连接结果占用大量内存空间。例如,针对待查询的数据表为A、B、C和D,在现有连接查询过程中,需要数据表A和B连接,形成一张数据表AB;再用AB和C连接得到数据表ABC;最后数据表ABC和D连接得到ABCD,该过程产生中间连接结果AB和ABC,占用内存空间;而且多次双向连接过程耗时较长,导致连接查询效率较低。
[0026]为了提高连接查询效率,在步骤103中,可根据多张数据表之间的主外键关系,生成多张数据表的索引。数据表的索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,可提供指向存储在表的指定列中的数据值的指针。
[0027]主键(Primary key),唯一标识一个实体,是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空唯一。外键(Foreign),可表示表与表之间联系,用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的值,可以为空也可不为空。例如,图2a中,数据表“Customer”的主键为“C_CUSTKEY”;数据表“Orders”的主键和外键分别为“O_ORDERKEY”和“O_ CUSTKEY”;数据表“Lineitem”的主键和外键均为“L_ORDERKEY”。其中,数据表之间的主外键关系可反映数据表之间的连接顺序。连接的条件为A表的主键 = B表的外键。
[0028]可选地,针对任一数据表A,可根据多张数据表之间的主外键关系,确定该数据表A的外键;并根据数据表A的外键的属性值,生成数据表A的索引。例如,如图2a所示,“Orders”的外键为“O_ CUSTKEY”,等于数据表“Customer”的主键为“C_CUSTKEY”,因此,可确定数据表“Orders”的外键为“O_ CUSTKEY”,进一步,可根据数据表“Orders”的外键为“O_ CUSTKEY”的属性值,生成数据表“Orders”的索引。
[0029]在一些实施例中,可将数据表的外键的属性值作为数据表的索引。在另一些实施例中,可对数据表A的外键的属性值进行哈希处理;并确定数据表A的外键的属性值的哈希处理结果,为数据表A的索引。例如,图2b所示,数据表“Orders”的索引为“O_ CUSTKEY”对应的哈希处理结果“1、2、3”;数据表“Lineitem”的索引为“L_ORDERKEY”的属性值的哈希处理结果“1、2、3”。
[0030]由于多张数据表的索引是根据多张数据表之间的主外键关系生成的,每个数据表的索引可反映该数据表与上级数据表之间的连接关系,因此,在步骤104中,可根据多张数据表之间的主外键关系,利用多张数据表的索引对多张数据表进行连接,以得到连接结果。
[0031]其中,多张数据表之间的主外键关系可反映数据表之间的连接顺序,利用多张数据表的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取查询请求对应的执行计划;根据所述执行计划,确定待查询的多张数据表;根据所述多张数据表之间的主外键关系,生成所述多张数据表的索引;根据所述多张数据表之间的主外键关系,利用所述多张数据表的索引对所述多张数据表进行连接,以得到连接结果;按照所述执行计划访问连接结果,以得到所述查询请求对应的查询结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述多张数据表之间的主外键关系,生成所述多张数据表的索引,包括:针对任一数据表,根据所述多张数据表之间的主外键关系,确定所述任一数据表的外键;根据所述任一数据表的外键的属性值,生成所述任一数据表的索引。3.根据权利要求2所述的方法,其特征在于,所述根据所述任一数据表的外键的属性值,生成所述任一数据表的索引,包括:对所述任一数据表的外键的属性值进行哈希处理;确定对所述任一数据表的外键的属性值的哈希处理结果,作为所述任一数据表的索引。4.根据权利要求1所述的方法,其特征在于,所述根据所述多张数据表之间的主外键关系,利用所述多张数据表的索引对所述多张数据表进行连接,以得到连接结果,包括:在所述多张数据表存在数据更新的情况下,根据所述多张数据表之间的主外键关系,确定所述多张数据表的连接顺序;根据所述多张数据表的连接顺序,依次利用所述多张数据表的索引对所述多张数据表进行连接,以确定所述多张数据表中更新记录的关联记录,作为所述连接结果。5.根据权利要求4所述的方法,其特征在于,所述根据所述多张数据表的连接顺序,依次利用所述多张数据表的索引对所述多张数据表进行连接,以确定所述多张数据表中更新记录的关联记录,包括:针对当前连接的数据表,确定所述当前连接的数据表的上级数据表中所述更新记录的关联记录;根据所述上级数据表中所述更新记录的关联记录,从所述当前连接的数据表的索引中,确定与所述上级数据表中所述更新记录的关联记录对应的目标索引;利用所述目标索引对所述当前连接的数据表进行连接,以确定所述当前连接的数据表中更新记...

【专利技术属性】
技术研发人员:吴斌董宇李飞飞吉剑南易珂王琦琛董威
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1