本发明专利技术提供了系统和方法实施例以用于通过选择用于处理查询计划的一个或多个固定表来改进在大规模并行处理(MPP)数据库系统中的查询处理的性能。在一个实施例方法中,在协调器进程处接收与所述MPP数据库系统的多个表相关联的连接查询。随后根据所述连接查询中的表分区关键字从所述表中选择固定表。指示所述固定表并且将所述连接查询发送到与所述协调器进程通信的多个数据节点。在所述数据节点中的每一者处,生成用于所述连接查询的执行计划。所述数据节点中的每一者随后执行所述执行计划,以在不共享所述数据节点之间的所述固定表的信息的情况下获得查询结果。
【技术实现步骤摘要】
【国外来华专利技术】【专利说明】用于使用固定表在无共享关系型数据库集群中进行分布式SQL连接处理的系统和方法相关申请案交叉申请本专利技术要求2013年3月13日递交的专利技术名称为“用于使用固定表在无共享关系型数据库集群中进行分布式SQL连接处理的系统和方法”的第13/802,084号美国专利申请案的在先申请优先权,该在先申请的内容如同全文复制一样以引入的方式并入本文本中。
本专利技术涉及数据库处理以及计算,并且在特定实施例中,涉及用于使用固定表在无共享关系型数据库集群中进行分布式SQL连接处理的系统和方法。
技术介绍
大规模并行处理(MPP)数据库系统允许数据库管理员创建数据库并且将其数据分布到多个处理器,所述处理器被称为分区或数据节点。MPP的概念是通过多个处理器协调处理程序,其中每个处理器作用于所述程序的不同部分。处理器彼此通信来完成任务,其中所述处理器中的每一者使用其自身的操作系统以及存储器资源。通常存在为MPP数据库系统的客户端服务的至少一个进程,所述进程被称为协调器。针对此数据库发出的结构化查询语言(SQL)连接查询通过协调器来处理,所述协调器选择数据表以实现连接查询并且将此信息发送到每个数据节点以用于执行。
技术实现思路
根据的一个实施例,用于在大规模并行处理(MPP)数据库系统中的查询处理的方法包括在协调器进程处接收与MPP数据库系统的多个表相关联的连接查询、从所述表中选择固定表,以及在与所述协调器进程通信的多个数据节点中的每一者处执行执行计划以在不在数据节点之间传递固定表的信息的情况下获得查询结果。根据另一实施例,用于在MPP数据库系统中的查询处理的方法包括在协调器进程处接收与MPP数据库系统的多个表相关联的连接查询、根据连接查询中的表分区关键字从所述表中选择固定表,以及指示固定表并且将连接查询发送到与协调器进程通信的多个数据节点。所述方法进一步包括在所述数据节点中的每一者处生成用于连接查询的执行计划,以及在所述数据节点中的每一者处执行所述执行计划以在不在数据节点之间共享固定表的信息的情况下获得查询结果。根据又另一实施例,用于在MPP数据库系统中的查询处理的设备包括用于在MPP数据库系统的数据表的分区上处理连接查询的多个数据节点、处理器,以及存储用于通过处理器执行的程序代码的计算机可读存储介质。程序代码包括用以进行以下操作的指令:在与数据节点通信的协调器进程处接收与表相关联的连接查询、从所述表中选择固定表、指示固定表并且将连接查询发送到数据节点,以及合并来自数据节点的多个查询结果。【附图说明】为了更完整地理解本专利技术及其优点,现在参考下文结合附图进行的描述,其中:图1图示了典型的MPP数据库系统;图2是典型的MPP数据库系统的查询执行流程;图3图示了具有一个固定表的MPP数据库系统的一个实施例;图4图示了具有多个固定表的MPP数据库系统的一个实施例;图5是具有至少一个固定表的MPP数据库系统的查询执行流程的一个实施例;图6是可以用于实施各种实施例的处理系统。【具体实施方式】下文将详细论述当前优选实施例的制作和使用。然而,应了解,本专利技术提供可在各种具体上下文中体现的许多适用的专利技术性概念。所论述的具体实施例仅仅说明用以实施和使用本专利技术的具体方式,而不限制本专利技术的范围。MPP数据库系统是基于无共享架构的,其中所述表划分成分区并且分布到不同处理节点。以独占方式将每个分区分配给一个处理节点,其中在所述节点处的分区当中不存在数据共享。处理节点在本文中也被称为数据节点。每个节点中的处理实体管理并且处理其数据部分。然而,在执行期间,这些处理实体可以与彼此通信以交换必要信息。对于每个客户端连接,系统创建对用户事务管理以及查询处理负责的代理进程或线程。此代理进程或线程称为协调器,所述协调器可能或可能不驻留在数据节点中的一者上。当查询到达协调器时,协调器调用查询编译程序以生成语义树。随后调用查询计划器以生成用于所述树的优化执行计划。所述执行计划将用于处理查询的任务组织到处理单元(数据节点)上。来自数据节点的结果被返回并在协调器处集合,并且随后被发送给用户。图1示出了用于处理SQL连接查询的典型的MPP数据库系统100。在MPP数据库系统100中,客户端应用程序通过协调器110连接到数据库上,所述协调器是代理进程或应用程序(例如,程序)。协调器110连接到系统中的多个数据节点120上。每个数据节点120可以独占方式访问数据库中的数据表122的分区。协调器110在数据节点120处使用并行处理来为客户端处理SQL连接查询112,并且将集合的结果从数据节点120返回到客户端。每个数据节点120在数据表122的没有共有分区数据的不同独占分区上处理用于查询112的计划114,所述查询发送自协调器110。然而,数据节点120仍可以在彼此之间交换表数据(例如,行)以完成连接查询处理的其对应的部分。图2示出了 MPP数据库系统100的查询执行流程200。在步骤210处,协调器110从客户端接收查询。例如,协调器110接收SQL查询:“从客户、单项产品、订单中选择*,其中 lineitem.l_orderkey = orders.0_orderkey AND customer.c_custkey = orders.0_custkey”。在步骤220处,协调器110编译查询以生成查询执行计划,并且将所述查询计划发送到数据节点120。在步骤230处,每个数据节点120实例化查询计划段、在需要时与其它节点交换数据,以及通过对与查询相关联的多个数据表(例如,单项产品、订单,以及客户)进行操作来计算查询的结果。每个数据节点120随后将结果返回到协调器110。在步骤240处,协调器110聚集来自数据节点120的结果并且合并所述结果。在步骤250处,协调器110将查询结果返回到客户端。在MPP数据库系统100以及查询执行流程200中,在数据节点120之间转发来自所需用于处理连接查询的所有表(例如,表单项产品、客户,以及订单)的数据(例如,行)。表分区分布在数据节点当中,但在其它分区中所需的其它数据也是通过不同的数据节点可访问的(例如,经由数据传送)而没有限制。这可能导致用于数据传送以及处理的资源的大量过载,所述大量过载可能降低性能(例如,在处理速度上)。本专利技术提供了系统和方法实施例以用于改进MPP数据库系统中的查询处理的性能。所述实施例包括选择用于处理查询计划的一个或多个固定表。不同于典型的MPP数据库系统,固定表的分配给对应的数据节点的分区是固定的并且不在不同数据节点之间混洗。数据节点以独占方式访问固定数据表的对应的分区。这意味着在不同数据节点之间不允许对固定表的分区(或固定表中的行)的转发。在需要时,其余的表(非静态表)可以常规方式在数据节点之间(来回)混洗。通过协调器选择一个或多个固定表的集合并且将其指示给数据节点。例如,在没有执行计划的情况下,也将连接查询从协调器推送到数据节点。每个数据节点随后生成具有固定表信息的查询执行计划并且相应地执行查询。此方案允许每个数据节点并行执行连接查询计划并且在较少数据混洗的情况下更快地完成任务。因此,可以改进连接查询处理的总体性能以及因此改进系统吞吐量。基于查询中的分区关键字,可以(通过协调器)选择一个或多个固定本文档来自技高网...
【技术保护点】
一种用于在大规模并行处理(MPP)数据库系统中的查询处理的方法,所述方法包括:在运行在所述MPP上的协调器进程处接收与所述MPP数据库系统的多个表相关联的连接查询;从所述多个表中为多个处理节点指定MPP固定表,所述固定表经处理以用于在所述处理节点之间不传递信息的情况下处理所述连接查询;以及在所述处理节点中的每一者处执行执行计划以在不在所述处理节点之间传递所述固定表的信息的情况下获得查询结果。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:莫罕·森格姆什提,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。