CN104885078B - 用于大规模并行处理数据库集群中的两阶段查询优化的方法 - Google Patents

用于大规模并行处理数据库集群中的两阶段查询优化的方法 Download PDF

Info

Publication number
CN104885078B
CN104885078B CN201380067322.1A CN201380067322A CN104885078B CN 104885078 B CN104885078 B CN 104885078B CN 201380067322 A CN201380067322 A CN 201380067322A CN 104885078 B CN104885078 B CN 104885078B
Authority
CN
China
Prior art keywords
mpp
plan
back end
locally
executive plan
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.)
Active
Application number
CN201380067322.1A
Other languages
English (en)
Other versions
CN104885078A (zh
Inventor
孙扬
周庆庆
莫罕·森格姆什提
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104885078A publication Critical patent/CN104885078A/zh
Application granted granted Critical
Publication of CN104885078B publication Critical patent/CN104885078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations

Abstract

在大规模并行处理(MPP)数据库中通过本地优化全局执行计划可以更加有效地处理查询。MPP协调器可以向MPP数据节点提供全局执行计划和语义树。随后MPP数据节点可使用全局执行计划和语义树生成本地执行计划。之后,MPP数据节点可根据成本评估选择全局执行计划或本地执行计划。

Description

用于大规模并行处理数据库集群中的两阶段查询优化的方法
技术领域
本发明涉及通信网络,以及在具体实施例中,涉及用于大规模并行处理数据库集群中的两阶段查询优化的方法。
背景技术
大规模并行处理(MPP)是多个处理器处理同一程序的不同部分时该程序的协调过程。处理器互相通信以完成任务,但各处理器运用自身的操作系统和内存资源。MPP数据库系统基于无共享架构,在该架构中,数据库被划分为段并分发给多个处理器(数据节点)用于并行处理。由于每个数据节点仅并行存储一部分MPP数据库,因此与顺序处理系统中可能的数据库操作相比,该系统中的数据库操作(例如,搜索、扫描等)可以更快地执行。
客户端通过与MPP协调器交互来访问MPP数据库中的信息,MPP协调器为用于接收和响应查询的进程。具体而言,对于每个发出的查询,MPP协调器查阅全局目录以开发一种单条查询计划(本文中称为“全局执行计划(global execution plan)”),该计划随后被分发给各个MPP数据节点用于本地执行。需注意的是,MPP协调器的资源和数据分布的全局视图可能缺少对MPP数据节点的本地配置信息和/或统计的了解,但取而代之,可尤其对本地数据分布和/或资源可用性作出广义的假设。例如,MPP协调器可假设数据在多个MPP数据节点中均匀分布和/或不限制MPP数据节点的资源(例如,处理或其它)。因此,MPP协调器的全局执行计划对于一个或多个本地MPP数据节点而言是次佳的,这可能会导致全局执行计划的低效执行。因此,需要用于提高MPP数据库系统中的查询优化的机制。
发明内容
本发明的实施例提供了一种大规模并行处理数据库集群中用于两阶段查询优化的方法,通过这些实施例一般能获得技术优势。
根据实施例,提供了一种用于在大规模并行处理(MPP)数据库中处理查询的方法。在该示例中,所述方法包括MPP数据节点从MPP协调器接收全局执行计划和语义树;所述MPP数据节点根据所述语义树生成本地执行计划;以及所述MPP数据节点选择执行所述全局执行计划或所述本地执行计划。还提供了一种用于执行所述方法的装置。
根据另一实施例,提供了一种大规模并行处理(MPP)数据库系统。在该示例中,所述系统包括一个或多个MPP协调器,用于从客户端接收查询;生成语义树;根据所述语义树开发用于执行所述查询的全局执行计划;以及将所述全局执行计划分发给多个MPP数据节点。所述系统还包括MPP数据节点,用于从所述一个或多个MPP协调器接收所述全局执行计划和所述语义树;根据所述第一MPP数据节点的本地配置信息使用所述语义树优化所述全局执行计划来获取优化后的执行计划;以及执行所述优化后的执行计划。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了实施例MPP数据库系统的图解;
图2示出了描绘如何将常规数据库划分为MPP数据库的图解;
图3示出了用于响应查询的常规MPP数据库架构的图解;
图4示出了用于响应查询的实施例MPP数据库架构的图解;
图5示出了优化全局执行计划的方法的流程图;
图6示出了用于全局执行计划的查询流的图解;
图7(a)和7(b)示出了用于本地优化后的全局执行计划的查询流的图解;
图8示出了一种包括本地优化的额外阶段的处理查询的方法的流程图;
图9示出了MPP协调器的查询处理模块的方框图;
图10示出了MPP数据节点的本地优化器模块的图解;
图11示出了MPP数据节点处本地优化全局执行计划过程的流程图;以及
图12示出了MPP数据节点的高级方框图。
除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
具体实施方式
下文将详细论述对本发明实施例的实施和使用。应了解,本文所揭示的概念可以在多种具体环境中实施,且所论述的具体实施例仅作为说明而不限制权利要求书的范围。
本发明的各方面使得MPP数据节点能够根据自身的配置信息本地优化全局执行计划。具体而言,MPP数据节点将根据MPP协调器提供的语义树生成本地执行计划。可根据MPP数据节点的本地配置信息(例如,资源可用性、本地存储的数据的数目和值/对象分布等)定制本地执行计划,一般来说,这些信息不可用于MPP协调器。当生成本地执行计划时,可使用与全局执行计划关联的约束强化从语义树获取的子树以确保本地执行计划的每个段都满足这些约束。
图1示出了处理客户端101的查询的MPP数据库系统100。如图所示,MPP数据库系统100包括耦合到多个数据节点110至140的协调器105。协调器105可以是任何用于代表客户端101执行查询的设备。执行此类查询可包含开发全局执行计划,所述全局执行计划包括一个或多个概述数据节点110至140的处理流的本地计划段。数据节点110至140可以是任意能够访问(例如,独占访问)MPP数据库系统100的分区的部件。数据节点110至140可用于优化全局执行计划和/或该全局执行计划对应段,并且随后执行对应计划段以得到查询结果。
图2示出了如何将数据库200划分为MPP数据库250的示例。如图所示,数据库200包括第一表(t1)210、第二表(t2)220和第三表(t3)230。表210至230的大小可能不同,并且可包括不同的列数。由于表210至230使用额外数据填满,因此数据库200变得过大以致于单个处理器无法有效处理。因此,将数据库200划分为MPP数据库250是有益的。如图所示,MPP数据库250包括多个分区251至253,每个分区存储一部分从数据库200获取的数据。虽然图2所示为包括各个表210至230的对应部分的各个分区251至253,但其它实施例MPP架构可以不同方式分发数据。例如,t1 210可存储在分区251至253中的单个分区中,或者可分发到分区251至253的两个分区。无论如何,很有可能数据以非均匀或非一致方式在分区251至253之间分发。
常规查询执行流包括协调器从客户端接收查询,编译该查询,生成全局执行计划,以及将该全局执行计划发送到各个数据节点。之后,各个数据节点可实例化全局执行计划的一个或多个段,(如若需要)互相交换数据,以及计算该查询的结果并将结果返回给协调器。协调器收集来自数据节点的结果,作出最终处理以及向客户端返回查询响应。
图3示出了用于响应来自客户端301的查询的常规MPP架构300的图解。MPP架构300包括MPP协调器305和数据节点310(出于清楚和简洁的目的省略其它数据节点)。MPP协调器305包括用于处理查询的解析和语义模块306、用于生成全局执行计划的全局执行计划生成器307以及用于收集/汇总结果并组合查询响应的执行器308。解析和语义模块306可接收来自客户端301的查询并开发语义树。语义树可以是响应查询的概要,并且可形成建立全局执行计划的基础。随后将语义树发送到全局执行计划生成器307,全局执行计划生成器307根据数据分布和资源的全局视图生成全局执行计划。具体而言,如果数据在数据节点中均匀分布和/或数据节点具有无限制的资源,那么可生成全局执行计划。随后可将全局执行计划发送到MPP架构300中的执行器308、数据节点310和其它数据节点。
数据节点310可包括计划执行模块312,用于执行从MPP协调器305接收的全局执行计划。执行全局执行计划包括多个数据库进程,例如搜索/扫描数据库、汇总结果、连接结果、与MPP数据库的其它数据节点交互以传送和/或收集结果等。生成结果之后,数据节点310可将该结果(直接或间接地)传送到MPP协调器305。例如,可将该结果直接转发到MPP协调器305,或可在该结果最终转发到MPP协调器305之前将该结果间接传送到另一数据节点用于进一步处理(例如,和来自其它数据节点的结果汇总等)。一旦接收到来自MPP数据库中的各个数据节点的结果,执行器308可汇总结果以获取查询响应。随后可将查询响应返回至客户端301。
图4示出了用于响应来自客户端401的查询的实施例MPP架构400的图解。实施例MPP架构400包括MPP协调器405、数据节点410和其它数据节点(出于清楚和简洁的目的省略)。MPP协调器405的配置在某些方面与MPP协调器305类似,除了MPP协调器405用于将语义树和全局执行计划发送到数据节点410。数据节点410与数据节点310有很大差异,数据节点410包括本地优化模块411,用于面向数据节点410的本地配置信息优化执行计划。具体而言,可根据语义树开发本地执行计划(或本地执行计划段),并且随后可根据成本评估选择更为高效的全局和本地执行计划或计划段。例如,如果本地计划段的成本低于对应全局计划段的成本时,那么可选择执行本地计划段。
在实施例中,本地优化模块411可使用全局执行计划定义的约束来强化语义树(或由此衍生的子树),从而确保满足这些约束。本地优化模块411随后可将所选执行计划发送到执行该计划的计划执行模块412。计划执行模块412可随后将结果(直接或间接地)传送到执行器408用于将结果处理为查询响应。
图5示出了一种用于操作数据节点的方法500。方法500开始于步骤510,在步骤510处,接收来自MPP协调器的全局执行计划和语义树。随后,方法500前进到步骤520,在步骤520处,从语义树中识别出子树。接着,方法500前进到步骤530,在步骤530处,使用全局执行计划的约束强化子树。随后,方法500前进到步骤540,在步骤540处,根据强化的子树生成本地执行计划。之后,方法500前进到步骤550,在步骤550处,基于成本标准选择全局执行计划或本地执行计划。接着,方法500前进到步骤560,在步骤560处,执行所选执行计划以获取结果,并且将该结果(直接或间接地)传送到MPP协调器。
图6示出了用于响应查询的全局执行计划的查询流600。MPP数据库包括在数据节点1和2之间划分的客户表,以及在数据节点1、2和3之间划分的行项目表和订单表。MPP协调器执行第一段;数据节点1和2执行第二段;以及数据节点1、2和3执行第三段。订单和行项目之间的连接结果与第二段中的客户表连接之前根据customerId重新划分。这通过耦合第三段中的高级TRANSFER运算符和第二段中的GATHER运算符来完成。需注意的是,在查询流600中,节点1和2的第二段的执行计划相同,而节点1、2和3的第三段的执行计划相同。
图7示出了用于响应查询的本地优化后的全局执行计划的查询流700。如图所示,作为本地优化的结果,各个数据节点上执行的计划段彼此不同。例如,当节点1上的第二段与原始计划相同时(如图6所示),尽管连接方法相同,但节点2上的第二段的哈希连接(hashjoin)的参数顺序与原始计划的不同。这可通过例如以下方式触发:假设在其它因素均相同的情况下,节点3上的客户表中符合条件的行数目明显低于原始估计的数目。对于第三段而言,节点1上的计划和原始计划相同;节点2上的计划使用哈希连接的不同参数顺序;以及节点3上的计划使用完全不同的连接方法。
图8示出了一种包括本地优化的额外阶段的处理查询的方法。如图所示,在每个数据节点处接收查询计划;之后,每个数据节点分析适用于自身的各个计划段以查看其是否可以重新优化。如果可以,那么选择、实例化以及执行用于该段的全新最佳计划以计算该段的查询结果。结果将作为下一段的输入发送。
图9示出了MPP协调器900。MPP协调器900的主要工作是计划计算查询结果的操作的执行策略。执行策略包括表访问路径、索引选择、连接方法和顺序、结果分组和排序以及执行子查询等等。在分布式MPP数据库中,MPP优化器还考虑分区的位置,这样可以最大限度地减少数据节点间的数据移动的方式执行某些操作。计划过程可通过动态编程来实现,并且可源自语义树的叶子(例如,表访问)。通过这些叶子,生成并保存每个操作(和操作的替代方式)。评估每个级别操作直至语义树的顶端。每当将要组合或连接两个数据流时,分区计划开始。基于已定义成本模型为所有的替代方式提供成本,并且选择具有最小成本的计划。
图10示出了本地优化器架构1000,数据节点包括该架构以实现全局计划的本地优化。本地优化器可以是原始优化器的简化版本。需注意的是,本地优化器架构1000不包含分区计划器,因为已将与输入子树中对应的语义操作本地化。在一些实施例中,总是将与输入子树中对应的操作本地化。此外,本地优化器架构1000还考虑本地分区的数据统计以及本地资源可用性,这可由包含本地优化器架构1000的数据节点的本地配置信息指定。
图11示出了本地优化全局执行计划的一个或多个段的过程流1100,该操作可能由数据节点执行。数据节点接收全局执行计划之后执行逻辑流以生成替代性本地执行计划,该替代性本地执行计划保持全局执行计划的语义约束。可根据不同分区架构执行各种段。对于每个适用段,对应数据节点识别子树并强化(修改)子树以反映全局执行计划的约束。强化可以是保持整体(全局)计划正确性的重要步骤,因为计划段的输出可对应于另一计划段的输入。出于计划目的,这些来自其它段的输入将转换为具有原始全局计划中计算的基数的本地临时表,这样所有的连接和其它操作都被子树被视为本地的。约束可包括(但不限于)结果集的顺序、结果集的独特性、行数必须包含在结果集中等等。之后,(MPP数据节点中的)本地优化器为子树选择最佳计划。本地优化器为原始优化器的简化版本,因为本地优化器不必处理分区计划以及远程操作。使用本地优化器选择的最佳计划替换原始计划段,并且使用新计划段继续执行查询。
图12示出了MPP数据节点1200的实施例的方框图。MPP数据节点1200包括可(或可不)按图12所示进行排列的处理器1204、存储器1206和多个接口1210至1204。处理器1204可以是能够执行计算和/或其它有关处理的任务的任意部件,并且存储器1206可以是能够为处理器1204存储程序和/或指令的任意部件。接口1210至1214可以是允许MPP数据节点1200与其它设备(例如,相邻MPP数据节点、MPP协调器等)进行通信的任意部件或部件集合。
本发明的各方面允许在每个数据节点处根据本地配置信息对全局执行计划的段进行本地优化。这允许每个数据节点(在语义约束内)自定义执行计划以更快地处理数据库查询。
尽管进行了详细的描述,但应理解,可在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,对本文做出各种改变、替代和更改。此外,本发明的范围不希望限于本文中所描述的特定实施例,所属领域的一般技术人员将从本发明中容易了解到,过程、机器、制造工艺、物质成分、构件、方法或步骤(包括目前存在的或以后将开发的)可执行与本文所述对应实施例大致相同的功能或实现与本文所述对应实施例大致相同的效果。因此,所附权利要求书既定在其范围内包括此类过程、机器、制造工艺、物质成分、构件、方法或步骤。

Claims (18)

1.一种用于处理大规模并行处理MPP数据库中的查询的方法,其特征在于,所述方法包括:
MPP数据节点从MPP协调器接收全局执行计划和语义树;
所述MPP数据节点根据所述语义树生成本地执行计划;以及
所述MPP数据节点选择执行所述全局执行计划或所述本地执行计划;
其中,所述根据所述语义树生成本地执行计划包括:
识别所述语义树的子树;
根据所述全局执行计划执行的约束集强化所述子树;以及
根据所述强化的子树生成所述本地执行计划。
2.根据权利要求1所述的方法,其特征在于,所述全局执行计划和所述语义树是客户作出查询以后生成的。
3.根据权利要求1所述的方法,其特征在于,所述MPP数据节点选择执行所述全局执行计划或所述本地执行计划包括:
根据已定义的成本模型为每个所述本地执行计划和所述全局执行计划确定成本;
当所述本地执行计划的成本低于所述全局执行计划的成本时,选择所述本地执行计划;以及
当所述本地执行计划的成本等于或大于所述全局执行计划的成本时,选择所述全局执行计划。
4.根据权利要求3所述的方法,其特征在于,所述已定义的成本模型表示所述MPP数据节点的本地配置信息,其中当生成所述全局执行计划时,所述MPP数据节点的本地配置信息不可用于所述MPP协调器。
5.根据权利要求4所述的方法,其特征在于,如果数据在所述MPP数据库中的多个MPP数据节点间均匀分布,那么所述MPP协调器生成所述全局执行计划。
6.根据权利要求1所述的方法,其特征在于,生成所述本地执行计划包括:
根据所述MPP数据节点的本地配置信息生成所述本地执行计划,其中当所述MPP协调器生成所述全局执行计划时,所述本地配置信息不可用于所述MPP协调器。
7.根据权利要求6所述的方法,其特征在于,所述本地配置信息指定所述MPP数据节点的资源约束。
8.根据权利要求6所述的方法,其特征在于,所述本地配置信息指定所述MPP数据节点存储的数据量,其中数据非均匀地在所述MPP数据库中分布,这样所述MPP数据节点存储的数据量与所述MPP数据库中的其它MPP数据节点存储的数据量不同。
9.根据权利要求1所述的方法,其特征在于,所述全局执行计划执行的所述约束集包括以下项中的至少一项:结果集的顺序、结果集的独特性、所述结果集中包含的行数。
10.一种MPP数据库中的大规模并行处理MPP数据节点,其特征在于,所述MPP数据节点包括:
处理器;以及
计算机可读存储介质,所述计算机可读存储介质存储由所述处理器执行的程序,所述程序包括用于进行如下操作的指令:
从MPP协调器接收全局执行计划和语义树;
根据所述语义树生成本地执行计划;以及
所述MPP数据节点选择执行所述全局执行计划或所述本地执行计划;
其中,所述根据所述语义树生成本地执行计划包括:
识别所述语义树的子树;
根据所述全局执行计划执行的约束集强化所述子树;以及
根据所述强化的子树生成所述本地执行计划。
11.根据权利要求10所述的MPP数据节点,其特征在于,用于所述MPP数据节点选择执行所述全局执行计划或所述本地执行计划的指令包括用于进行如下操作的指令:
根据已定义的成本模型为每个所述本地执行计划和所述全局执行计划确定成本;
当所述本地执行计划的成本低于所述全局执行计划的成本时,选择所述本地执行计划;以及
当所述本地执行计划的成本等于或大于所述全局执行计划的成本时,选择所述全局执行计划。
12.根据权利要求11所述的MPP数据节点,其特征在于,所述已定义的成本模型表示所述MPP数据节点的本地配置信息,其中当所述MPP协调器生成所述全局执行计划时,所述本地配置信息不可用于所述MPP协调器。
13.根据权利要求12所述的MPP数据节点,其特征在于,如果数据在所述MPP数据库中的多个MPP数据节点间均匀分布,那么所述MPP协调器生成所述全局执行计划。
14.根据权利要求10所述的MPP数据节点,其特征在于,生成所述本地执行计划包括:
根据所述MPP数据节点的本地配置信息生成所述本地执行计划,其中当所述MPP协调器生成所述全局执行计划时,所述本地配置信息不可用于所述MPP协调器。
15.根据权利要求14所述的MPP数据节点,其特征在于,所述本地配置信息指定所述MPP数据节点的资源约束。
16.根据权利要求14所述的MPP数据节点,其特征在于,所述本地配置信息指定所述MPP数据节点存储的数据量,其中数据非均匀地在所述MPP数据库中分布,这样所述MPP数据节点存储的数据量与所述MPP数据库中的其它MPP数据节点存储的数据量不同。
17.一种大规模并行处理MPP数据库系统,其特征在于,包括:
一个或多个MPP协调器,用于:从客户端接收查询;生成语义树;根据所述语义树开发执行所述查询的全局执行计划;以及将所述全局执行计划分发到多个MPP数据节点;其中,所述根据所述语义树生成本地执行计划包括:识别所述语义树的子树;根据所述全局执行计划执行的约束集强化所述子树;以及根据所述强化的子树生成所述本地执行计划;以及
所述多个MPP数据节点的第一MPP数据节点,用于:从所述一个或多个MPP协调器接收所述全局执行计划和所述语义树;根据所述第一MPP数据节点的本地配置信息使用所述语义树优化所述全局执行计划来获取优化后的执行计划;以及执行所述优化后的执行计划。
18.根据权利要求17所述的MPP数据库系统,其特征在于,在开发所述全局执行计划期间,所述本地配置信息不可用于一个或多个MPP协调器。
CN201380067322.1A 2012-12-29 2013-12-28 用于大规模并行处理数据库集群中的两阶段查询优化的方法 Active CN104885078B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/730,872 US9311354B2 (en) 2012-12-29 2012-12-29 Method for two-stage query optimization in massively parallel processing database clusters
US13/730,872 2012-12-29
PCT/CN2013/090788 WO2014101845A1 (en) 2012-12-29 2013-12-28 Method for two-stage query optimization in massively parallel processing database clusters

Publications (2)

Publication Number Publication Date
CN104885078A CN104885078A (zh) 2015-09-02
CN104885078B true CN104885078B (zh) 2018-06-15

Family

ID=51018392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380067322.1A Active CN104885078B (zh) 2012-12-29 2013-12-28 用于大规模并行处理数据库集群中的两阶段查询优化的方法

Country Status (3)

Country Link
US (1) US9311354B2 (zh)
CN (1) CN104885078B (zh)
WO (1) WO2014101845A1 (zh)

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317572B2 (en) 2010-03-31 2016-04-19 Cloudera, Inc. Configuring a system to collect and aggregate datasets
US9082127B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating datasets for analysis
US8874526B2 (en) 2010-03-31 2014-10-28 Cloudera, Inc. Dynamically processing an event using an extensible data model
US9081888B2 (en) 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating log data with fault tolerance
US9128949B2 (en) 2012-01-18 2015-09-08 Cloudera, Inc. Memory allocation buffer for reduction of heap fragmentation
US9172608B2 (en) 2012-02-07 2015-10-27 Cloudera, Inc. Centralized configuration and monitoring of a distributed computing cluster
US9405692B2 (en) 2012-03-21 2016-08-02 Cloudera, Inc. Data processing performance enhancement in a distributed file system
US9338008B1 (en) 2012-04-02 2016-05-10 Cloudera, Inc. System and method for secure release of secret information over a network
US9842126B2 (en) 2012-04-20 2017-12-12 Cloudera, Inc. Automatic repair of corrupt HBases
US9239741B2 (en) * 2012-10-16 2016-01-19 Futurewei Technologies, Inc. System and method for flexible distributed massively parallel processing (MPP)
US9146957B2 (en) 2012-12-20 2015-09-29 Business Objects Software Ltd. Method and system for generating optimal membership-check queries
US9104725B2 (en) * 2012-12-20 2015-08-11 Sap Se Automatic tuning of database queries
US9454548B1 (en) * 2013-02-25 2016-09-27 Emc Corporation Pluggable storage system for distributed file systems
US9342557B2 (en) * 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
CN105164667B (zh) * 2013-06-26 2018-09-28 安提特软件有限责任公司 修改分析流
US9477731B2 (en) 2013-10-01 2016-10-25 Cloudera, Inc. Background format optimization for enhanced SQL-like queries in Hadoop
US9934382B2 (en) 2013-10-28 2018-04-03 Cloudera, Inc. Virtual machine image encryption
US9690671B2 (en) 2013-11-01 2017-06-27 Cloudera, Inc. Manifest-based snapshots in distributed computing environments
US11314808B2 (en) * 2013-12-19 2022-04-26 Micro Focus Llc Hybrid flows containing a continous flow
US9348865B2 (en) * 2014-04-02 2016-05-24 Futurewei Technologies, Inc. System and method for massively parallel processing database
US10049134B2 (en) * 2014-06-12 2018-08-14 International Business Machines Corporation Method and system for processing queries over datasets stored using hierarchical data structures
US10169433B2 (en) 2014-07-29 2019-01-01 Microsoft Technology Licensing, Llc Systems and methods for an SQL-driven distributed operating system
US10437843B2 (en) * 2014-07-29 2019-10-08 Microsoft Technology Licensing, Llc Optimization of database queries via transformations of computation graph
US10176236B2 (en) 2014-07-29 2019-01-08 Microsoft Technology Licensing, Llc Systems and methods for a distributed query execution engine
US9747333B2 (en) 2014-10-08 2017-08-29 Cloudera, Inc. Querying operating system state on multiple machines declaratively
US20160246842A1 (en) * 2015-02-25 2016-08-25 Futurewei Technologies, Inc. Query optimization adaptive to system memory load for parallel database systems
US10585887B2 (en) * 2015-03-30 2020-03-10 Oracle International Corporation Multi-system query execution plan
CN105335479B (zh) * 2015-10-12 2018-11-23 国家计算机网络与信息安全管理中心 一种基于sql的文本数据统计实现方法
US9778973B2 (en) 2015-10-28 2017-10-03 International Business Machines Corporation Early diagnosis of hardware, software or configuration problems in data warehouse system utilizing grouping of queries based on query parameters
CN105550274B (zh) * 2015-12-10 2019-01-25 曙光信息产业(北京)有限公司 双副本并行数据库的查询方法和装置
US20170270165A1 (en) * 2016-03-16 2017-09-21 Futurewei Technologies, Inc. Data streaming broadcasts in massively parallel processing databases
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11126632B2 (en) * 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
CN107870946A (zh) * 2016-09-28 2018-04-03 北京京东尚科信息技术有限公司 实时数据动态连接方法和装置
US20180095996A1 (en) 2016-10-03 2018-04-05 Ocient Llc Database system utilizing forced memory aligned access
WO2018112056A1 (en) 2016-12-14 2018-06-21 Ocient Llc Efficient database management system utilizing silo and manifest
US10868863B1 (en) 2016-12-14 2020-12-15 Ocient Inc. System and method for designating a leader using a consensus protocol within a database management system
US20180173753A1 (en) * 2016-12-16 2018-06-21 Futurewei Technologies, Inc. Database system and method for compiling serial and parallel database query execution plans
WO2018222580A1 (en) 2017-05-30 2018-12-06 Ocient Inc. System and method for optimizing large database management systems
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US11182125B2 (en) 2017-09-07 2021-11-23 Ocient Inc. Computing device sort function
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US10769148B1 (en) 2017-09-25 2020-09-08 Amazon Technologies, Inc. Relocating data sharing operations for query processing
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US11256696B2 (en) 2018-10-15 2022-02-22 Ocient Holdings LLC Data set compression within a database system
US11886436B2 (en) 2018-10-15 2024-01-30 Ocient Inc. Segmenting a partition of a data set based on a data storage coding scheme
US11249916B2 (en) 2018-10-15 2022-02-15 Ocient Holdings LLC Single producer single consumer buffering in database systems
US11709835B2 (en) 2018-10-15 2023-07-25 Ocient Holdings LLC Re-ordered processing of read requests
US11880368B2 (en) * 2018-10-15 2024-01-23 Ocient Holdings LLC Compressing data sets for storage in a database system
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
CN111949454B (zh) * 2019-05-14 2022-09-16 华为技术有限公司 一种基于微服务组件的数据库系统及相关方法
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11093500B2 (en) 2019-10-28 2021-08-17 Ocient Holdings LLC Enforcement of minimum query cost rules required for access to a database system
US11106679B2 (en) 2019-10-30 2021-08-31 Ocient Holdings LLC Enforcement of sets of query rules for access to data supplied by a plurality of data providers
CN110851534B (zh) * 2019-11-15 2022-09-06 上海达梦数据库有限公司 一种数据处理方法、系统及存储介质
US11609911B2 (en) 2019-12-19 2023-03-21 Ocient Holdings LLC Selecting a normalized form for conversion of a query expression
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11853364B2 (en) 2020-01-31 2023-12-26 Ocient Holdings LLC Level-based queries in a database system and methods for use therewith
US11061910B1 (en) 2020-01-31 2021-07-13 Ocient Holdings LLC Servicing concurrent queries via virtual segment recovery
TWI718016B (zh) * 2020-02-27 2021-02-01 國立交通大學 細胞佈建之方法與相關的電腦程式產品
US11599463B2 (en) 2020-03-25 2023-03-07 Ocient Holdings LLC Servicing queries during data ingress
US11238041B2 (en) 2020-03-25 2022-02-01 Ocient Holdings LLC Facilitating query executions via dynamic data block routing
US11580102B2 (en) 2020-04-02 2023-02-14 Ocient Holdings LLC Implementing linear algebra functions via decentralized execution of query operator flows
US11294916B2 (en) 2020-05-20 2022-04-05 Ocient Holdings LLC Facilitating query executions via multiple modes of resultant correctness
US11775529B2 (en) 2020-07-06 2023-10-03 Ocient Holdings LLC Recursive functionality in relational database systems
US11880716B2 (en) 2020-08-05 2024-01-23 Ocient Holdings LLC Parallelized segment generation via key-based subdivision in database systems
US11321288B2 (en) 2020-08-05 2022-05-03 Ocient Holdings LLC Record deduplication in database systems
US11755589B2 (en) 2020-08-05 2023-09-12 Ocient Holdings LLC Delaying segment generation in database systems
US11822532B2 (en) 2020-10-14 2023-11-21 Ocient Holdings LLC Per-segment secondary indexing in database systems
US11507578B2 (en) 2020-10-19 2022-11-22 Ocient Holdings LLC Delaying exceptions in query execution
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
US11675757B2 (en) 2020-10-29 2023-06-13 Ocient Holdings LLC Maintaining row durability data in database systems
US11914624B2 (en) * 2020-12-10 2024-02-27 Coupang Corp. Systems and methods for managing connections in scalable clusters
US11782918B2 (en) * 2020-12-11 2023-10-10 International Business Machines Corporation Selecting access flow path in complex queries
US11297123B1 (en) 2020-12-11 2022-04-05 Ocient Holdings LLC Fault-tolerant data stream processing
US11314743B1 (en) 2020-12-29 2022-04-26 Ocient Holdings LLC Storing records via multiple field-based storage mechanisms
US11645273B2 (en) 2021-05-28 2023-05-09 Ocient Holdings LLC Query execution utilizing probabilistic indexing
US11803544B2 (en) 2021-10-06 2023-10-31 Ocient Holdings LLC Missing data-based indexing in database systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US5943666A (en) * 1997-09-15 1999-08-24 International Business Machines Corporation Method and apparatus for optimizing queries across heterogeneous databases
US7739269B2 (en) * 2007-01-19 2010-06-15 Microsoft Corporation Incremental repair of query plans
CN102521307A (zh) * 2011-12-01 2012-06-27 北京人大金仓信息技术股份有限公司 一种云计算环境下的无共享数据库集群并行查询处理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3181446B2 (ja) * 1993-09-24 2001-07-03 株式会社東芝 情報記憶装置
US6092062A (en) 1997-06-30 2000-07-18 International Business Machines Corporation Relational database query optimization to perform query evaluation plan, pruning based on the partition properties
US6526403B1 (en) * 1999-12-17 2003-02-25 International Business Machines Corporation Method, computer program product, and system for rewriting database queries in a heterogenous environment
US7010521B2 (en) 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
US20050033818A1 (en) * 2003-01-16 2005-02-10 Jardin Cary Anthony System and method for distributed database processing in a clustered environment
US20080120273A1 (en) 2006-11-16 2008-05-22 Bhashyam Ramesh Profile based optimization
US20090198703A1 (en) 2008-01-31 2009-08-06 Hewlett-Packard Development Company, L.P. Intelligent data storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US5943666A (en) * 1997-09-15 1999-08-24 International Business Machines Corporation Method and apparatus for optimizing queries across heterogeneous databases
US7739269B2 (en) * 2007-01-19 2010-06-15 Microsoft Corporation Incremental repair of query plans
CN102521307A (zh) * 2011-12-01 2012-06-27 北京人大金仓信息技术股份有限公司 一种云计算环境下的无共享数据库集群并行查询处理方法

Also Published As

Publication number Publication date
US20140188841A1 (en) 2014-07-03
CN104885078A (zh) 2015-09-02
US9311354B2 (en) 2016-04-12
WO2014101845A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
CN104885078B (zh) 用于大规模并行处理数据库集群中的两阶段查询优化的方法
US10585887B2 (en) Multi-system query execution plan
CN108431810B (zh) 代理数据库
CN103064875B (zh) 一种服务化空间数据分布式查询方法
US7577637B2 (en) Communication optimization for parallel execution of user-defined table functions
US8326825B2 (en) Automated partitioning in parallel database systems
CN105512162B (zh) 一种基于Storm的流数据实时智能化处理框架
US20140114952A1 (en) Optimizing queries of parallel databases
US9576026B2 (en) System and method for distributed SQL join processing in shared-nothing relational database clusters using self directed data streams
US7475056B2 (en) Query processing in a parallel single cursor model on multi-instance configurations, using hints
US20150149413A1 (en) Client-side partition-aware batching of records for insert operations
US20080147599A1 (en) Load balancing for complex database query plans
US8745021B2 (en) Transformation of complex data source result sets to normalized sets for manipulation and presentation
CN105550268A (zh) 大数据流程建模分析引擎
US11023443B2 (en) Collaborative planning for accelerating analytic queries
US9229979B2 (en) Optimizing parallel queries using interesting distributions
US10956417B2 (en) Dynamic operation scheduling for distributed data processing
US20130318068A1 (en) Method for serial and condition-based execution of operators by parallel processes
Sellami et al. Complex queries optimization and evaluation over relational and NoSQL data stores in cloud environments
JP2017535869A (ja) 和結合型操作を含むクエリの処理
CN108369591A (zh) 用于缓存和参数化ir的系统和方法
CN104731969A (zh) 分布式环境下海量数据连接聚集查询方法、装置和系统
CN106462585B (zh) 用于特定列物化调度的系统和方法
CN110442602A (zh) 数据查询方法、装置、服务器及存储介质
CN110020243A (zh) 物联网数据的查询方法、装置、物联网服务器和存储介质

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant