CN112699140B - 数据处理方法、装置、设备和存储介质 - Google Patents
数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112699140B CN112699140B CN201911013786.XA CN201911013786A CN112699140B CN 112699140 B CN112699140 B CN 112699140B CN 201911013786 A CN201911013786 A CN 201911013786A CN 112699140 B CN112699140 B CN 112699140B
- Authority
- CN
- China
- Prior art keywords
- processor
- cost
- execution
- operator
- determining
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000003860 storage Methods 0.000 title abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004364 calculation method Methods 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 33
- 230000005540 biological transmission Effects 0.000 claims description 13
- 230000004927 fusion Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000007499 fusion processing Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/242—Query formulation
- G06F16/2433—Query languages
-
- 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
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、设备和存储介质,以选择执行查询语句的处理器。所述方法包括:对所述查询语句对应的算子进行估计,确定所述算子在不同处理器的执行成本;依据所述处理器的压力数据和所述算子在不同处理器的执行成本,确定执行所述查询语句的处理器。能够合理的选择查询语句的处理器,提高数据库的资源利用率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理方法和装置、一种电子设备和一种存储介质。
背景技术
随着互联网业务的不断多元和用户量的增长,现代的数据库不仅需要存储更多的数据,在进行复杂数据查询时,也面临越来越大的性能压力。
传统的数据库使用CPU进行SQL(Structured Query Language,结构化查询语言)语句的查询,随着性能压力的增加,越来越多的数据库开始采用GPU(Graphics ProcessingUnit,图形处理器)来加速复杂的大数据量查询SQL。
但是,GPU和CPU的架构不同,擅长处理的领域也不同,相应不同SQL语句使用GPU、CPU时消耗的资源也不同,因此如何选择执行SQL语句的处理器,是本领域技术人员亟需解决的一个技术问题。
发明内容
本申请实施例提供了一种数据处理方法,以选择执行查询语句的处理器。
相应的,本申请实施例还提供了一种数据处理装置、一种电子设备以及一种存储介质,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种数据处理方法,所述方法包括:对所述查询语句对应的算子进行估计,确定所述算子在不同处理器的执行成本;依据所述处理器的压力数据和所述算子在不同处理器的执行成本,确定执行所述查询语句的处理器。
可选的,所述对所述查询语句对应的算子进行估计,确定所述算子对应的执行成本,包括:按照处理器,确定所述算子的计算代价和数据获取代价;依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本。
可选的,确定所述算子的计算代价的步骤包括:确定所述算子对应数据量和选择的线性模型;将所述数据量输入所述线性模型,确定所述算子的计算代价。
可选的,确定所述算子的数据获取代价的步骤包括:将读取的数据量和系统磁盘的读取带宽之间的比值,作为所述算子的数据获取代价;和/或,将读取的数据量和总线的读取带宽之间的比值,与所述总线传输的固定成本的和值,作为所述算子的数据获取代价。
可选的,所述依据所述处理器的压力数据和所述算子在不同处理器的执行成本,确定执行所述查询语句的处理器,包括:若所述不同处理器的压力数据满足第一压力条件,则根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器;若所述不同处理器的压力数据满足第二压力条件,则依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句。
可选的,所述方法还包括:确定查询语句对应的查询树。
可选的,还包括:依据所述算子在不同处理器的执行成本,确定所述查询树在不同处理器的执行性能信息。
可选的,依据所述算子在不同处理器的执行成本,确定所述查询树在不同处理器的执行性能信息,包括:按照处理器对所述算子的执行成本进行累加,得到所述查询树对应所述处理器的执行性能信息。
可选的,还包括:按照设定规则,对所述查询树中节点进行融合。
可选的,所述根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器,包括:依据所述算子在所述查询树中对应的节点和所述算子在不同处理器的执行成本,确定对应的执行路径;按照所述执行路径,确定执行所述查询语句的处理器。
可选的,所述依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句,包括:将压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句;或,对于压力数据未超过阈值的处理器,若查询语句在该处理器的执行性能信息和另一处理器的执行性能信息的比值小于比例阈值,则将所述压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句。
本申请实施例还提供了一种数据处理方法,所述方法包括:确定查询语句对应的查询树;对所述查询语句对应的算子进行估计,确定所述算子对应的执行成本;依据所述算子的执行成本,确定所述查询树的执行性能信息。
可选的,还包括:依据所述处理器的压力数据和所述执行性能信息,确定执行所述查询语句的处理器。
可选的,按照设定规则,对所述查询树对应的节点进行融合。
本申请实施例还提供了一种数据处理装置,所述装置包括:成本估计模块,用于对所述查询语句对应的算子进行估计,确定所述算子在不同处理器的执行成本;处理器选择模块,用于依据所述处理器的压力数据和所述算子在不同处理器的执行成本,确定执行所述查询语句的处理器。
本申请实施例还提供了一种数据处理装置,所述装置包括:查询树确定模块,用于确定查询语句对应的查询树;执行成本估计模块,用于对所述查询语句对应的算子进行估计,确定所述算子对应的执行成本;执行性能确定模块,用于依据所述算子的执行成本,确定所述查询树的执行性能信息。
本申请实施例还提供了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的数据处理方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的数据处理方法。
本申请实施例还提供了一种电子设备,其特征在于,包括:处理器;和
存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的数据处理方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的数据处理方法。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,可对查询查询语句对应的算子进行估计,确定所述算子在不同处理器的执行成本,然后可结合处理器的压力数据和算子在不同处理器的执行成本,确定执行所述查询语句的处理器,合理的选择查询语句的处理器,提高数据库的资源利用率。
附图说明
图1是本申请实施例的一种数据处理方法实施例的步骤流程图;
图2是本申请实施例的另一种数据处理方法实施例的步骤流程图;
图3是本申请实施例的又一种数据处理方法实施例的步骤流程图;
图4是本申请的一种数据处理装置实施例的结构框图;
图5是本申请的一种数据处理装置可选实施例的结构框图;
图6是本申请的另一种数据处理装置实施例的结构框图;
图7是本申请的另一种数据处理装置可选实施例的结构框图;
图8是本申请一实施例提供的装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例中,通过SQL语句查询数据库时,数据库可以采用CPU和/或GPU进行SQL语句的处理,但是,GPU和CPU的架构不同,擅长处理的领域也不同,相应不同SQL语句使用GPU、CPU时消耗的资源也不同。因此需要确定SQL语句在不同处理器下执行所消耗的资源,来选择合适的处理器。
其中,一条SQL语句除了对数据库中的数据进行查询之外,还需要对读取的数据集合进行运算,因此SQL语句可能包括一个或多个数据库的算子,不同SQL语句包含的算子不同,不同算子在CPU和GPU处理的性能不同,针对SQL语句如何选择最优执行路径相应也考虑到算子的特征。数据库中的主要算子包括:数据读取操作、条件过滤操作、连接操作、集合操作、Group by(分组)操作、Distinct(去重)操作、聚合操作和排序操作等。其中,条件过滤操作可以是针对数据表的,也可以是针对子查询的,还可能带有过滤条件;所述集合操作包括交、并、差等运算。
通过对算子在不同处理器中的执行成本进行估计,可确定该查询语句在不同处理器处理的资源消耗情况,从而便于选择执行该查询语句的处理器。
参照图1,示出了本申请实施例的一种数据处理方法实施例的步骤流程图。
步骤102,对所述查询语句对应的算子进行估计,确定所述算子在不同处理器的执行成本。
每个查询语句对应一个或多个算子,可估计每个算子在各处理器的执行成本,其中,所述执行成本指的是算子在一个处理器中执行所消耗的资源,执行成本可以时间为单位,处理器可包括CPU和GPU。本申请实施例主要以CPU、GPU作为处理器进行说明,实际处理中,处理器还可包括FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)、AI(Artificial Intelligence,人工智能)芯片等能够进行数据处理的处理器。其中,AI芯片也被称为AI加速器或计算卡,可以指用于处理人工智能应用中的大量计算任务的模块。
一个可选实施例中,所述对所述查询语句对应的算子进行估计,确定所述算子对应的执行成本,包括:按照处理器,确定所述算子的计算代价和数据获取代价;依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本。可以按照处理器进行算子的估算,确定该算子在不同处理器执行时的执行成本,其中,针对每个处理器,可分别估算该算子的计算代价和数据获取代价,其中,计算代价指的是处理器执行算子的运算对应的代价,数据获取代价指的是要把数据从下层节点拉取到上层节点的代价。然后将计算代价和数据获取代价相加求和,可作为该算子在该处理的执行成本。
本申请实施例中,查询语句中算子可选择在任何处理器端执行,因此可有多种中不同的排列组合方案。则算子的执行代价(以时间为代为)可表示为:
OpCost=ComputeCost+DataCost
其中,ComputeCost为计算代价,DataCost为数据获取代价。
计算代价与以下几点因素相关:一方面是处理器(包括CPU、GPU、FPGA、AI芯片等)本身的性能,不同型号的处理器有所区别;一方面,与数据量和数据的分布相关;另一方面,也与算子本身的特征相关。该计算代价的函数可以表示为:
ComputeCost=CostEst(processor,dataMeta,operation)
其中,processor为处理器参数,dataMeta为数据参数,operation为算子特征参数。由于系统的复杂性以及一些参数的不确定性,比较难以准确预测算子的计算代价。并且,算子的性能也与该算子的具体实现方案有关。
因此,本申请实施例可基于线性拟合的方式对不同算子在CPU、GPU等处理器上的性能进行预测。一个可选实施例中,确定所述算子的计算代价的步骤包括:确定所述算子对应数据量和选择的线性模型;将所述数据量输入所述线性模型,确定所述算子的计算代价。可通过线性拟合的创建线性模型并通过模型训练得到用于确定算子的计算代价的线性模型,其中,基于不同数据量情况下的算子性能和线性拟合确定线性模型。针对某一算子估算计算代价时,可选择所选的线性模型,并确定该算子对应的数据量,将所述数据量作为输入数据输入到线性模型中,得到输出结果为该算子的计算代价。
对于数据获取代价,主要是要把数据从下层节点拉取到上层节点的代价。一个可选实施例中,确定所述算子的数据获取代价的步骤包括:将读取的数据量和系统磁盘的读取带宽之间的比值,作为所述算子的数据获取代价;和/或,将读取的数据量和总线的读取带宽之间的比值,与所述总线传输的固定成本的和值,作为所述算子的数据获取代价。
其中,如果下层节点是表的扫描,那么对于CPU而言,数据获取代价是:
DataCost=DataSize/IOBandwidth
其中,DataSize是本次读取的数据量,在数据库中可通过扫描表的元数据准确获知该参数;IOBandwidth是系统磁盘的读取带宽,该参数可以通过系统性能测试获取。
从而对于CPU可确定算子读取的数据量以及系统磁盘的读取带宽,计算两者的比值来确定数据获取代价。
如果是在GPU端执行,则还需要把数据从CPU端传输到GPU端,因此GPU端执行对应的数据获取代价是:
DataCost=DataSize/PCIeBandwidth+Cost0
其中,DataSize是本次读取的数据量,在数据库中可通过扫描表的元数据准确获知该参数;PCIeBandwith是PCIe总线的读取带宽,该参数为已知系统参数;Cost0是指PCIe总线每次传输的固定成本,与传输的数据量无关,可以通过系统测试获得。PCIe(Peripheral Component Interconnect express)是一种高速串行计算机扩展总线。
从而可确定出算子的计算代价和数据获取代价,从而得到该算子对应的执行成本,包括算子在第一处理器执行的第一执行成本,算子在第二处理器执行的第二执行成本等。
步骤104,依据所述处理器的压力数据和所述算子在不同处理器的执行成本,确定执行所述查询语句的处理器。
可根据处理器的压力数据,以及算子在不同处理器的执行成本,确定出执行所述查询语句的处理器,如SQL语句在GPU端执行还是GPU端执行,或者按照一定的执行路径将查询语句中不同算子在不同处理器中执行等。
为了便于对处理器的压力进行衡量,可为各处理器分别设置压力阈值,压力阈值可根据实际的处理器、需求等设置。例如,CPU可以CPU利用率为指标设置压力阈值,GPU可以GPU利用率和/或显存利用率为指标设置压力阈值等。基于压力数据和压力阈值的比较,确定处理器的压力状态,如压力数据超过压力阈值的处理器压力较大,而压力数据未超过压力阈值的处理器压力正常或较小等。
本申请一个可选实施例中,所述依据所述处理器的压力数据和所述算子在不同处理器的执行成本,确定执行所述查询语句的处理器,包括:若所述不同处理器的压力数据满足第一压力条件,则根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器;若所述不同处理器的压力数据满足第二压力条件,则依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句。
第一压力条件可看作压力均衡情况下的条件,在各处理器的压力比较均衡,如各处理器(CPU、GPU、FPGA、AI芯片等)的压力数据均高于或低于压力阈值,则可根据算子在不同处理器的执行代价,选择出一条执行代价较小的执行路径,该执行路径中不同算子对应路段可选择执行代价小的处理器执行,从而确定出执行该查询语句的一个或多个处理器共同执行。
第二压力条件可看作压力不均衡情况下的条件,也就是一个处理器的压力比较大,而另一个处理器的压力相对较小,如一个处理器压力数据超过压力阈值,而另一个处理器压力数据小于压力阈值,这种情况下,可优先选择压力比较小的处理器作为目标处理器,来执行该查询语句。另外一些可选实施例中,在该种情况下,如果该压力较小的处理器执行该查询语句的成本和压力较大的处理器执行该查询语句的成本相比,小于一定的阈值如2,则可选择该压力较小的处理器,若是大于该阈值,则可选择压力较大的处理器。
例如,当CPU压力过大、GPU压力较小时,优先考虑用GPU进行执行;对于GPU执行代价小于CPU执行代价2倍的SQL,均使用GPU进行执行;当GPU压力过大、CPU压力较小时,优先考虑用CPU进行执行;对于CPU执行代价小于GPU执行代价2倍的SQL,均使用CPU进行执行。
本申请实施例中,一条SQL语句可对应一颗查询树,不同SQL语句所对应查询树的结构不同,查询树包括根节点和叶节点,每颗查询树的根节点对应所述查询语句的结果返回操作,也就是向查询的数据库客户端返回数据,叶节点对应所述查询语句中针对数据库的查询操作。其中,针对上述算子而言,集合操作和连接操作在查询树中的节点可对应一个或多个子节点,其他操作在查询树中的节点通常只有一个子节点。一个叶节点可为父节点和/或子节点,查询树中,每个节点向子节点索取数据,然后进行计算之后把计算结果推到父节点,当一个节点无法再从子节点获取数据,该节点执行完成,当所有节点执行完成,SQL查询完成、返回数据。
基于该查询树可便于确定执行路径,从而便于选择执行查询语句的处理器。因此在一些可选实施例中,还包括:确定查询语句对应的查询树。查询语句包括SQL语句或其他结构化的数据库查询语句,针对一个查询语句,可确定该查询语句对应的查询树,其中,可基于查询语句所需执行的数据库操作确定对应的查询树,查询树中某一个节点可向其子节点索取数据,然后进行计算之后把计算结果推到其父节点。本申请实施例可设置一优化器,进行查询语句对应处理器的优化选择,该优化器可为服务器(集群)等电子设备,也可为软件编写的程序等。
在确定出查询树之后,还可依据所述算子在不同处理器的执行成本,确定所述查询树在不同处理器的执行性能信息。在本分别计算出查询语句对应各算子在各处理器中的执行成本后,可根据处理器分别计算查询树在不同处理器的执行性能信息,如按照各算子在CPU端的执行成本累加,得到查询树在CPU端的执行性能信息,按照各算子在GPU端的执行成本累加,得到该查询树在GPU端的执行性能信息等。
本申请一个可选实施例中,所述依据所述算子的执行成本,确定所述查询树的执行性能信息,包括:按照处理器对所述算子的执行成本进行累加,得到所述查询树对应所述处理器的执行性能信息。分别以某一种处理器为基准,将算子在该处理器执行的执行成本进行累加,得到查询树在该处理器上执行的执行性能信息,如包括第一处理器的第一执行性能信息和第二处理器的第二执行性能信息等。
估测完查询语句的每个算子的执行代价之后,优化器可对查询树进行扫描,以便在查询树中选择最佳的执行路径。但是,考虑到查询树可能的执行路径的数量是指数级的,若对每条路径都进行评估则数据量非常大。因此,在一些可选实施例中,优化器可基于经验等设置优化的规则,采用设定规则对搜索空间进行剪枝,融合算子从而优化查询树。因此还可按照设定规则对所述查询树对应的节点进行融合,所述设定规则包括:所述查询树中相邻两个节点对应算子支持算子融合,且所述两个算子在GPU的执行成本低于在CPU的执行成本。也就是说,对于查询树中相邻两个节点,如果这两个节点对应的算子支持算子融合,且所述两个算子在GPU的执行成本低于在CPU的执行成本,则可执行相应的算子融合处理,并将查询树所述两个节点进行合并。
在另外一些可选实施例中,可依据算子的执行成本对所述算子及其对应节点进行标识。其中,如果某个算子对应节点的父节点和子节点在GPU端执行成本均低于在CPU端的执行成本,则可将算子对应的节点标记为适合在GPU端执行。对于标记为合适在GPU端执行的节点、算子,可按照上述方式进行算子融合的判断以及相应的处理。
本申请实施例中,算子融合处理可为迭代式算法,逐层向上进行迭代,直到无法继续融合或者已经达到指定的迭代次数。从而经过多次迭代融合,可以优化该查询树,实现搜索空间的剪枝,减少数据量从而提高处理效率。
并且,查询树中节点的数据源可能是子查询,也就是从下一层节点的查询结果,也可能为数据库的表,也就是直接从数据库的表查询数据。对于直接查询表的数据读取操作,如果过滤条件可以下推至索引层,该节点会下推到索引层,不会选择在GPU端执行。
针对优化的查询树,在整体上,每个查询树可按照每种处理器,分别将算子的执行成本进行累加得到给处理器对应的执行性能信息。在计算GPU对应执行性能信息时,对于完成GPU端算子融合的部分,其算子的计算代价减半,数据传输代价可不再进行计算,从而通过融合也可减少执行成本。对于未进行融合的算子,如果该算子在CPU端的执行成本小于在GPU端的执行成本,则该算子将不会在GPU端执行,因此要按照CPU的执行成本进行估计。
本申请实施例中,融合指的是将查询数据中相邻的两个或更多节点合并为一个节点。本申请实施例中,每个节点的执行成本具有相应的计算公式,该计算公式可内置在数据库中,融合后的节点可按照相应的计算公式重新计算执行成本。
从而查询树在GPU端的执行性能信息,可在算子融合处理进行查询树的剪枝后定,再确定出查询树在不同处理器执行时各自的执行性能信息。
在确定查询树各路径的执行成本,以及查询树在不同处理器的执行性能后,可结合处理器的实时压力,选择执行查询语句的处理器。
针对压力均衡的情况,在一些可选实施例中,所述根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器,包括:依据所述算子在所述查询树中对应的节点和所述算子在不同处理器的执行成本,确定对应的执行路径;按照所述执行路径,确定执行所述查询语句的处理器。针对不同处理器的压力比较均衡的情况下,可以依据算子的执行成本来选择处理器,因此可集合查询树中算子对应的节点,和算子的执行成本,在查询树中确定各路径的执行成本,从而选择出执行成本比较小的路径,则对于有算子融合的路径可采用融合后的执行成本,从而在确定出执行成本较小的路径的同时,也确定出该路径对应的处理器,基于该查询语句的执行路径,可确定出执行该查询语句的至少一个处理器。
针对压力不均衡的情况,在一些示例中,可以直接选择压力较小的处理器作为目标处理器来执行查询语句,在另外一些示例中,也可均衡考虑处理器执行查询语句的成本,则可确定两种处理器对应的执行性能信息的比值,如果该比值小于比例阈值,则可选择压力较小的处理器为目标处理器来执行查询语句,若该比值大于比例阈值,则可选择压力相对较大的处理器作为目标处理器来执行查询语句。因此在一些可选实施例中,所述依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句,包括:将压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句;或,对于压力数据未超过阈值的处理器,若查询语句在该处理器的执行性能信息和另一处理器的执行性能信息的比值小于比例阈值,则将所述压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句。
从而可结合处理器的压力、查询语句在各处理器执行的成本等来选择合适的处理器,提高系统资源的利用率,可应用到各种多处理器的设备以及场景中。
在另外一些实施例中,可基于查询树、算子等确定SQL在不同处理器所消耗的性能信息,来选择SQL的执行路径,确定所需的处理器,能够合理利用数据库资源。
参照图2,示出了本申请实施例的另一种数据处理方法实施例的步骤流程图。
步骤202,确定查询语句对应的查询树。
查询语句包括SQL语句或其他结构化的数据库查询语句,针对一个查询语句,可确定该查询语句对应的查询树,其中,可基于查询语句所需执行的数据库操作确定对应的查询树,查询树中某一个节点可向其子节点索取数据,然后进行计算之后把计算结果推到其父节点。
步骤204,对所述查询语句对应的算子进行估计,确定所述算子对应的执行成本。
每个查询语句对应一个或多个算子,每个算子也在该查询语句对应的查询树的节点具有对应关系,因此可通过算子的执行成本确定估算查询树在不同处理器的执行性能,从而执行查询语句的处理器,其中,处理器可包括CPU、GPU、FPGA、AI芯片等,具体可依据场景确定。
可确定该查询语句对应的算子,然后对每个算子分别进行估算,得到所述算子的执行成本,所述执行成本指的是算子在一个处理器中执行所消耗的资源,执行成本可以时间为单位。
一个可选实施例中,所述对所述查询语句对应的算子进行估算,确定所述算子对应的执行成本,包括:按照处理器,确定所述算子的计算代价和数据获取代价;依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本。可以按照处理器进行算子的估算,确定该算子在不同处理器执行时的执行成本,其中,针对每个处理器,可分别估算该算子的计算代价和数据获取代价,其中,计算代价指的是处理器执行算子的运算对应的代价,数据获取代价指的是要把数据从下层节点拉取到上层节点的代价。然后将计算代价和数据获取代价相加求和,可作为该算子在该处理的执行成本。
本申请实施例中,查询树中的任意节点,都可以选择在CPU端、GPU端、FPGA或AI芯片等处理器执行。因此,对于一条有N个节点的树,就有2N种不同的选择的执行代价,同时共有2N种不同的排列组合方案。则算子的执行代价(以时间为代为)可表示为:
OpCost=ComputeCost+DataCost
其中,ComputeCost为计算代价,DataCost为数据获取代价。
计算代价与以下几点因素相关:一方面是处理器(包括CPU、GPU、FPGA、AI芯片等)本身的性能,不同型号的处理器有所区别;一方面,与数据量和数据的分布相关;另一方面,也与算子本身的特征相关。该计算代价的函数可以表示为:
ComputeCost=CostEst(processor,dataMeta,operation)
其中,processor为处理器参数,dataMeta为数据参数,operation为算子特征参数。由于系统的复杂性以及一些参数的不确定性,比较难以准确预测算子的计算代价。并且,算子的性能也与该算子的具体实现方案有关。
因此,本申请实施例可基于线性拟合的方式对不同算子在CPU和GPU上的性能进行预测。一个可选实施例中,确定所述算子的计算代价的步骤包括:确定所述算子对应数据量和选择的线性模型;将所述数据量输入所述线性模型,确定所述算子的计算代价。可通过线性拟合的创建线性模型并通过模型训练得到用于确定算子的计算代价的线性模型,其中,基于不同数据量情况下的算子性能和线性拟合确定线性模型。针对某一算子估算计算代价时,可选择所选的线性模型,并确定该算子对应的数据量,将所述数据量作为输入数据输入到线性模型中,得到输出结果为该算子的计算代价。
对于数据获取代价,主要是要把数据从下层节点拉取到上层节点的代价。一个可选实施例中,确定所述算子的数据获取代价的步骤包括:将读取的数据量和系统磁盘的读取带宽之间的比值,作为所述算子的数据获取代价;和/或,将读取的数据量和总线的读取带宽之间的比值,与所述总线传输的固定成本的和值,作为所述算子的数据获取代价。
其中,如果下层节点是表的扫描,那么对于CPU而言,数据获取代价是:
DataCost=DataSize/IOBandwidth
其中,DataSize是本次读取的数据量,在数据库中可通过扫描表的元数据准确获知该参数;IOBandwidth是系统磁盘的读取带宽,该参数可以通过系统性能测试获取。
从而对于CPU可确定算子读取的数据量以及系统磁盘的读取带宽,计算两者的比值来确定数据获取代价。
如果是在GPU端执行,则还需要把数据从CPU端传输到GPU端,因此GPU端执行对应的数据获取代价是:
DataCost=DataSize/PCIeBandwidth+Cost0
其中,DataSize是本次读取的数据量,在数据库中可通过扫描表的元数据准确获知该参数;PCIeBandwith是PCIe总线的读取带宽,该参数为已知系统参数;Cost0是指PCIe总线每次传输的固定成本,与传输的数据量无关,可以通过系统测试获得。PCIe(Peripheral Component Interconnect express)是一种高速串行计算机扩展总线。
从而可确定出算子的计算代价和数据获取代价,从而得到该算子对应的执行成本,包括算子在第一处理器执行的第一执行成本,算子在第二处理器执行的第二执行成本等。
步骤206,依据所述算子的执行成本,确定所述查询树的执行性能信息。
在本分别计算出查询语句对应各算子在各处理器中的执行成本后,可根据处理器分别计算查询树在不同处理器的执行性能信息,如按照各算子在CPU端的执行成本累加,得到查询树在CPU端的执行性能信息,按照各算子在GPU端的执行成本累加,得到该查询树在GPU端的执行性能信息等。
本申请一个可选实施例中,所述依据所述算子的执行成本,确定所述查询树的执行性能信息,包括:按照处理器对所述算子的执行成本进行累加,得到所述查询树对应所述处理器的执行性能信息。分别以某一种处理器为基准,将算子在该处理器执行的执行成本进行累加,得到查询树在该处理器上执行的执行性能信息,如包括第一处理器的第一执行性能信息和第二处理器的第二执行性能信息等。
估测完查询语句的每个算子的执行代价之后,优化器可对查询树进行扫描,以便在查询树中选择最佳的执行路径。但是,考虑到查询树可能的执行路径的数量是指数级的,若对每条路径都进行评估则数据量非常大。因此,在一些可选实施例中,优化器可基于经验等设置优化的规则,采用设定规则对搜索空间进行剪枝,融合算子从而优化查询树。因此在步骤204之后还可按照设定规则对所述查询树对应的节点进行合并,所述设定规则包括:所述查询树中相邻两个节点对应算子支持算子融合,且所述两个算子在GPU的执行成本低于在CPU的执行成本。也就是说,对于查询树中相邻两个节点,如果这两个节点对应的算子支持算子融合,且所述两个算子在GPU的执行成本低于在CPU的执行成本,则可执行相应的算子融合处理,并将查询树所述两个节点进行合并。
在另外一些可选实施例中,可依据算子的执行成本对所述算子及其对应节点进行标识。其中,如果某个算子对应节点的父节点和子节点在GPU端执行成本均低于在CPU端的执行成本,则可将算子对应的节点标记为适合在GPU端执行。对于标记为合适在GPU端执行的节点、算子,可按照上述方式进行算子融合的判断以及相应的处理。
本申请实施例中,算子融合处理可为迭代式算法,逐层向上进行迭代,直到无法继续融合或者已经达到指定的迭代次数。从而经过多次迭代融合,可以优化该查询树,实现搜索空间的剪枝,减少数据量从而提高处理效率。
并且,查询树中节点的数据源可能是子查询,也就是从下一层节点的查询结果,也可能为数据库的表,也就是直接从数据库的表查询数据。对于直接查询表的数据读取操作,如果过滤条件可以下推至索引层,该节点会下推到索引层,不会选择在GPU端执行。
针对优化的查询树,可按照上述步骤206进行执行性能信息的确定过程。其中,在整体上,每个查询树可按照每种处理器,分别将算子的执行成本进行累加得到给处理器对应的执行性能信息。在计算GPU对应执行性能信息时,对于完成GPU端算子融合的部分,其算子的计算代价减半,数据传输代价可不再进行计算,从而通过融合也可减少执行成本。对于未进行融合的算子,如果该算子在CPU端的执行成本小于在GPU端的执行成本,则该算子将不会在GPU端执行,因此要按照CPU的执行成本进行估计。
本申请实施例中,融合指的是将查询数据中相邻的两个或更多节点合并为一个节点。本申请实施例中,每个节点的执行成本具有相应的计算公式,该计算公式可内置在数据库中,融合后的节点可按照相应的计算公式重新计算执行成本。从而查询树在GPU端的执行性能信息,可在算子融合处理进行查询树的剪枝后再确定。能够确定出查询树在不同处理器执行时各自的执行性能信息。
在步骤206之后,还可依据所述处理器的压力数据和所述执行性能信息,确定执行所述查询语句的处理器。
确定出查询树在不同处理器对应的执行性能信息后,可需要根据系统的实时压力数据,确定执行所述查询语句的处理器,如SQL语句在GPU端执行还是GPU端执行。本申请实施例可为各处理器分别设置压力阈值,压力阈值可根据实际的处理器、需求等设置。例如,CPU可以CPU利用率为指标设置压力阈值,GPU以GPU利用率和/或显存利用率为指标设置压力阈值等。根据该压力阈值可确定对应处理器的压力状态,从而选择该查询语句对应的处理器。
如果各处理器的压力比较均衡,如CPU和GPU压力均低于阈值,或者CPU和GPU压力都高于阈值等情况,则可根据算子在不同处理器的执行代价,在查询树中选择执行代价较小的那条执行路径。
若一个处理器压力数据超过压力阈值,而另一个处理器压力数据小于压力阈值,则选择压力数据小于压力阈值的处理器执行该查询语句。
如果查询语句在目标处理器执行的执行性能信息小于在另一个处理器的执行性能信息达到设定阈值,则可选择所述目标处理器执行所述查询语句。例如,当CPU压力过大、GPU压力较小时,优先考虑用GPU进行执行;对于GPU执行代价小于CPU执行代价2倍的SQL,均使用GPU进行执行;当GPU压力过大、CPU压力较小时,优先考虑用CPU进行执行;对于CPU执行代价小于GPU执行代价2倍的SQL,均使用CPU进行执行。
在上述实施例的基础上,本申请实施例还提供了一种数据处理方法,能够合理的选择查询语句的处理器。
参照图3,示出了本申请实施例的又一种数据处理方法实施例的步骤流程图。
步骤302,按照处理器,确定所述算子的计算代价和数据获取代价。其中,对计算代价:可确定所述算子对应数据量和选择的线性模型;将所述数据量输入所述线性模型,确定所述算子的计算代价。将读取的数据量和系统磁盘的读取带宽之间的比值,作为所述算子的数据获取代价;和/或,将读取的数据量和总线的读取带宽之间的比值,与所述总线传输的固定成本的和值,作为所述算子的数据获取代价,则针对不同处理器可选择不同方式确定数据传输代价。
步骤304,依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本。
步骤306,确定查询语句对应的查询树。
步骤308,按照设定规则,对所述查询树中节点进行融合。融合后重新确定对应算子的执行成本。
步骤310,依据所述算子在不同处理器的执行成本,确定所述查询树在不同处理器的执行性能信息。其中,可按照处理器对所述算子的执行成本进行累加,得到所述查询树对应所述处理器的执行性能信息。
步骤312,判断不同处理器的压力数据所满足的压力条件。若满足第一压力条件,则执行步骤314;若满足第二压力条件,则执行步骤316。
步骤314,根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器。其中,依据所述算子在所述查询树中对应的节点和所述算子在不同处理器的执行成本,确定对应的执行路径;按照所述执行路径,确定执行所述查询语句的处理器。
步骤316,依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句。其中,将压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句;或,对于压力数据未超过阈值的处理器,若查询语句在该处理器的执行性能信息和另一处理器的执行性能信息的比值小于比例阈值,则将所述压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句。
上述是本申请实施例的一种示例,还可按照其他顺序执行上述各步骤,如执行步骤302、304后执行步骤306,又如先执行步骤306而后执行步骤302、304等,本申请实施例对此不做限制。
本申请实施例可综合考虑处理器的实时压力、算子本身的特征等进行查询语句对应处理器的选择,从而合理的利用数据库的资源;并且在算子执行成本的计算中,还考虑到了不同处理器之间数据传输的成本,使得成本的估计更加准确;针对查询树,还可基于算子的特征、执行成本等进行融合,从而减少数据量,提高处理效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
在上述实施例的基础上,本实施例还提供了一种数据处理装置,应用于数据库、服务器(集群)等电子设备中,电子设备的处理器可包括CPU、GPU、FPGA、AI芯片等。
参照图4,示出了本申请的一种数据处理装置实施例的结构框图,具体可以包括如下模块:
成本估计模块402,用于对所述查询语句对应的算子进行估计,确定所述算子在不同处理器的执行成本;
处理器选择模块404,用于依据所述处理器的压力数据和所述算子在不同处理器的执行成本,确定执行所述查询语句的处理器。
综上,可对查询查询语句对应的算子进行估计,确定所述算子在不同处理器的执行成本,然后可结合处理器的压力数据和算子在不同处理器的执行成本,确定执行所述查询语句的处理器,合理的选择查询语句的处理器,提高数据库的资源利用率。
参照图5,示出了本申请的一种数据处理装置可选实施例的结构框图,具体可以包括如下模块:
成本估计模块402,用于对所述查询语句对应的算子进行估计,确定所述算子在不同处理器的执行成本;
树确定模块406,用于确定查询语句对应的查询树。
融合模块408,用于按照设定规则,对所述查询树中节点进行融合。
性能确定模块410,用于依据所述算子在不同处理器的执行成本,确定所述查询树在不同处理器的执行性能信息。
处理器选择模块404,用于依据所述处理器的压力数据和所述算子在不同处理器的执行成本,确定执行所述查询语句的处理器。
其中,所述成本估计模块402,用于按照处理器,确定所述算子的计算代价和数据获取代价;依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本。
一个可选实施例中,所述成本估计模块402,用于确定所述算子对应数据量和选择的线性模型;将所述数据量输入所述线性模型,确定所述算子的计算代价。
另一个可选实施例中,所述成本估计模块402,用于读取的数据量和系统磁盘的读取带宽之间的比值;和/或,读取的数据量和总线的读取带宽之间的比值,与所述总线传输的固定成本的和值。
所述处理器选择模块404,包括:路径选择子模块4042和目标选择子模块4044,其中:
路径选择子模块4042,用于若所述不同处理器的压力数据满足第一压力条件,则根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器;
目标选择子模块4044,用于若所述不同处理器的压力数据满足第二压力条件,则依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句。
其中,所述性能确定模块408,用于按照处理器对所述算子的执行成本进行累加,得到所述查询树对应所述处理器的执行性能信息。
一个可选实施例中,所述路径选择子模块4042,用于依据所述算子在所述查询树中对应的节点和所述算子在不同处理器的执行成本,确定对应的执行路径;按照所述执行路径,确定执行所述查询语句的处理器。
另一个可选实施例中,所述目标选择子模块4044,用于将压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句;或,对于压力数据未超过阈值的处理器,若查询语句在该处理器的执行性能信息和另一处理器的执行性能信息的比值小于比例阈值,则将所述压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句。
从而可结合处理器的压力、查询语句在各处理器执行的成本等来选择合适的处理器,提高系统资源的利用率。
在上述实施例的基础上,本实施例还提供了一种数据处理装置,应用于终端设备、服务器等电子设备中,电子设备的处理器可包括CPU、GPU、FPGA、AI芯片等。
参照图6,示出了本申请的另一种数据处理装置实施例的结构框图,具体可以包括如下模块:
查询树确定模块602,用于确定查询语句对应的查询树。
执行成本估计模块604,用于对所述查询语句对应的算子进行估算,确定所述算子对应的执行成本。
执行性能确定模块606,用于依据所述算子的执行成本,确定所述查询树的执行性能信息。
参照图7,示出了本申请的另一种数据处理装置可选实施例的结构框图,具体可以包括如下模块:
查询树确定模块602,用于确定查询语句对应的查询树。
执行成本估计模块604,用于对所述查询语句对应的算子进行估算,确定所述算子对应的执行成本。
节点融合模块610,用于按照设定规则,对所述查询树对应的节点进行融合。
执行性能确定模块606,用于依据所述算子的执行成本,确定所述查询树的执行性能信息。
处理器确定模块608,用于依据所述处理器的压力数据和所述执行性能信息,确定执行所述查询语句的处理器。
其中,所述执行成本估计模块604,用于按照处理器,确定所述算子的计算代价和数据获取代价;依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本。
一个可选实施例中,所述执行成本估计模块604,用于确定所述算子对应数据量和选择的线性模型;将所述数据量输入所述线性模型,确定所述算子的计算代价。
另一个可选实施例中,所述执行成本估计模块604,用于将读取的数据量和系统磁盘的读取带宽之间的比值,作为所述算子的数据获取代价;和/或,将读取的数据量和总线的读取带宽之间的比值,与所述总线传输的固定成本的和值,作为所述算子的数据获取代价。
所述处理器确定模块608,用于若所述不同处理器的压力数据满足第一压力条件,则根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器;若所述不同处理器的压力数据满足第二压力条件,则依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句。
执行性能确定模块606,用于按照处理器对所述算子的执行成本进行累加,得到所述查询树对应所述处理器的执行性能信息。
一个可选实施例中,所述处理器确定模块608,用于依据所述算子在所述查询树中对应的节点和所述算子在不同处理器的执行成本,确定对应的执行路径;按照所述执行路径,确定执行所述查询语句的处理器。
另一个可选实施例中,所述处理器确定模块608,用于将压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句;或,对于压力数据未超过阈值的处理器,若查询语句在该处理器的执行性能信息和另一处理器的执行性能信息的比值小于比例阈值,则将所述压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句。
本申请实施例可综合考虑处理器的实时压力、算子本身的特征等进行查询语句对应处理器的选择,从而合理的利用数据库的资源;并且在算子执行成本的计算中,还考虑到了不同处理器之间数据传输的成本,使得成本的估计更加准确;针对查询树,还可基于算子的特征、执行成本等进行融合,从而减少数据量,提高处理效率。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括终端设备、服务器(集群)、数据库等各类型的设备。
本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括终端设备、服务器(集群)、数据库等电子设备。图8示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置800。
对于一个实施例,图8示出了示例性装置800,该装置具有一个或多个处理器802、被耦合到(一个或多个)处理器802中的至少一个的控制模块(芯片组)804、被耦合到控制模块804的存储器806、被耦合到控制模块804的非易失性存储器(NVM)/存储设备808、被耦合到控制模块804的一个或多个输入/输出设备810,以及被耦合到控制模块804的网络接口812。
处理器802可包括一个或多个单核或多核处理器,处理器802可包括通用处理器或专用处理器(例如CPU、GPU、应用处理器、基频处理器、FPGA、AI芯片等)的任意组合。在一些实施例中,装置800能够作为本申请实施例中所述终端设备、服务器(集群)、数据库等设备。
在一些实施例中,装置800可包括具有指令814的一个或多个计算机可读介质(例如,存储器806或NVM/存储设备808)以及与该一个或多个计算机可读介质相合并被配置为执行指令814以实现模块从而执行本公开中所述的动作的一个或多个处理器802。
对于一个实施例,控制模块804可包括任意适当的接口控制器,以向(一个或多个)处理器802中的至少一个和/或与控制模块804通信的任意适当的设备或组件提供任意适当的接口。
控制模块804可包括存储器控制器模块,以向存储器806提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
存储器806可被用于例如为装置800加载和存储数据和/或指令814。对于一个实施例,存储器806可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器806可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,控制模块804可包括一个或多个输入/输出控制器,以向NVM/存储设备808及(一个或多个)输入/输出设备810提供接口。
例如,NVM/存储设备808可被用于存储数据和/或指令814。NVM/存储设备808可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备808可包括在物理上作为装置800被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,NVM/存储设备808可通过网络经由(一个或多个)输入/输出设备810进行访问。
(一个或多个)输入/输出设备810可为装置800提供接口以与任意其他适当的设备通信,输入/输出设备810可以包括通信组件、音频组件、传感器组件等。网络接口812可为装置800提供接口以通过一个或多个网络通信,装置800可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi、2G、3G、4G、5G等,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器802中的至少一个可与控制模块804的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器802中的至少一个可与控制模块804的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器802中的至少一个可与控制模块804的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器802中的至少一个可与控制模块804的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,装置800可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置800可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置800包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或NVM/存储设备中,传感器组可作为输入/输出设备,通信接口可包括包括网络接口。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种数据处理方法和装置,一种电子设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (17)
1.一种数据处理方法,其特征在于,所述方法包括:
按照处理器,确定算子的计算代价和数据获取代价;
依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本;
若不同处理器的压力数据满足第一压力条件,则根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行查询语句的处理器,所述第一压力条件为压力均衡情况下的条件;
若所述不同处理器的压力数据满足第二压力条件,则依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句,所述第二压力条件为压力不均衡情况下的条件。
2.根据权利要求1所述的方法,其特征在于,所述确定所述算子的计算代价的步骤包括:
确定所述算子对应数据量和选择的线性模型;
将所述数据量输入所述线性模型,确定所述算子的计算代价。
3.根据权利要求1所述的方法,其特征在于,确定所述算子的数据获取代价的步骤包括:
将读取的数据量和系统磁盘的读取带宽之间的比值,作为所述算子的数据获取代价;和/或,
将读取的数据量和总线的读取带宽之间的比值,与所述总线传输的固定成本的和值,作为所述算子的数据获取代价。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定查询语句对应的查询树。
5.根据权利要求4所述的方法,其特征在于,还包括:
依据所述算子在不同处理器的执行成本,确定所述查询树在不同处理器的执行性能信息。
6.根据权利要求5所述的方法,其特征在于,依据所述算子在不同处理器的执行成本,确定所述查询树在不同处理器的执行性能信息,包括:
按照处理器对所述算子的执行成本进行累加,得到所述查询树对应所述处理器的执行性能信息。
7.根据权利要求5所述的方法,其特征在于,还包括:
按照设定规则,对所述查询树中节点进行融合。
8.根据权利要求4或7所述的方法,其特征在于,所述根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器,包括:
依据所述算子在所述查询树中对应的节点和所述算子在不同处理器的执行成本,确定对应的执行路径;
按照所述执行路径,确定执行所述查询语句的处理器。
9.根据权利要求6所述的方法,其特征在于,所述依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句,包括:
将压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句;或,
对于压力数据未超过阈值的处理器,若查询语句在该处理器的执行性能信息和另一处理器的执行性能信息的比值小于比例阈值,则将所述压力数据未超过阈值的处理器作为目标处理器,采用所述目标处理器执行该查询语句。
10.一种数据处理方法,其特征在于,所述方法包括:
确定查询语句对应的查询树,其中,每个查询语句对应一个或多个算子;
按照处理器,确定所述算子的计算代价和数据获取代价;
依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本;
依据所述算子的执行成本,确定所述查询树的执行性能信息;
若不同处理器的压力数据满足第一压力条件,则根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器,所述第一压力条件为压力均衡情况下的条件;
若所述不同处理器的压力数据满足第二压力条件,则依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句,所述第二压力条件为压力不均衡情况下的条件。
11.根据权利要求10所述的方法,其特征在于,还包括:
按照设定规则,对所述查询树对应的节点进行融合。
12.一种数据处理装置,其特征在于,所述装置包括:
成本估计模块,用于按照处理器,确定算子的计算代价和数据获取代价;依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本;
处理器选择模块,用于若不同处理器的压力数据满足第一压力条件,则根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行查询语句的处理器,所述第一压力条件为压力均衡情况下的条件;若所述不同处理器的压力数据满足第二压力条件,则依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句,所述第二压力条件为压力不均衡情况下的条件。
13.一种数据处理装置,其特征在于,所述装置包括:
查询树确定模块,用于确定查询语句对应的查询树,其中,每个查询语句对应一个或多个算子;
执行成本估计模块,用于按照处理器,确定所述算子的计算代价和数据获取代价;依据所述计算代价和数据获取代价的和,确定所述算子对应所述处理器的执行成本;
执行性能确定模块,用于依据所述算子的执行成本,确定所述查询树的执行性能信息;
处理器确定模块,用于若不同处理器的压力数据满足第一压力条件,则根据所述算子在不同处理器的执行成本确定执行路径,依据所述执行路径确定执行所述查询语句的处理器,所述第一压力条件为压力均衡情况下的条件;若所述不同处理器的压力数据满足第二压力条件,则依据所述算子在不同处理器的执行成本,选择目标处理器执行所述查询语句,所述第二压力条件为压力不均衡情况下的条件。
14.一种电子设备,其特征在于,包括:处理器;和
存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1-9中一个或多个所述的数据处理方法。
15.一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求1-9中一个或多个所述的数据处理方法。
16.一种电子设备,其特征在于,包括:处理器;和
存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求10-11中一个或多个所述的数据处理方法。
17.一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求10-11中一个或多个所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911013786.XA CN112699140B (zh) | 2019-10-23 | 2019-10-23 | 数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911013786.XA CN112699140B (zh) | 2019-10-23 | 2019-10-23 | 数据处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112699140A CN112699140A (zh) | 2021-04-23 |
CN112699140B true CN112699140B (zh) | 2023-12-26 |
Family
ID=75505299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911013786.XA Active CN112699140B (zh) | 2019-10-23 | 2019-10-23 | 数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112699140B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468220A (zh) * | 2021-09-03 | 2021-10-01 | 苏州浪潮智能科技有限公司 | 一种数据查询方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10326214A (ja) * | 1998-06-22 | 1998-12-08 | Hitachi Ltd | データベース管理システムおよび問合せの処理方法 |
CN1492361A (zh) * | 2002-10-25 | 2004-04-28 | 联想(北京)有限公司 | 嵌入式数据库查询的处理方法 |
CN105210059A (zh) * | 2014-04-04 | 2015-12-30 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
CN109697201A (zh) * | 2018-12-27 | 2019-04-30 | 清华大学 | 一种查询处理的方法、系统、设备及计算机可读存储介质 |
CN110019298A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 数据处理方法和装置 |
CN110069522A (zh) * | 2017-11-10 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 数据查询方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9128984B2 (en) * | 2009-02-02 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Query plan analysis of alternative plans using robustness mapping |
US10452630B2 (en) * | 2016-10-17 | 2019-10-22 | Salesforce.Com, Inc. | Techniques and architectures for reverse mapping of database queries |
-
2019
- 2019-10-23 CN CN201911013786.XA patent/CN112699140B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10326214A (ja) * | 1998-06-22 | 1998-12-08 | Hitachi Ltd | データベース管理システムおよび問合せの処理方法 |
CN1492361A (zh) * | 2002-10-25 | 2004-04-28 | 联想(北京)有限公司 | 嵌入式数据库查询的处理方法 |
CN105210059A (zh) * | 2014-04-04 | 2015-12-30 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
CN110019298A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 数据处理方法和装置 |
CN110069522A (zh) * | 2017-11-10 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 数据查询方法和装置 |
CN109697201A (zh) * | 2018-12-27 | 2019-04-30 | 清华大学 | 一种查询处理的方法、系统、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112699140A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194809B2 (en) | Predicting performance of database queries | |
US10169412B2 (en) | Selectivity estimation for query execution planning in a database | |
US10019478B2 (en) | Mechanism for optimizing parallel execution of queries on symmetric resources | |
CN107122126B (zh) | 数据的迁移方法、装置和系统 | |
US10599648B2 (en) | Optimized storage solution for real-time queries and data modeling | |
CN109521994A (zh) | 乘法硬件电路、片上系统及电子设备 | |
CN108959510B (zh) | 一种分布式数据库的分区级连接方法和装置 | |
WO2016134580A1 (zh) | 一种数据查询方法及装置 | |
CN110704336B (zh) | 一种数据缓存方法及装置 | |
CN114356893A (zh) | 基于机器学习的元数据调优方法、装置、设备及存储介质 | |
US20190294601A1 (en) | Enhancements for optimizing query executions | |
US20160092134A1 (en) | Scalable, multi-dimensional search for optimal configuration | |
CN112699140B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN109656946B (zh) | 一种多表关联查询方法、装置及设备 | |
WO2022111095A1 (zh) | 一种产品推荐方法、装置、计算机存储介质及系统 | |
KR101772333B1 (ko) | 이종 NoSQL 데이터베이스들간의 지능적 조인 전략 제공 방법 및 시스템 | |
US20140310261A1 (en) | Database index profile based weights for cost computation | |
US20210149868A1 (en) | Dynamic index management for computing storage resources | |
CN114996228A (zh) | 一种面向服务器无感知的数据传输成本优化方法 | |
US20120166728A1 (en) | Systems and methods for performing parallel multi-level data computations | |
CN114418059A (zh) | 一种信息处理方法及装置 | |
CN113157541A (zh) | 面向分布式数据库的多并发olap型查询性能预测方法及系统 | |
CN110019068B (zh) | 一种日志文本处理方法和装置 | |
CN117666971B (zh) | 一种工业领域的数据存储方法、装置及设备 | |
CN114904216B (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 |