CN116226237A - 一种支持多个计算引擎的分布式查询计划生成方法及装置 - Google Patents

一种支持多个计算引擎的分布式查询计划生成方法及装置 Download PDF

Info

Publication number
CN116226237A
CN116226237A CN202310474282.8A CN202310474282A CN116226237A CN 116226237 A CN116226237 A CN 116226237A CN 202310474282 A CN202310474282 A CN 202310474282A CN 116226237 A CN116226237 A CN 116226237A
Authority
CN
China
Prior art keywords
engines
plan
different
computing
cost
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.)
Pending
Application number
CN202310474282.8A
Other languages
English (en)
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.)
Tianjin Nankai University General Data Technologies Co ltd
Original Assignee
Tianjin Nankai University General Data 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 Tianjin Nankai University General Data Technologies Co ltd filed Critical Tianjin Nankai University General Data Technologies Co ltd
Priority to CN202310474282.8A priority Critical patent/CN116226237A/zh
Publication of CN116226237A publication Critical patent/CN116226237A/zh
Pending legal-status Critical Current

Links

Images

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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed 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/242Query formulation
    • 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/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Fuzzy Systems (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供的一种支持多个计算引擎的分布式查询计划生成方法及装置,涉及分布式数据查询领域,该方法包括:在一个数据库中集成多种计算引擎;生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;选择最优计划的同时确定执行该计划的最优计算引擎。本申请通过生成不同的物理计划化进行代价评估,相对以现有物理计划进行代价评估选出的物理计划,将更优越。

Description

一种支持多个计算引擎的分布式查询计划生成方法及装置
技术领域
本申请涉及分布式数据查询领域,尤其涉及一种支持多个计算引擎的分布式查询计划生成方法。本申请还涉及一种支持多个计算引擎的分布式查询计划生成装置。
背景技术
随着数据库领域的技术发展,出现了各种具有不同特点的计算引擎,有采用批量计算方法的引擎,有采用火山模型的引擎,有的采用早期物化,有的采用晚期物化。不同的计算引擎有不同的特点,例如:晚期物化的批量计算引擎,计算时先只物化过滤条件或关联条件涉及到的列,过滤后剩余的记录才会根据需要物化关联条件涉及到的列,关联时记录结果集对应表数据的行号,在得到最终结果集时再根据行号对其它列进行物化,避免物化过多无用的数据。而火山模型通常使用早期物化,单表过滤条件筛选后的所有列进行物化,虽然可能会物化一些最终会被过滤掉的数据,但是最后产生结果集的时候,不需要再进行物化。
不同计算引擎实现的算子也具有不同的代价模型,例如Scan算子,使用向量指令SIMD的引擎和不使用向量指令的引擎在对同样数据量进行计算时的代价不同。不同计算引擎占用的CPU和内存等资源也不同,有些引擎也会支持其它引擎不支持的物理计划。
一般的查询优化器在接收到SQL之后,会进行优化改写,之后得到优化后的逻辑计划,为了得到最优或较优的物理计划,通常会通过贪心算法,动态规划等对不同的物理计划进行代价评估并选择。这种方法只能在现有的物理计划中选择,无法将最优的物理计划评估出来。
发明内容
本申请的目的在于克服现有技术中只能在现有的物理计划中选择,无法将最优的物理计划评估出来的技术问题,提供一种支持多个计算引擎的分布式查询计划生成方法。本申请还涉及一种支持多个计算引擎的分布式查询计划生成装置。
本申请提供的一种支持多个计算引擎的分布式查询计划生成方法,包括:
在一个数据库中集成多种计算引擎;
生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;
选择最优计划的同时确定执行该计划的最优计算引擎。
可选的,所述最优计算引擎,包括:
根据系统当前的资源情况,用户查询语句特点选择相对最优的计算引擎。
可选的,还包括:
根据待处理的数据量,代价模型,执行计划来评估每种执行计划以及使用不同的引擎的代价,选择代价最小的计划。
可选的,所述计算引擎包括:批量晚期物化计算引擎和向量化火山模型。
本申请还提供一种支持多个计算引擎的分布式查询计划生成装置,包括:
集成模块,用于在一个数据库中集成多种计算引擎;
评估模块,用于生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;
选择模块,用于选择最优计划的同时确定执行该计划的最优计算引擎。
可选的,所述评估模块,包括:
计算引擎评估单元,用于根据系统当前的资源情况,用户查询语句特点选择相对最优的计算引擎。
可选的,所述评估模块还包括:
计划评估单元,用于根据待处理的数据量,代价模型,执行计划来评估每种执行计划以及使用不同的引擎的代价,选择代价最小的计划。
可选的,所述计算引擎包括:批量晚期物化计算引擎和向量化火山模型。
本申请的优点和有益效果:
本申请提供的一种支持多个计算引擎的分布式查询计划生成方法,包括:在一个数据库中集成多种计算引擎;生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;选择最优计划的同时确定执行该计划的最优计算引擎。本申请通过生成不同的物理计划化进行代价评估,相对以现有物理计划进行代价评估选出的物理计划,将更优越。
附图说明
图1是本申请中支持多个计算引擎的分布式查询计划生成流程示意图。
图2是本申请中支持多个计算引擎的分布式查询计划生成器示意图。
图3本申请中物理代价评估示意图。
图4是本申请中支持多个计算引擎的分布式查询计划生成装置示意图。
图5是本申请中确定执行该计划的最优计算引擎示意图。
具体实施方式
下面结合附图和具体实施例对本申请作进一步说明,以使本领域的技术人员可以更好地理解本申请并能予以实施。
以下内容均是为了详细说明本申请要保护的技术方案所提供的具体实施过程的示例,但是本申请还可以采用不同于此的描述的其他方式实施,本领域技术人员可以在本申请构思的指引下,采用不同的技术手段实现本申请,因此本申请不受下面具体实施例的限制。
本申请提供的一种支持多个计算引擎的分布式查询计划生成方法,包括:在一个数据库中集成多种计算引擎;生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;选择最优计划的同时确定执行该计划的最优计算引擎。本申请通过生成不同的物理计划化进行代价评估,相对以现有物理计划进行代价评估选出的物理计划,将更优越。
本申请中,分布式分析型数据库在进行数据分析时,需要先对用户的查询语句进行优化改写,然后根据改写后的语句生成各种物理计划,并根据表的统计信息,评估每种物理计划的执行代价,然后选择代价最小的物理计划交给执行器执行。
请参照图1所示,S101在一个数据库中集成多种计算引擎。
不同计算引擎实现的算子也具有不同的代价模型,例如Scan算子,使用向量指令SIMD的引擎和不使用向量指令的引擎在对同样数据量进行计算时的代价不同。不同计算引擎占用的CPU和内存等资源也不同,有些引擎也会支持其它引擎不支持的物理计划。
本申请在一个数据库中集成多种计算引擎,并能根据系统当前的资源情况,用户查询语句特点自动选择合适的计算引擎执行,既能充分利用资源,又能提高查询性能。
请参照图1所示,S102生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;
如图2所示,本发明将查询优化器部分进行扩展。
本申请中,扩展主要是在生成不同的物理计划并对物理计划的代价进行评估部分。
首先,为不同的计算引擎支持不同的代价模型。
其次,在生成物理计划过程中,除了生成所有计算引擎都会支持的物理计划,还要根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划。
例如,生成不同阶段的晚期物化计划,并使用支持此种物理计划的计算引擎的代价模型计算该计划的代价。
请参照图1所示,S103选择最优计划的同时确定执行该计划的最优计算引擎。
具体的,根据上述的评估代价选择最优计划的同时确定执行该计划的最优计算引擎。
如图5所示,查询计划生成器为计算引擎a和计算引擎b分别生成多个计划,对于只能在计算引擎a上执行的计划,使用计算引擎a的代价模型计算代价,对于只能在计算引擎b上执行的计划,使用计算引擎b的代价模型计算代价,对于在两种计算引擎上都能执行的计划,分别使用两个计算引擎的代价模型计算代价,最后选择代价最小的计划,同时也就确定了该计划的计算引擎,则使用该计划在对应的计算引擎上执行来获取最佳的性能。
举一个例子:
设:t1表,包含的列有a1,b1,c1,d1,e1,f1,g1;t2表,包含的列有a2,b2,c2,d2,e2,f2,g2。
Select * from t1, t2 where t1.a1 = t2.a2 and t1.b1 > 10。
请参照图3所示,选择两个计算引擎分别进行评估:
一、批量晚期物化计算引擎执行过程:t1表scan时,物化b1列完成过滤,根据过滤后的行号物化a1列,t2表scan时只物化a2列。
join算子使用t1表的a1列和t2表的a2列关联,关联结果的每条记录里记录了t1表的a1,b1列和“行号”,以及t2表a2列和“行号”,再根据“行号”物化t1表的c1,d1,e1,f1,g1列的实际数据和t2表的b2,c2,d2,e2,f2,g2数据返回。
二、向量化火山模型执行过程:t1表scan时,物化b1列完成过滤,根据过滤后的行号物化a1,b1,c1,d1,e1,f1,g1列,t2表scan时物化a2,b2,c2,d2,e2,f2,g2列。
join算子使用t1表的a1列和t2表的a2列关联,直接得到关联结果返回。
分析如下:
如果过滤后以及join后的记录条数比较少,晚期物化避免了物化没用的数据,如果条数比较多则晚期物化效果可能不好,另外,scan算子的代价模型不同,向量引擎的代价可能为1,晚期物化模型可能为4或8等,也会影响执行的性能。
因此需要根据待处理的数据量,代价模型,执行计划来评估每种执行计划以及使用不同的引擎的代价,来选择较优的计划。
本申请还提供一种支持多个计算引擎的分布式查询计划生成装置,包括:集成模块401、评估模块402和选择模块403。
本申请中,分布式分析型数据库在进行数据分析时,需要先对用户的查询语句进行优化改写,然后根据改写后的语句生成各种物理计划,并根据表的统计信息,评估每种物理计划的执行代价,然后选择代价最小的物理计划交给执行器执行。
请参照图4所示,集成模块401,用于在一个数据库中集成多种计算引擎。
不同计算引擎实现的算子也具有不同的代价模型,例如Scan算子,使用向量指令SIMD的引擎和不使用向量指令的引擎在对同样数据量进行计算时的代价不同。不同计算引擎占用的CPU和内存等资源也不同,有些引擎也会支持其它引擎不支持的物理计划。
本申请在一个数据库中集成多种计算引擎,并能根据系统当前的资源情况,用户查询语句特点自动选择合适的计算引擎执行,既能充分利用资源,又能提高查询性能。
请参照图4所示,评估模块402,用于生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划。
如图2所示,本发明将查询优化器部分进行扩展。
本申请中,扩展主要是在生成不同的物理计划并对物理计划的代价进行评估部分。
首先,为不同的计算引擎支持不同的代价模型。
其次,在生成物理计划过程中,除了生成所有计算引擎都会支持的物理计划,还要根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划。
例如,生成不同阶段的晚期物化计划,并使用支持此种物理计划的计算引擎的代价模型计算该计划的代价。
请参照图4所示,选择模块403,用于选择最优计划的同时确定执行该计划的最优计算引擎。
具体的,根据上述的评估代价选择最优计划的同时确定执行该计划的最优计算引擎。

Claims (8)

1.一种支持多个计算引擎的分布式查询计划生成方法,其特征在于,包括:
在一个数据库中集成多种计算引擎;
生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;
选择最优计划的同时确定执行该计划的最优计算引擎。
2.根据权利要求1所述支持多个计算引擎的分布式查询计划生成方法,其特征在于,所述最优计算引擎,包括:
根据系统当前的资源情况,用户查询语句特点选择最优的计算引擎。
3.根据权利要求1所述支持多个计算引擎的分布式查询计划生成方法,其特征在于,还包括:
根据待处理的数据量,代价模型,执行计划来评估每种执行计划以及使用不同的引擎的代价,选择代价最小的计划。
4.根据权利要求1所述支持多个计算引擎的分布式查询计划生成方法,其特征在于,所述计算引擎包括:批量晚期物化计算引擎和向量化火山模型。
5.一种支持多个计算引擎的分布式查询计划生成装置,其特征在于,包括:
集成模块,用于在一个数据库中集成多种计算引擎;
评估模块,用于生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;
选择模块,用于选择最优计划的同时确定执行该计划的最优计算引擎。
6.根据权利要求5所述支持多个计算引擎的分布式查询计划生成装置,其特征在于,所述评估模块,包括:
计算引擎评估单元,用于根据系统当前的资源情况,用户查询语句特点选择最优的计算引擎。
7.根据权利要求5所述支持多个计算引擎的分布式查询计划生成装置,其特征在于,所述评估模块还包括:
计划评估单元,用于根据待处理的数据量,代价模型,执行计划来评估每种执行计划以及使用不同的引擎的代价,选择代价最小的计划。
8.根据权利要求5所述支持多个计算引擎的分布式查询计划生成装置,其特征在于,所述计算引擎包括:批量晚期物化计算引擎和向量化火山模型。
CN202310474282.8A 2023-04-27 2023-04-27 一种支持多个计算引擎的分布式查询计划生成方法及装置 Pending CN116226237A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310474282.8A CN116226237A (zh) 2023-04-27 2023-04-27 一种支持多个计算引擎的分布式查询计划生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310474282.8A CN116226237A (zh) 2023-04-27 2023-04-27 一种支持多个计算引擎的分布式查询计划生成方法及装置

Publications (1)

Publication Number Publication Date
CN116226237A true CN116226237A (zh) 2023-06-06

Family

ID=86579025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310474282.8A Pending CN116226237A (zh) 2023-04-27 2023-04-27 一种支持多个计算引擎的分布式查询计划生成方法及装置

Country Status (1)

Country Link
CN (1) CN116226237A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117971888A (zh) * 2024-03-28 2024-05-03 腾讯科技(深圳)有限公司 数据引擎的确定方法、装置、设备、存储介质及程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110071693A1 (en) * 2010-07-02 2011-03-24 David Sun Multi-interval dispatch system tools for enabling dispatchers in power grid control centers to manage changes
CN112988782A (zh) * 2021-02-18 2021-06-18 新华三大数据技术有限公司 Hive支持交互式查询的方法、装置及存储介质
CN113377464A (zh) * 2021-08-12 2021-09-10 苏州浪潮智能科技有限公司 一种基于多推理引擎系统的应用部署方法、装置及设备
CN113792079A (zh) * 2021-11-17 2021-12-14 腾讯科技(深圳)有限公司 数据查询方法、装置、计算机设备和存储介质
CN114996307A (zh) * 2021-03-01 2022-09-02 阿里巴巴集团控股有限公司 一种对数据的联邦处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110071693A1 (en) * 2010-07-02 2011-03-24 David Sun Multi-interval dispatch system tools for enabling dispatchers in power grid control centers to manage changes
CN112988782A (zh) * 2021-02-18 2021-06-18 新华三大数据技术有限公司 Hive支持交互式查询的方法、装置及存储介质
CN114996307A (zh) * 2021-03-01 2022-09-02 阿里巴巴集团控股有限公司 一种对数据的联邦处理方法及装置
CN113377464A (zh) * 2021-08-12 2021-09-10 苏州浪潮智能科技有限公司 一种基于多推理引擎系统的应用部署方法、装置及设备
CN113792079A (zh) * 2021-11-17 2021-12-14 腾讯科技(深圳)有限公司 数据查询方法、装置、计算机设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117971888A (zh) * 2024-03-28 2024-05-03 腾讯科技(深圳)有限公司 数据引擎的确定方法、装置、设备、存储介质及程序产品

Similar Documents

Publication Publication Date Title
AU734922B2 (en) Optimizer with neural network estimator
CN110297701A (zh) 数据处理作业调度方法、装置、计算机设备及存储介质
US8104015B2 (en) System and method for automated electronic device design
US7840555B2 (en) System and a method for identifying a selection of index candidates for a database
CN104050202B (zh) 用于搜索数据库的方法和装置
KR102041168B1 (ko) Union 유형 연산을 포함하는 쿼리 처리
CN107301214B (zh) 在hive中数据迁移方法、装置及终端设备
EA200601713A1 (ru) Способ и устройство, а также устройство хранения программ, включающее в себя интегральную систему управления технологическим процессом проектирования скважины с зависимостью процессов
US20070192372A1 (en) Method and apparatus for projecting the effect of maintaining an auxiliary database structure for use in executing database queries
CN112988782B (zh) Hive支持交互式查询的方法、装置及存储介质
CN116226237A (zh) 一种支持多个计算引擎的分布式查询计划生成方法及装置
Bausch et al. Making cost-based query optimization asymmetry-aware
JP6694447B2 (ja) ビッグデータの計算方法及びシステム、プログラムならびに記録媒体
CN105224452A (zh) 一种针对科学计算程序静态分析性能的预测代价优化方法
US11704316B2 (en) Systems and methods for determining peak memory requirements in SQL processing engines with concurrent subtasks
CN110968321A (zh) 张量计算代码优化方法、装置、设备及介质
Herodotou et al. Xplus: a sql-tuning-aware query optimizer
US7739083B2 (en) Program and/or method for calculating tuning parameters for numerical computation library
CN103455417B (zh) 一种基于马尔可夫模型的软件错误定位系统及错误定位方法
CN114238078A (zh) 一种基于高阶函数的程序间依赖关系抽取方法
CN101356531A (zh) 电子电路设计
CN104361090A (zh) 数据查询方法及装置
Kant The selection of efficient implementations for a high-level language
Redreev et al. Optimizing the use of expert systems by varying databases
CN113656437A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20230606