CN110196863B - 数据处理方法、装置、计算设备及存储介质 - Google Patents
数据处理方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN110196863B CN110196863B CN201810418787.1A CN201810418787A CN110196863B CN 110196863 B CN110196863 B CN 110196863B CN 201810418787 A CN201810418787 A CN 201810418787A CN 110196863 B CN110196863 B CN 110196863B
- Authority
- CN
- China
- Prior art keywords
- plan
- cost
- candidate
- plans
- data processing
- 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
Links
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了数据处理方法、装置、计算设备及存储介质。其中,数据处理方法包括:获取数据处理请求,所述数据处理请求用于描述对一个或多个数据对象的操作请求;确定与所述数据处理请求对应的缺省执行计划;在检测到所述一个或多个数据对象中至少一个数据对象的统计信息不准确时,确定与所述缺省执行计划对应的一个或多个第一备选计划,其中,每个第一备选计划用于描述代价估值经过放大的一个物理查询计划;以及确定与所述缺省执行计划对应的一个或多个第二备选计划,其中,每个第二备选计划用于描述代价估值经过缩小的一个物理查询计划。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及数据处理方法、装置、计算设备及存储介质。
背景技术
数据处理系统通常提供对用户请求进行处理的数据处理子系统。数据处理子系统可以对用户查询进行优化并确定相应的执行计划。在此基础上,数据处理系统可以根据执行计划进行处理操作。这里,数据处理系统的处理效率有待提高。
发明内容
本申请提出了一种数据处理方案,能够提高数据处理效率。
根据本申请一方面,提供一种数据处理方法,包括:获取数据处理请求,所述数据处理请求用于描述对一个或多个数据对象的操作请求;确定与所述数据处理请求对应的缺省执行计划;在检测到所述一个或多个数据对象中至少一个数据对象的统计信息不准确时,确定与所述缺省执行计划对应的一个或多个第一备选计划,其中,每个第一备选计划用于描述代价估值经过放大的一个物理查询计划;以及确定与所述缺省执行计划对应的一个或多个第二备选计划,其中,每个第二备选计划用于描述代价估值经过缩小的一个物理查询计划。
根据本申请一方面,提供一种数据处理装置,其特征在于,所述装置包括:请求获取单元,用于获取数据处理请求,所述数据处理请求用于描述对一个或多个数据对象的操作请求;缺省计划确定单元,用于确定与所述数据处理请求对应的缺省执行计划;第一备选计划确定单元,用于在检测到所述一个或多个数据对象中至少一个数据对象的统计信息不准确时,确定与所述缺省执行计划对应的一个或多个第一备选计划,其中,每个第一备选计划用于描述代价估值经过放大的一个物理查询计划;以及第二备选计划确定单元,用于确定与所述缺省执行计划对应的一个或多个第二备选计划,其中,每个第二备选计划用于描述代价估值经过缩小的一个物理查询计划。
根据本申请一方面,提供一种计算设备,包括:一个或多个处理器、存储器以及一个或多个程序。一个或多个程序存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行本申请的数据处理方法的指令。
根据本申请一方面,提供一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行本申请的数据处理方法。
综上,根据本申请的方案可以对与数据处理请求有关的统计信息的准确度进行判断。在统计信息不准确时,本申请的方案可以在查询优化阶段,根据计划执行阶段代价估值可能的实际情况,预计算得到第一和第二备选计划,从而为计划执行阶段动态调整执行计划提供了备选计划,进而能够提高对数据处理请求的处理性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请一些实施例的应用场景的示意图;
图2示出了根据本申请一些实施例的应用场景的示意图;
图3示出了根据本申请一些实施例的应用场景的示意图;
图4示出了根据本申请一些实施例的数据处理方法400的流程图;
图5A和图5B分别示出了与数据处理请求有关的一个缺省执行计划的树形结构;
图5C示出了根据本申请一个实施例的第一备选计划;
图5D示出了根据本申请一个实施例的第二备选计划;
图6示出了根据本申请一些实施例的数据处理方法600的示意图;
图7示出了根据本申请一些实施例的数据处理方法700的示意图;
图8示出了根据本申请一些实施例的数据处理装置800的示意图;
图9示出了根据本申请一些实施例的数据处理装置900的示意图;以及
图10示出了一个计算设备的组成结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了根据本申请一些实施例的应用场景的示意图。如图1所示,应用场景100包括终端设备110和数据处理系统120。终端设备110例如可以是台式电脑、膝上计算机、移动电话、平板电脑等各种智能设备。数据处理系统120例如可以包括一个或多个服务器。例如,数据处理系统120可以是数据库管理系统。又例如,数据处理系统120还可以是SparkSQL或Flink等大数据处理系统。换言之,数据处理系统120可以是分布式集群或者独立服务器。为了简化描述,终端设备110和数据处理系统120可以统称为计算设备。终端设备110可以向数据处理系统120发送数据处理请求,例如结构化查询语言(Structured QueryLanguage,缩写为SQL)请求等等。这里,数据处理请求例如可以是与数据库有关的操作请求或者与大数据处理有关的操作请求等等。数据处理系统120可以根据来自终端设备110的数据处理请求而执行相应的操作。
图2示出了根据本申请一些实施例的应用场景的示意图。如图2所示,数据处理系统120可以包括查询处理器210、缓冲区220和存储器230。查询处理器可以包括优化器211和执行器212。在数据处理系统120接收到来自终端设备110的数据处理请求(例如SQL请求)时,优化器211可以确定供执行器212采用的执行计划。优化器211可以包括逻辑优化单元2111和物理优化单元2112。逻辑优化单元2111可以确定与数据处理请求对应的逻辑查询计划。这里,逻辑查询计划例如可以是关系代数语法树。对于逻辑查询计划,物理优化单元2112可以确定相应的物理查询计划,以便执行器212根据物理查询计划对数据对象进行操作。数据对象例如是数据库表或弹性分布式数据集(Resilient Distributed Datasets,缩写为RDD)等等。存储器230例如可以持久化存储数据对象。在对数据对象进行操作时,执行器212可以根据物理查询计划将数据对象的至少一部分内容读取到缓冲区220中。这里,缓冲区220例如可以部署在计算设备的内存中。另外,数据处理系统120还可以包括数据统计单元240。这里,数据统计单元240可以对数据对象进行统计。例如,数据统计单元240可以对表的行数或索引访问计数等数据库表的基本信息进行统计,以获取相应的统计信息。需要说明的是,不同类型的数据处理系统所对应的统计信息可以是不同的,本申请对此不做限制。物理优化单元2112可以基于统计信息,利用代价估计模型确定物理查询计划的代价估值。这里,代价估计模型例如是“总代价=IO代价+CPU代价”。又例如,代价估计模型可以是“总代价=IO代价+CPU代价+通讯代价+内存代价”,但不限于此。这里,“IO代价”例如是从存储器230读取数据的消耗。“CPU代价”例如是从页面解析元组的CPU消耗。“通讯代价”例如是向计算节点传输数据的代价。“内存代价”例如是与内存操作有关的代价。存储器230中数据以页面形式被读取到缓冲区220。每个页面可以包括多条元组。CPU在访问页面中元组时需要解析元组结构。另外,在索引扫描的场景中,“IO代价”还包括与索引读取有关的花费。这里,一个物理查询计划的总体代价估值可以称为该物理查询计划的代价估值。物理优化单元2112可以按照代价估计模型,生成代价估值最小的一个物理查询计划,并将其作为一个缺省执行计划,即作为一个默认的执行计划。另外,在确定缺省计划的过程中,物理优化单元2112还可以确定一个或多个第一备选计划和一个或多个第二备选计划(具体请参见下文中图4的说明)。这样,执行器212在需要执行与数据处理请求对应的操作时,可以从确定缺省执行计划、第一备选计划和第二备选计划中选定一个作为最终的执行计划。
图3示出了根据本申请一些实施例的应用场景的示意图。如图3所示,数据处理系统120可以包括任务调度子系统310和任务执行子系统320。其中,任务调度子系统310例如可以是Spark SQL等各种向任务执行子系统320分派任务的系统,本申请对此不做限制。任务调度子系统310可以包括优化器311。优化器311可以包括逻辑优化单元3111和物理优化单元3112。这里,优化器311可以执行与优化器211类似的操作,这里不再赘述。任务执行子系统320可以包括多个计算节点,例如321和322等。每个计算节点可以驻留执行器,例如图3所示的3211和3221。任务调度子系统310可以将执行计划分配到任务执行子系统320。执行器可以在计算节点中执行由任务调度子系统310所分配的任务。这里,每个计算节点所操作的数据对象例如是一个弹性分布式数据集等数据对象,但不限于此。
图4示出了根据本申请一些实施例的数据处理方法400的流程图。这里,数据处理方法400例如可以在图2或图3所示的数据处理系统120中执行,但不限于此。
如图4所示,在步骤S401中,获取数据处理请求。这里,数据处理请求用于描述对一个或多个数据对象的操作请求。数据对象例如是数据库表或弹性分布式数据集等等。数据处理请求例如可以是来自终端设备110的SQL请求,但不限于此。
在步骤S402中,确定与数据处理请求对应的缺省执行计划。在一个实施例中,针对一个数据处理请求,步骤S402可以在查询优化阶段确定与数据处理请求对应的逻辑查询计划。基于代价估计模型,步骤S402可以确定与逻辑查询计划对应的一个物理查询计划,并将该物理查询计划作为缺省执行计划。例如,逻辑优化单元(例如2111或者3111)可以确定一个逻辑查询计划。这里,逻辑查询计划也可以称为逻辑查询执行计划、逻辑执行计划、逻辑查询计划树或者逻辑计划(Logical Plan)。逻辑查询计划例如可以是关系代数语法树。数据处理请求中各个操作语义(例如SQL请求中选择、投影和过滤等操作语义)可以映射为逻辑查询计划的不同结点。对于逻辑查询计划,物理优化单元(例如2112或者3112)可以确定一个缺省执行计划。这里,缺省执行计划是与逻辑查询计划对应的物理查询计划中代价估值最小的一个物理查询计划。物理查询计划也可以称为物理查询执行计划、物理执行计划、物理查询计划树或者物理计划(Physical Plan)。物理查询计划中每个结点用于描述一个数据操作。一个数据操作可以称为一个执行算子(Execution Operator)。代价估计模型例如可以涉及IO代价和CPU代价等等。应当理解,本申请实施例可以采用各种代价估计模型进行代价估算。每个物理查询计划可以被认为是与逻辑查询计划对应的一个可选执行路径。换言之,每个执行路径为一个物理查询计划。为了选定一个缺省执行计划,步骤S402可以探索各种执行路径,以便选定代价花费最小的路径作为缺省执行计划。这里,步骤S402可以采用动态规划算法、遗传算法或者贪婪算法等各种多表连接算法选择缺省执行计划,本申请对此不做限制。
在另一个实施例中,基于代价估计模型,步骤S402可以利用启发式规则选定一个缺省执行计划。本申请实施例可以在步骤S402中采用各种具体的启发式规则。例如,启发式规则可以包括:在对MySQL类型的表进内连接时,两个表在连接前先各自排序,元组少的在前,以使得表连接的花费最小。又例如,由于笛卡尔积操作具有较高代价,启发式规则可以包括:尽量避免笛卡儿积操作。
另外说明的是,步骤S402中确定的缺省执行计划可以用树形结构表示。例如,图5A和图5B分别示出了与数据处理请求有关的一个缺省执行计划的树形结构。其中,结点A至G各自代表一个关于数据库表的操作。结点A、B、C和D例如为单表扫描操作。这里,单表扫描的具体算法例如可以包括:顺序扫描(SeqScan)算法、索引扫描算法(IndexScan)和行扫描(RowldScan)算法等等。结点E、F和G均为两表连接操作。两表连接操作的具体算法例如可以包括哈希连接(HASH JOIN)算法、嵌套循环(NEST LOOP)连接算法和排序归并连接算法,但不限于此。
在检测到与数据处理请求有关的至少一个数据对象的统计信息不准确时,方法400可以执行步骤S403和步骤S404。
在步骤S403中,确定与缺省执行计划对应的一个或多个第一备选计划。其中,每个第一备选计划用于描述代价估值经过放大的一个物理查询计划。以图5A为例,当结点A和B对应的数据表的统计信息不准确时,方法400可以确定与数据处理请求有关的数据对象中存在统计信息不准确的数据对象。
在一个实施例中,方法400可以在数据库的系统表中,为与数据处理请求有关的每个表增加一个表示统计信息更新时间的参数。例如,针对PostgreSQL类型的数据库,方法400可以在pg_statistic系统表的starelid字段后,增加一个新字段,如updatedTime(用于表明数据表的更新时间)。在此基础上,方法400在需要检测表的统计信息是否准确时,能够根据统计信息的最新更新时间确定表的统计信息是否准确。例如,当统计信息的更新时间与当前时间的间隔超过时长阈值时,方法400可以确定表的统计信息不准确。当统计信息的更新时间与当前时间的间隔未超过时长阈值时,方法400可以确定表的统计信息准确。这里,时长阈值可以是默认值或者可以根据需要进行配置,例如为5min。
在一个实施例中,方法400可以根据数据表的更新频率(即对数据表进行增加记录、删除记录和修改记录等操作的频率)和统计信息的更新时间确定数据表是否准确。方法400可以采用各种涉及更新频率和统计信息的更新时间的判断规则,本申请对此不做限制。在一个实施例中,方法400可以在每个表的元信息处,添加用于表示统计信息的更新时间的字段。每个表的统计信息例如可以由数据统计单元240进行统计,但不限于此。另外说明的是,本申请的实施例也可以采用其他各种判断规则确定表的统计信息是否准确,本申请对此不做限制。
在一个实施例中,对于一个第一备选计划,步骤S403可以按照与该第一备选计划对应的代价放大策略,放大与该第一备选计划的树形结构有关的各结点的代价估值而得到各结点的放大参考代价。这样,基于各结点的放大参考代价,步骤S403可以构建该第一备选计划的树形结构,并将树形结构的根结点的放大参考代价作为该第一备选计划的代价估值。
在一个实施例中,第一备选计划可以有N个,N为大于等于1的整数。在确定第k个第一备选计划时,步骤S403可以根据下述方式(即代价放大策略)计算与第k个第一备选计划有关的各个结点对应的放大参考代价:
LCMAX(i)=pf1*w1*LD(i)+pf2*LCMAX(j)
其中,k为正整数,且不超过N。i表示与第k个第一备选计划有关的任一个结点,LCMAX(i)表示结点i对应的放大参考代价,j表示结点i的子结点中放大参考代价由大到小排第k名的一个子结点。例如,k取值为1时,LCMAX(j)标识结点i的子结点中放大参考代价最大的一个子结点。LD(i)表示结点i的代价估值。LCMAX(j)表示结点j对应的放大参考代价。pf1和pf2均为权重系数,缺省值例如均是0.5,但不限于此。本申请实施例也可以对pf1、pf2进行动态配置,这里不再赘述。w1为放大调节系数,其取值例如为[2,M],M为大于2的数值。这样,步骤S403按照第一备选计划对应的代价放大策略(例如上述公式所代表的放大方式)计算各结点的放大参考代价,并按照放大参考代价生成第一备选计划。应当理解,按照一个代价放大策略(即一个第一备选计划对应的代价放大方式),步骤S403可以基于各结点的放大参考代价,对生成第一备选计划的路径进行探索,并最终确定一个第一备选计划。本实施例在确定第一备选计划时,构建方式是从叶子结点开始,逐渐构建上层结点,直到确定根结点。
在另一个实施例中,步骤S403可以按照代价放大策略对于数据处理请求有关的各个物理查询计划的代价估值进行放大(即得到各物理查询执行计划的放大参考代价),并按照放大参考代价由大到小对各物理查询计划进行排序,从而将放大参考代价最大的物理查询计划作为第一备选计划。另外说明的是,步骤S403还可以采用其他适合放大代价估值的策略放大各结点的代价估值,本申请对此不做限制。
综上,基于各个结点的放大参考代价,步骤S403可以重新构建一个或多个第一备选计划。例如,针对图5A所示缺省执行计划,步骤S403可以确定例如图5C所示的第一备选计划。
在步骤S404中,确定与缺省执行计划对应的一个或多个第二备选计划。其中,每个第二备选计划用于描述代价估值经过缩小的一个物理查询计划。
在一个实施例中,对于一个第二备选计划,步骤S404可以按照与该第二备选计划对应的代价缩小策略,缩小与该第二备选计划的树形结构有关的各结点的代价估值而得到各结点的缩小参考代价。这样,基于各结点的缩小参考代价,步骤S404构建该第二备选计划的树形结构,并将树形结构的根结点的放大参考代价作为该第二备选计划的代价估值。
在一个实施例中,步骤S404可以生成M个第二备选计划。M为大于等于1的整数。在计算第k个第二备选计划时,步骤S404可以根据下述方式(即代价缩小策略)计算与第k个第二备选计划有关的各个结点应的缩小参考代价:
LCMIN(i)=pf1*w2*LD(i)+pf2*LCMIN(j)
其中,k为正整数,i表示与第k个第二备选计划有关的任一个结点,LCMIN(i)表示结点i对应的缩小参考代价,j表示结点i的子结点中缩小参考代价由小到大排第k名的一个子结点。LD(i)表示结点i的代价估值,LCMIN(j)表示结点j对应的缩小参考代价。w2表示缩小调节系数,取值范围例如是(0,0.2]。pf1和pf2均为权重系数,缺省值例如均是0.5,但不限于此。在此基础上,步骤S404可以将根结点对应的缩小参考代价作为第二备选计划的缩小参考代价。在本实施例中,按照一个代价缩小策略(即一个第一备选计划对应的代价缩小方式),步骤S404可以基于各结点的缩小参考代价,对生成第一备选计划的路径进行探索,并最终确定一个第二备选计划。应当理解,本实施例在确定第二备选计划时,构建方式是从叶子结点开始,逐渐构建上层结点,直到确定根结点。
在另一个实施例中,步骤S404可以按照代价缩小策略对于数据处理请求有关的各个物理查询计划的代价估值进行缩小(即得到各物理查询执行计划的缩小参考代价),并按照缩小参考代价由小到大对各物理查询计划进行排序,从而将缩小参考代价最小的物理查询计划作为一个第二备选计划。另外说明的是,步骤S404还可以采用其他适合缩小代价估值的策略缩小各结点的代价估值,本申请对此不做限制。
综上,步骤S404可以基于缩小参考代价,确定一个或多个第二备选计划。例如,针对图5A的缺省执行计划,步骤S404可以生成图5D所示的第二备选计划。
另外说明的是,方法400各步骤可以在查询优化阶段执行,例如在优化器211或311中执行,但不限于此。
综上,根据本申请的方法400可以对与数据处理请求有关的统计信息的准确度进行判断。在统计信息不准确时,方法400可以考虑在计划执行阶段时,物理查询计划的代价估值的实际情况。这里,代价估值的实际情况有可能不同于查询优化阶段所确定的代价估值。例如,执行器212可以根据最新统计信息重新计算而得到的参考执行计划(请参见图6中步骤S608)的代价估值,即确定代价估值的实际情况。这里,实际情况例如可以包括3种情况,分别是代价估值变化比较小的情况(即参考执行计划的代价估值与参考执行计划接近)、代价估值极大增加的情况(例如,下文中参考执行计划的代价估值达到参考执行计划的代价估值与第一阈值之积),以及代价估值极大缩小的情况(例如,下文中代价估值未超过参考执行计划的代价估值与第二阈值)。通过步骤S403和S404,方法400可以对不同实际情况进行预计算,即确定一个或多个第一备选计划和确定一个或多个第二备选计划。换言之,方法400可以针对代价估值的实际情况的可能性,确定用于后续动态调整执行计划的第一和第二备选计划。这样,本申请的实施例在计划执行阶段选定执行计划(例如执行器212确定一个执行计划)时,可以在最新代价估值变化较大时,将从第一和第二备选计划中选定一个计划作为执行计划(即,替换掉缺省执行计划)。换言之,本申请的实施例可以在计划执行阶段(例如执行器根据执行计划进行数据库操作的阶段),基于方法400所生成的第一和第二备选计划从整体上动态调整执行计划(例如更改执行计划中多表的连接顺序等等),从而提高对数据处理请求的响应速度。简言之,方法400在查询优化阶段,根据计划执行阶段可能的实际情况,通过预计算得到第一和第二备选计划,从而为计划执行阶段动态调整执行计划提供了备选计划,进而能够提高对数据处理请求的处理性能。
另外说明的是,步骤S402在确定缺省执行计划时,还可以记录缺省执行计划中各结点的代价估值。例如,在构造缺省执行计划的树形结构的过程中,为每个结点增加一个代价估值参数(例如,cost-field),以便记录所涉及的每个结点的代价估值。在此基础上,方法400在执行步骤S403和S404时,利用步骤S402所确定的结点的代价估值,可以避免对各结点的代价估值进行重新计算的消耗,从而可以提高生成第一和第二备选计划的效率。
另外说明的是,在确定与数据处理请求有关的数据对象的统计信息均准确时,方法400可以不执行步骤S403-S404,即不确定第一和第二备选计划,从而可以提高是否确定第一和第二备选计划的灵活性。这里,在统计信息准确的情况下,方法400通过避免确定第一和第二备选计划,可以节约内存,并节约与第一和第二备选计划有关的操作消耗。
另外说明的是,执行方法400的计算设备(例如数据处理系统120)可以采用配置参数方式或者SQL Hint方式确定是否启动方法400的执行流程。例如,数据处理系统120可以在配置参数表示开启方法400时,响应于接收到数据处理请求而执行方法400。
图6示出了根据本申请一些实施例的数据处理方法600的示意图。数据处理方法600例如可以在数据处理系统120中执行。
如图6所示,方法600可以包括步骤S601-S604。步骤S601-S604的实施方式与步骤S401-S404一致,这里不再赘述。
另外,对于步骤S603所确定的任一个第一备选计划,当确定该第一备选计划的代价估值处于代价阈值范围内时,方法600可以执行步骤S605,删除该第一备选计划。这里,代价阈值范围例如是[0.6DP,1.6DP]的区间。这里,DP表示缺省执行计划的代价估值。代价阈值范围可以采用默认值或者根据需要进行调整,本申请对此不做限制。对于步骤S604确定的任一个第二备选计划,当确定该第二备选计划的代价估值处于代价阈值范围内时,方法600可以执行步骤S606,删除第二备选计划。
应当理解,当第一或第二备选计划处于代价阈值范围内时,可以被认为与缺省执行计划的代价估值比较接近。本申请的实施例不需要在计划执行阶段将缺省执行计划更换为处于代价阈值范围内的第一备选计划或更换为处于代价阈值范围内的第二备选计划。这里,方法600可以在查询优化阶段删除处于代价阈值第一和第二备选计划,可以节省内存资源。
另外,在计划执行阶段(例如,执行器212根据执行计划执行操作的阶段)方法600可以执行步骤S607,获取数据对象的最新统计信息。在一个实施例中,步骤S607可以从数据统计单元240获取最新统计信息,但不限于此。
在步骤S608中基于上述最新统计信息,从缺省执行计划、第一备选计划和第二备选计划中选定一个计划,并将所选定的计划作为执行计划。
在一个实施例中,步骤S608可以按照代价估值选定与数据处理请求对应的一个物理查询计划,并将所选定的物理查询计划作为参考执行计划。这里,参考执行计划的生成方式与缺省执行计划的生成方式一致。换言之,步骤S608可以基于最新统计信息,重新生成一个缺省执行计划(即参考执行计划)。在此基础上,步骤S608可以将参考执行计划的代价估值与缺省执行计划的代价估值进行比较。
在一个实施例中,当参考执行计划的代价估值达到缺省执行计划的代价估值与第一阈值之积时,步骤S608从一个或多个第一备选计划中选定代价估值最接近于参考执行计划的一个第一备选计划,并将选定的第一备选计划作为执行计划。例如,当LD-new>=w3*LD-old时,步骤S608选定一个第一备选计划作为执行计划。其中,LD-old表示缺省执行计划的代价估值,LD-new表示参考执行计划的代价估值。w3为第一阈值,取值范围例如是大于等于2。
在一个实施例中,当参考执行计划的代价估值未超过缺省执行计划的代价估值与第二阈值之积时,步骤S608从第二备选计划中选定代价估值最接近于参考执行计划的一个第二备选计划,并将选定的第二备选计划作为执行计划。其中,第一阈值大于第二阈值。例如,LD-new<=w4*LD-old时,步骤S608可以选定一个第二备选计划并将其作为执行计划。其中,w4为第二阈值,取值范围例如是(0,0.2]。
在一个实施例中,当参考执行计划的代价估值未达到缺省执行计划的代价估值与第一阈值之积且超过缺省执行计划的代价估值与第二阈值之积时,将缺省执行计划作为执行计划。
另外说明的是,当步骤S604和S605删除了步骤S603和S604所生成的所有第一和第二备选计划时,方法600可以不执行步骤S607和S608,而是直接执行缺省执行计划。
综上,方法600可以在计划执行阶段,获取最新统计信息。这样,在重新生成的参考执行计划代价估值变化(相对于查询优化阶段确定缺省执行计划时的变化)较大时,可以快速地动态调节执行计划,以便尽可能执行代价估值小的一个物理查询计划,从而提高对数据处理请求的响应速度。简言之,方法600可以在计划执行阶段自适应调节所要采用的整体执行计划,从而极大提高对数据对象的操作效率。
图7示出了根据本申请一些实施例的数据处理方法700的流程图。数据处理方法700例如可以在数据处理系统120中执行。
如图7所示,方法700可以包括步骤S701-S707。步骤S701-S707的实施方式与步骤S601-S607一致,这里不再赘述。
另外,方法700在执行步骤S702时,还可以执行步骤S708,确定缺省执行计划中各局部计划的局部备选计划。这里,局部备选计划用于描述局部计划的一种替换方式。对于任一个局部计划,步骤S708可以从用于替换该局部计划的局部替换计划中选定满足下述条件的一个局部替换方式并将其作为相应的局部备选计划:数据对象连接方式不同于该局部计划,非外连接方式且能够利用该局部计划对应的表索引,且代价估值最接近于该局部计划。在另一个实施例中,步骤S708可以在能够用于替换局部计划的一个或多个局部替换计划中选定一个子集。这里,子集中各局部替换计划满足下述条件:数据对象连接方式不同于局部计划、非外连接方式且能够利用局部计划对应的表索引。在此基础上,步骤S708可以在子集中选定代价估值最接近于局部计划的一个局部替换计划,并将所选定的局部替换计划作为局部备选计划。
另外,在计划执行阶段,方法700可以在步骤S709中更新局部计划的代价估值以及局部备选计划的代价估值。在步骤S710中,基于上述最新统计信息,从缺省执行计划、第一备选计划和第二备选计划中选定一个计划,并将所选定的计划作为执行计划。这里,步骤S710选定执行计划的方式与步骤S608一致,这里不再赘述。另外说明的是,步骤S710在执行缺省执行计划时,可以根据局部计划的代价估值和局部备选计划的代价估值优化局部计划的执行方式。具体而言,当经过更新的局部计划的代价估值大于经过更新的局部备选计划的代价估值时,步骤S710可以利用局部备选执行计划替换缺省执行计划中相应局部计划。简言之,方法700可以利用局部备选执行计划优化缺省执行计划。这样,方法700可以在计划执行阶段优化局部计划,从而提高执行效率。
图8示出了根据本申请一个实施例的数据处理装置800的示意图。数据处理装置800例如可以驻留在图2或图3所示的数据处理系统120中,但不限于此。
如图8所示,数据处理装置800可以包括请求获取单元801、缺省执行计划确定单元802、第一备选计划确定单元803和第二备选计划确定单元804。
请求获取单元801用于获取数据处理请求。数据处理请求用于描述对一个或多个数据对象的操作请求。
缺省计划确定单元802用于确定与数据处理请求对应的缺省执行计划。在一个实施例中,在查询优化阶段,缺省计划确定单元802可以确定与数据处理请求对应的逻辑查询计划。基于代价估计模型,缺省计划确定单元802可以确定与逻辑查询计划对应的一个物理查询计划,并将该物理查询计划作为缺省执行计划。
第一备选计划确定单元803用于在检测到至少一个数据对象的统计信息不准确时,确定与缺省执行计划对应的一个或多个第一备选计划。其中,每个第一备选计划用于描述代价估值经过放大的一个物理查询计划。
在一个实施例中,对于任一个第一备选计划,第一备选计划确定单元803可以按照与该第一备选计划对应的代价放大策略,放大与该第一备选计划的树形结构有关的各结点的代价估值而得到各结点的放大参考代价。在此基础上,基于各结点的放大参考代价,第一备选计划确定单元803可以构建该第一备选计划的树形结构,并将树形结构的根结点的放大参考代价作为该第一备选计划的代价估值。
在一个实施例中,第一备选计划确定单元803可以生成多个第一备选计划。在确定第k(k为大于等于1的整数)个第一备选计划时,根据下述方式计算与第k个第一备选计划有关的各个结点对应的放大参考代价:
LCMAX(i)=pf1*w1*LD(i)+pf2*LCMAX(j)
其中,k为正整数,i表示与所述第k个第一备选计划有关的任一个结点,LCMAX(i)表示结点i对应的放大参考代价,j表示结点i的子结点中放大参考代价由大到小排第k名的一个子结点,LD(i)表示结点i的代价估值,LCMAX(j)表示结点j对应的放大参考代价,w1表示放大调节系数,pf1和pf2均为权重系数。
在至少一个数据对象的统计信息不准确时,第二备选计划确定单元804用于确定与缺省执行计划对应的一个或多个第二备选计划。其中,每个第二备选计划用于描述代价估值经过缩小的一个物理查询计划。
在一个实施例中,对于任一个第二备选计划,第二备选计划确定单元804可以按照与该第二备选计划对应的代价缩小策略,缩小与该第二备选计划的树形结构有关的各结点的代价估值而得到所述各结点的缩小参考代价。基于各结点的缩小参考代价,构建该第二备选计划的树形结构,并将树形结构的根结点的放大参考代价作为该第二备选计划的代价估值。
在一个实施例中,第二备选计划确定单元804可以生成多个第二备选计划。在确定第k个第二备选计划时,第二备选计划确定单元804可以根据下述方式计算与第k个第二备选计划有关的各个结点应的缩小参考代价:
LCMIN(i)=pf1*w2*LD(i)+pf2*LCMIN(j)
其中,k为正整数,i表示与所述第k个第二备选计划有关的任一个结点,LCMIN(i)表示结点i对应的缩小参考代价,j表示结点i的子结点中缩小参考代价由小到大排第k名的一个子结点,LD(i)表示结点i的代价估值,LCMIN(j)表示结点j对应的缩小参考代价,w2表示缩小调节系数,pf1和pf2均为权重系数。
综上,数据处理装置800可以对与数据处理请求有关的统计信息的准确度进行判断。在统计信息不准确时,数据处理装置800可以在查询优化阶段,根据计划执行阶段代价估值可能的实际情况,预计算得到第一和第二备选计划,从而为计划执行阶段动态调整执行计划提供了备选计划,进而能够提高对数据处理请求的处理性能。
图9示出了根据本申请一个实施例的数据处理装置900的示意图。数据处理装置900例如可以驻留在图2或图3所示的数据处理系统120中,但不限于此。
如图9所示,数据处理装置900可以包括请求获取单元901、缺省执行计划确定单元902、第一备选计划确定单元903和第二备选计划确定单元904。这里,请求获取单元901、缺省执行计划确定单元902、第一备选计划确定单元903和第二备选计划确定单元904可以分别执行与请求获取单元801、缺省执行计划确定单元802、第一备选计划确定单元803和第二备选计划确定单元804一致的操作,这里不再赘述。
在一些实施例中,第一备选计划确定单元903还可以删除代价估值处于代价阈值范围内的第一备选计划。第二备选计划确定单元904可以删除代价估值处于所述代价阈值范围内的第二备选计划。
在一些实施例中,数据处理装置900还可以包括执行计划选定单元905。在计划执行阶段,执行计划选定单元905可以获取数据对象的最新统计信息。这样,基于数据对象的最新统计信息,执行计划选定单元905可以从缺省执行计划、第一备选计划和第二备选计划中选定一个计划,并将所选定的计划作为执行计划。
在一个实施例中,基于数据对象的最新统计信息,执行计划选定单元905可以按照代价估值确定与数据处理请求对应的一个物理查询计划,并将所确定的物理查询计划作为参考执行计划。
具体而言,当参考执行计划的代价估值达到缺省执行计划的代价估值与第一阈值之积时,执行计划选定单元905可以从第一备选计划中选定代价估值最接近于参考执行计划的一个第一备选计划,并将选定的第一备选计划作为执行计划。当参考执行计划的代价估值未超过缺省执行计划的代价估值与第二阈值之积时,执行计划选定单元905可以从第二备选计划中选定代价估值最接近于参考执行计划的一个第二备选计划,并将选定的第二备选计划作为执行计划。其中,第一阈值大于第二阈值。当参考执行计划的代价估值未达到上述与第一阈值之积且超过上述与第二阈值之积时,将缺省执行计划作为执行计划。
在一些实施例中,在确定缺省执行计划时,缺省执行计划确定单元902可以记录缺省执行计划中各结点的代价估值。这样,第一备选计划确定单元903可以基于缺省执行计划中各结点的代价估值,确定第一备选计划,从而可以提高生成第一备选计划的效率。第二备选计划确定单元904也可以基于缺省执行计划中各结点的代价估值,确定第二备选计划。
在一些实施例中,缺省执行计划确定单元902还可以确定缺省执行计划中各个局部计划的局部备选计划。在一个实施例中,对于缺省执行计划中任一个局部计划,缺省执行计划确定单元902可以从用于替换该局部计划的局部替换计划中选定满足下述条件的一个局部替换方式并将其作为相应的局部备选计划:数据对象连接方式不同于该局部计划,非外连接方式且能够利用该局部计划对应的表索引,以及代价估值最接近于该局部计划。
图10示出了一个计算设备的组成结构图。如图10所示,该计算设备包括一个或者多个处理器(CPU)1002、通信模块1004、存储器1006、用户接口1010,以及用于互联这些组件的通信总线1008。
处理器1002可通过通信模块1004接收和发送数据以实现网络通信和/或本地通信。
用户接口1010包括一个或多个输出设备1012,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口1010也包括一个或多个输入设备1014。用户接口1010例如可以接收遥控器的指令,但不限于此。
存储器1006可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器1006存储处理器1002可执行的指令集,包括:
操作系统1016,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用1018,包括用于实现上述数据处理方法的各种程序,比如可以包括图8所示数据处理装置800或图9所示数据处理装置900。
另外,本申请的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。
此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本申请还公开了一种非易失性存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述数据处理方法的任意一种实施例。
另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。
以上所述仅为本申请的可选实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
获取数据处理请求,所述数据处理请求用于描述对一个或多个数据对象的操作请求;
确定与所述数据处理请求对应的缺省执行计划;
在检测到所述一个或多个数据对象中至少一个数据对象的统计信息不准确时,确定与所述缺省执行计划对应的一个或多个第一备选计划,其中,每个第一备选计划用于描述代价估值经过放大的一个物理查询计划;以及
确定与所述缺省执行计划对应的一个或多个第二备选计划,其中,每个第二备选计划用于描述代价估值经过缩小的一个物理查询计划。
2.如权利要求1所述的方法,其中,所述确定与所述数据处理请求对应的缺省执行计划,包括:
在查询优化阶段,确定与所述数据处理请求对应的逻辑查询计划;
基于代价估计模型,确定与所述逻辑查询计划对应的一个物理查询计划,并将所述物理查询计划作为所述缺省执行计划。
3.如权利要求1所述的方法,其中,所述方法还包括:
删除所述一个或多个第一备选计划中代价估值处于代价阈值范围内的第一备选计划;
删除所述一个或多个第二备选计划中代价估值处于所述代价阈值范围内的第二备选计划。
4.如权利要求1所述的方法,其中,所述方法还包括:
在计划执行阶段,获取所述至少一个数据对象的最新统计信息;
基于所述至少一个数据对象的最新统计信息,从所述缺省执行计划、所述一个或多个第一备选计划和所述一个或多个第二备选计划中选定一个计划,并将所选定的计划作为执行计划。
5.如权利要求4所述的方法,其中,所述从所述缺省执行计划、所述一个或多个第一备选计划和所述一个或多个第二备选计划中选定一个计划,并将所选定的计划作为执行计划,包括:
基于所述至少一个数据对象的最新统计信息,按照代价估值确定与所述数据处理请求对应的一个物理查询计划,并将所确定的物理查询计划作为参考执行计划;
当所述参考执行计划的代价估值达到所述缺省执行计划的代价估值与第一阈值之积时,从所述一个或多个第一备选计划中选定代价估值最接近于所述参考执行计划的一个第一备选计划,并将选定的第一备选计划作为所述执行计划;
当所述参考执行计划的代价估值未超过所述缺省执行计划的代价估值与第二阈值之积时,从所述一个或多个第二备选计划中选定代价估值最接近于所述参考执行计划的一个第二备选计划,并将选定的第二备选计划作为所述执行计划,其中,所述第一阈值大于所述第二阈值;
当所述参考执行计划的代价估值未达到所述与第一阈值之积且超过所述与第二阈值之积时,将所述缺省执行计划作为所述执行计划。
6.如权利要求1所述的方法,其中,所述方法还包括:确定所述缺省执行计划中各个局部计划的局部备选计划。
7.如权利要求6所述的方法,其中,所述确定缺省执行计划中各个局部计划的局部备选计划,包括:对于所述缺省执行计划中任一个局部计划,从用于替换该局部计划的局部替换计划中选定满足下述条件的一个局部替换方式并将其作为相应的局部备选计划:
数据对象连接方式不同于该局部计划,
非外连接方式且能够利用该局部计划对应的表索引,
代价估值最接近于该局部计划。
8.如权利要求1所述的方法,其中,
所述方法还包括:在确定所述缺省执行计划时,记录所述缺省执行计划中各结点的代价估值;
所述确定与所述缺省执行计划对应的一个或多个第一备选计划,包括:基于所述缺省执行计划中各结点的代价估值,确定所述一个或多个第一备选计划;
确定与所述缺省执行计划对应的一个或多个第二备选计划,包括:基于所述缺省执行计划中各结点的代价估值,确定所述一个或多个第二备选计划。
9.如权利要求1所述的方法,其中,所述确定与所述缺省执行计划对应的一个或多个第一备选计划,包括:
对于所述一个或多个第一备选计划中任一个第一备选计划,按照与该第一备选计划对应的代价放大策略,放大与该第一备选计划的树形结构有关的各结点的代价估值而得到所述各结点的放大参考代价;
基于所述各结点的放大参考代价,构建该第一备选计划的所述树形结构,并将所述树形结构的根结点的放大参考代价作为该第一备选计划的代价估值。
10.如权利要求9所述的方法,其中,所述对于所述一个或多个第一备选计划中任一个第一备选计划,按照与该第一备选计划对应的代价放大策略,放大与该第一备选计划的树形结构有关的各结点的代价估值而得到所述各结点的放大参考代价,包括:
在确定所述一个或多个第一备选计划中第k个第一备选计划时,根据下述方式计算与所述第k个第一备选计划的树形结构有关的各个结点对应的放大参考代价:
LCMAX(i)=pf1*w1*LD(i)+pf2*LCMAX(j)
其中,k为正整数,i表示与所述第k个第一备选计划的树形结构有关的任一个结点,LCMAX(i)表示结点i对应的放大参考代价,j表示结点i的子结点中放大参考代价由大到小排第k名的一个子结点,LD(i)表示结点i的代价估值,LCMAX(j)表示结点j对应的放大参考代价,w1表示放大调节系数,pf1和pf2均为权重系数。
11.如权利要求1所述的方法,其中,所述确定与所述缺省执行计划对应的一个或多个第二备选计划,包括:
对于所述一个或多个第二备选计划中任一个第二备选计划,按照与该第二备选计划对应的代价缩小策略,缩小与该第二备选计划的树形结构有关的各结点的代价估值而得到所述各结点的缩小参考代价;
基于所述各结点的缩小参考代价,构建该第二备选计划的所述树形结构,并将所述树形结构的根结点的放大参考代价作为该第二备选计划的代价估值。
12.如权利要求11所述的方法,其中,所述对于所述一个或多个第二备选计划中任一个第二备选计划,按照与该第二备选计划对应的代价缩小策略,缩小与该第二备选计划的树形结构有关的各结点的代价估值而得到所述各结点的缩小参考代价,包括:
在确定所述一个或多个第二备选计划中第k个第二备选计划时,根据下述方式计算与所述第k个第二备选计划的树形结构有关的各个结点应的缩小参考代价:
LCMIN(i)=pf1*w2*LD(i)+pf2*LCMIN(j)
其中,k为正整数,i表示与所述第k个第二备选计划的树形结构有关的任一个结点,LCMIN(i)表示结点i对应的缩小参考代价,j表示结点i的子结点中缩小参考代价由小到大排第k名的一个子结点,LD(i)表示结点i的代价估值,LCMIN(j)表示结点j对应的缩小参考代价,w2表示缩小调节系数,pf1和pf2均为权重系数。
13.一种数据处理装置,其特征在于,所述装置包括:
请求获取单元,用于获取数据处理请求,所述数据处理请求用于描述对一个或多个数据对象的操作请求;
缺省计划确定单元,用于确定与所述数据处理请求对应的缺省执行计划;
第一备选计划确定单元,用于在检测到所述一个或多个数据对象中至少一个数据对象的统计信息不准确时,确定与所述缺省执行计划对应的一个或多个第一备选计划,其中,每个第一备选计划用于描述代价估值经过放大的一个物理查询计划;以及
第二备选计划确定单元,用于确定与所述缺省执行计划对应的一个或多个第二备选计划,其中,每个第二备选计划用于描述代价估值经过缩小的一个物理查询计划。
14.一种计算设备,其特征在于包括:
一个或多个处理器;
存储器;以及
一个或多个程序,存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1-12中任一项所述的数据处理方法的指令。
15.一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1-12中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810418787.1A CN110196863B (zh) | 2018-05-04 | 2018-05-04 | 数据处理方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810418787.1A CN110196863B (zh) | 2018-05-04 | 2018-05-04 | 数据处理方法、装置、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110196863A CN110196863A (zh) | 2019-09-03 |
CN110196863B true CN110196863B (zh) | 2022-10-18 |
Family
ID=67751014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810418787.1A Active CN110196863B (zh) | 2018-05-04 | 2018-05-04 | 数据处理方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110196863B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955726B (zh) * | 2019-11-26 | 2022-12-23 | 中思博安科技(北京)有限公司 | 一种确定分布式代价的方法、装置、存储介质及电子设备 |
CN111639096B (zh) * | 2020-05-29 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 一种sql语句的执行方法、装置、电子设备及存储介质 |
CN116561374B (zh) * | 2023-07-11 | 2024-02-23 | 腾讯科技(深圳)有限公司 | 基于半结构化存储的资源确定方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246495A (zh) * | 2008-03-21 | 2008-08-20 | 深圳国人通信有限公司 | 一种构造查询方案及使用其进行数据查询和统计的方法 |
CN102930003A (zh) * | 2012-10-24 | 2013-02-13 | 浙江图讯科技有限公司 | 一种用于优化数据库查询计划的系统及其方法 |
CN103324724A (zh) * | 2013-06-26 | 2013-09-25 | 华为技术有限公司 | 数据处理方法及装置 |
CN105426504A (zh) * | 2015-11-27 | 2016-03-23 | 陕西艾特信息化工程咨询有限责任公司 | 一种基于内存计算的分布式数据分析处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289098A1 (en) * | 2004-06-24 | 2005-12-29 | International Business Machines Corporation | Dynamically selecting alternative query access plans |
-
2018
- 2018-05-04 CN CN201810418787.1A patent/CN110196863B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246495A (zh) * | 2008-03-21 | 2008-08-20 | 深圳国人通信有限公司 | 一种构造查询方案及使用其进行数据查询和统计的方法 |
CN102930003A (zh) * | 2012-10-24 | 2013-02-13 | 浙江图讯科技有限公司 | 一种用于优化数据库查询计划的系统及其方法 |
CN103324724A (zh) * | 2013-06-26 | 2013-09-25 | 华为技术有限公司 | 数据处理方法及装置 |
CN105426504A (zh) * | 2015-11-27 | 2016-03-23 | 陕西艾特信息化工程咨询有限责任公司 | 一种基于内存计算的分布式数据分析处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110196863A (zh) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249997B1 (en) | System-wide query optimization | |
US20220405284A1 (en) | Geo-scale analytics with bandwidth and regulatory constraints | |
US9342250B1 (en) | Dynamic distribution of replicated data | |
US8386463B2 (en) | Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table | |
CN110196863B (zh) | 数据处理方法、装置、计算设备及存储介质 | |
US9342572B2 (en) | Workflow processing system and method with database system support | |
US20200057782A1 (en) | Optimized navigable key-value store | |
US8812492B2 (en) | Automatic and dynamic design of cache groups | |
CN108536808A (zh) | 一种基于Spark计算框架的数据获取方法和装置 | |
US20200167313A1 (en) | Database management system and anonymization processing method | |
CN108140022A (zh) | 数据查询方法和数据库系统 | |
CN110381136A (zh) | 一种数据读取方法、终端、服务器及存储介质 | |
US8548980B2 (en) | Accelerating queries based on exact knowledge of specific rows satisfying local conditions | |
CN111427920B (zh) | 数据采集方法、装置、系统、计算机设备及存储介质 | |
CN111666302A (zh) | 用户排名的查询方法、装置、设备及存储介质 | |
CN110069466A (zh) | 一种面向分布式文件系统的小文件存储方法及装置 | |
WO2019234039A1 (en) | Data processing | |
US20160147461A1 (en) | Intelligent memory block replacement | |
CN112307272A (zh) | 确定对象之间关系信息的方法、装置、计算设备及存储介质 | |
US11947822B2 (en) | Maintaining a record data structure using page metadata of a bookkeeping page | |
CN112286995B (zh) | 一种数据分析方法、装置、服务器、系统及存储介质 | |
CN117891835A (zh) | 一种数据存储及查询方法、系统、设备及存储介质 | |
CN118051494A (zh) | 确定spark目标参数的方法、装置及电子设备 | |
CN114416761A (zh) | 更新统计信息的方法、装置、设备、介质及产品 | |
CN116383255A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |