CN111198766B - 数据库访问操作部署方法、数据库访问方法及装置 - Google Patents
数据库访问操作部署方法、数据库访问方法及装置 Download PDFInfo
- Publication number
- CN111198766B CN111198766B CN202010008481.6A CN202010008481A CN111198766B CN 111198766 B CN111198766 B CN 111198766B CN 202010008481 A CN202010008481 A CN 202010008481A CN 111198766 B CN111198766 B CN 111198766B
- Authority
- CN
- China
- Prior art keywords
- database access
- access operation
- hardware platform
- estimated
- execution time
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库访问操作部署方法、数据库访问方法及装置,该部署方法,包括:获取数据库访问操作;确认所述数据库访问操作的处理场景;在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模;根据所述数据库访问操作的数据规模获取利用多个硬件平台中的每一个执行所述数据库访问操作的预估执行时间;根据各所述硬件平台执行所述数据库访问操作的预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的预估总执行开销;发送所述数据库访问操作,以利用预估总执行开销最小的硬件平台处理所述数据库访问操作。通过上述方案能够提高数据库访问操作的处理效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库访问操作部署方法、数据库访问方法及装置。
背景技术
针对数据库访问的操作,可以有很多对应的硬件进行处理,例如,FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)等,此外,数据库访问操作还可以利用通用处理器CPU进行处理。每一种硬件可以对应不同的处理场景。然而,仅通过利用硬件处理对应场景的数据库访问操作并不能保证数据库访问操作的整体处理效率。
发明内容
本发明提供了一种数据库访问操作部署方法、数据库访问方法及装置,以提高数据库访问操作的处理效率。
为了达到上述目的,本发明采用以下方案实现:
根据本发明实施例的一个方面,提供了一种数据库访问操作部署方法,包括:获取数据库访问操作;确认所述数据库访问操作的处理场景;在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模;根据所述数据库访问操作的数据规模获取利用多个硬件平台中的每一个执行所述数据库访问操作的预估执行时间;根据各所述硬件平台执行所述数据库访问操作的预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的预估总执行开销;发送所述数据库访问操作,以利用预估总执行开销最小的硬件平台处理所述数据库访问操作。
在一些实施例中,所述的数据库访问操作部署方法,还包括:在所述数据库访问操作的处理场景为CPU处理场景的情况下,利用CPU执行所述数据库访问操作。
在一些实施例中,所述硬件平台处理场景包括对原库信息或原表信息的操作,所述CPU处理场景包括对库或表的关系操作。
在一些实施例中,对原库信息或原表信息的操作包括对原库信息或原表信息进行增加、删除、修改或查询的操作;对库或表的关系操作包括对库或表的添加或删除的操作。
在一些实施例中,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模,包括:在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,优化对所述数据库访问操作构建的计算流图;基于优化后的计算流图,估计所述数据库访问操作的数据规模。
在一些实施例中,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,优化对所述数据库访问操作构建的计算流图,包括:在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,对所述数据库访问操作构建计算流图;优化对所述数据库访问操作构建的计算流图。
在一些实施例中,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模,包括:在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,对所述数据库访问操作构建计算流图;基于对所述数据库访问操作构建的计算流图,估计所述数据库访问操作的数据规模。
在一些实施例中,根据所述数据库访问操作的数据规模获取利用多个硬件平台中的每一个执行所述数据库访问操作的预估执行时间,包括:从预先存储的硬件平台和执行时间系数的对应关系中获取各硬件平台的执行时间系数;根据所述数据库访问操作的数据规模和各硬件平台的执行时间系数,得到利用各硬件平台执行所述数据库访问操作的预估执行时间。
在一些实施例中,根据所述数据库访问操作的数据规模和各硬件平台的执行时间系数,得到利用各硬件平台执行所述数据库访问操作的预估执行时间,包括:根据各硬件平台的配置参数将所述数据库访问操作的数据规模分割为相应硬件平台的基本配置对应的数据规模;根据各硬件平台的执行时间系数和其基本配置对应的数据规模,计算得到利用各硬件平台执行所述数据库访问操作的预估执行时间;其中,各硬件平台的执行时间系数为其基本配置对应的执行时间系数。
在一些实施例中,发送所述数据库访问操作之前,数据库访问操作部署方法,还包括:选取预估总执行开销较小的多个硬件平台;根据各硬件平台的配置参数将所述数据库访问操作的数据规模分割为相应硬件平台的基本配置对应的数据规模;根据各硬件平台的执行时间系数和其基本配置对应的数据规模,计算得到利用各硬件平台执行所述数据库访问操作的精细预估执行时间;其中,各硬件平台的执行时间系数为其基本配置对应的执行时间系数;根据各所述硬件平台执行所述数据库访问操作的精细预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的精细预估总执行开销;从选取的多个硬件平台中选择精细预估总执行开销最小的硬件平台,作为预估总执行开销最小的硬件平台。
在一些实施例中,根据各所述硬件平台执行所述数据库访问操作的预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的预估总执行开销之前,还包括:从预先存储的硬件平台和预估数据传输时间对应关系中获取各硬件平台的预估数据传输时间。
在一些实施例中,预估数据传输时间包括传输时间和通信延迟。
根据本发明实施例的另一个方面,提供了一种数据库访问方法,包括:接收SQL语句,并根据所述SQL语句得到数据库访问操作;利用上述任一实施例所述的数据库访问操作部署方法选取硬件平台;发送所述数据库访问操作至选取的硬件平台进行处理;接收选取的硬件平台处理所述数据库访问操作的结果;根据处理所述数据库访问操作的结果输出所述SQL语句的执行结果。
根据本发明实施例的又一个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述方法的步骤。
根据本发明实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
本发明实施例的数据库访问操作部署方法、数据库访问方法、电子设备及计算机可读存储介质,在对数据库访问的执行过程之中,根据处理场景的需求不同,来决定运算硬件,并通过估算各硬件的总体执行开销,选择总体执行开销最小的硬件执行操作,能够提高数据库访问操作的整体处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的数据库访问操作部署方法的流程示意图;
图2是本发明一实施例的数据库访问方法的流程示意图;
图3是本发明一具体实施例的数据库访问操作部署方法的流程示意图;
图4是本发明一具体实施例的数据库访问操作部署方法的代码示例;
图5是本发明一具体实施例中获取数据库操作输入的示例;
图6是本发明一具体实施例中判断处理场景为CPU执行时交付CPU处理的示例;
图7是本发明一具体实施例中获取另一条数据库SQL语句输入的示例;
图8是本发明一具体实施例中估计该操作在各个硬件平台上的执行开销和传输开销的示例;
图9是本发明一具体实施例中累加执行开销和传输开销获取整体开销的示例;
图10是本发明一具体实施例中选取最优硬件平台执行操作的示例。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
需要预先说明的是,下述实施例或示例的描述或其中所提及的特征可以以相同或类似的方式,与其他实施例或示例中的特征组合,或替换其他实施例或示例中的特征,以形成可能的实施方式。另外,本文所使用的术语“包括/包含”是指特征、要素、步骤或组件的存在,但并不排除还存在一个或多个其他特征、要素、步骤或组件。
数据库访问操作对应的处理硬件,具有不同的处理方式、处理效率和处理场景。若在执行操作前对操作执行进行一定规划,根据当前任务的处理场景判断当前任务需要分配到什么硬件资源执行,能够提高当前任务的执行效率。
基于此,本发明提供了一种数据库访问操作部署方法。图1是本发明一实施例的数据库访问操作部署方法的流程示意图,如图1所示,该数据库访问操作部署方法,可包括步骤S110~步骤S160。
下面将对步骤S110至步骤S160的具体实施方式进行详细说明。
步骤S110:获取数据库访问操作。
该步骤S110中,可以利用CPU端软件数据库获取用户从客户端输入的SQL语句。可以认为输入的SQL语句为该数据库访问操作,或者,通过对SQL语句进行解析得到数据库访问操作的具体操作。其中,每个操作可以包括一个或多个操作关键词,例如,包括Select和From,或者,包括Create。
步骤S120:确认所述数据库访问操作的处理场景。
数据库访问操作的处理场景可指操作适于执行的平台。具体可根据需要划分数据库访问操作的处理场景。例如,处理场景可为硬件平台处理场景、CPU处理场景等。CPU适于处理复杂的操作,所以对于CPU处理场景的操作,例如,涉及表关系操作的数据库访问操作,可以交给CPU处理。硬件平台适于高效处理相对单一的操作,所以对于硬件平台处理场景的操作,例如,涉及对原信息进行修改的数据库访问操作,可以交给硬件平台处理,而不同硬件平台的处理方式、处理效率不同,所以可以将不同的数据库访问操作部署到不同的硬件平台。
该步骤S120中,可以根据数据库访问操作所包含的关键词及其操作对象确定该数据库访问操作的处理场景。例如,若数据库访问操作包括Create Table,需要创建表,涉及复杂的表关系处理,可以属于CPU处理场景,所以可以将其交付CPU处理。再例如,若数据库访问操作包括Select,则要从原库或表中查询数据,则可以分配给硬件平台进行批量或并行处理,以提高操作的执行效率。
步骤S130:在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模。
该步骤S130中,所述硬件平台处理场景可包括对原库信息或原表信息的操作。其中,库信息是指数据库信息,可包括为了保证一个数据库的信息完整性、与该数据库有关的各种信息,例如,数据库名称、数据库状态、数据库所包含表的名称、数据库大小等信息中的一个或多个。类似于库信息,表信息是指数据表信息,可包括与表(Table)有关的各种信息,例如,表名称、表大小、列名称、列类型(整型、字符串、可否为空值等等)等信息中的一个或多个。另外,对原库信息或原表信息的操作可以是指对原表信息的操作,因为数据库信息可包含表信息,对于表信息的操作可以影响到库信息。
对原库信息或原表信息的操作,更具体地,可包括对原库信息或原表信息进行增加、删除、修改或查询的操作。对原库信息或原表信息进行增加、删除、修改或查询的操作可以是指对原表信息进行增加、删除、修改或查询的操作,因为库信息可以包括表信息,对表信息的增加、删除、修改、查询会影响库信息。
对表信息的增加、删除、修改或查询的操作分别对应的SQL操作中的insert、delete、update、select操作关键词,即,插入行/列信息、删除行/列信息、修改行/列信息、查找行/列信息。
例如,SQL语句:
SELECT column1,column2,column3 FROM TableA;
代表从TableA中查找column1~3的列信息。再例如,Update语句:
UPDATE TableA
SET column1=value1,column2=value2,column3=value3
WHERE column3<100;
该SQL语句代表令所有column3数值小于100的行信息的数值进行column1=value1,column2=value2,column3=value3的赋值操作。以上所示的SQL语句仅是对表信息增删改查操作的示例,并未代表任何特化的表操作。
另外,对原库信息或原表信息的操作可以是对那些硬件平台能够批量或并行处理的操作,以此便于利用硬件平台提高操作的执行效率。
在另一些实施例中,若通过上述步骤S120确认所述数据库访问操作为其他处理场景,则可以利用其他设备处理该数据库访问操作。
示例性地,上述步骤S120之后,图1所示的数据库访问操作部署方法,还可包括步骤:在所述数据库访问操作的处理场景为CPU处理场景的情况下,利用CPU执行所述数据库访问操作。
该示例中,所述CPU处理场景可包括对库或表的关系操作。对库或表的关系操作可以是指对表的关系操作,因为对表的关系操作会影响库。关系操作涉及表关系的操作。例如,对库或表的关系操作包括对库或表的添加或删除的操作。对库或表的关系操作包括对库或表的添加或删除的操作可以是指对表的添加或删除的操作,因为对表的添加或删除操作会影响库。
包括本地(例如为CPU)在内,当存在多个CPU平台时,可以利用类似于硬件平台的方式筛选CPU平台。例如,在所述数据库访问操作的处理场景为CPU处理场景的情况下,根据估计的所述数据库访问操作的数据规模获取利用多个CPU平台中的每一个执行所述数据库访问操作的预估执行时间;根据各所述CPU平台执行所述数据库访问操作的预估执行时间和相应的预估数据传输时间得到相应CPU平台执行所述数据库访问操作的预估总执行开销;选择预估总执行开销最小或较小的CPU平台,用于处理数据库访问操作。
在一些实施例中,可以基于计算流图估计操作的数据规模。
示例性地,上述步骤S130,即,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模,具体地,可包括步骤:S1311,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,对所述数据库访问操作构建计算流图;S1312,基于对所述数据库访问操作构建的计算流图,估计所述数据库访问操作的数据规模。
该步骤S1311中,可以根据数据库访问操作对应的语法树构建相应的计算流图。其中,所构建的计算流图由节点和有向边构成,每个节点可代表一个数据库运算操作,每一条有向边可代表节点之间的拓扑关系和数据流向。
该步骤S1312中,数据规模可指SQL语句所涉及的表信息数据量大小。例如,对于某些电商平台进行select<UserName>from<UserData>的操作,虽然这条命令本身所占用内存不到1KB,但是该操作所涉及的数据规模可能是GB或TB甚至是PB级别的,所以,后者才是本说明书所指的数据规模。
该步骤S1312,具体地,可以根据计算流图分析操作的数据内容,得到该数据库访问操作所对应数据库的对应表的信息,根据得到的所有对应表的信息访问数据库,得到该数据库访问操作的数据规模(得到所有对应表中数据的行数,并将行数乘上一行信息所占的内存大小,得到所有对应表的内存占用情况)。
在其他实施例中,对所述数据库访问操作构建计算流图的步骤可以在其他时机执行,例如,上述步骤S120之前、之后或同时。例如,接收SQL语句(数据库访问操作)输入,然后根据SQL语句建立计算流图,并根据计算流图分析所设计的数据内容(精确到对应数据库的对应表),根据分析得到的数据内容访问数据库获取数据规模(多少行,并将行数乘上一行信息所占的内存大小得到总体涉及的内存占用情况),最终获得数据规模。
在一些实施例中,可以对所述数据库访问操作的计算流图进行优化,以提高该数据库访问操作的执行效率。
示例性地,上述步骤S130,即,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模,具体地,可包括步骤:S1321,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,优化对所述数据库访问操作构建的计算流图;S1322,基于优化后的计算流图,估计所述数据库访问操作的数据规模。该步骤S1321中,具体地,可以通过对具有相同执行效果的节点进行合并来优化计算流图。通过优化计算流图可以优化数据库访问操作的执行过程,从而提高执行效率。
进一步地,上述步骤S1321,即,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,优化对所述数据库访问操作构建的计算流图,更具体地,可包括步骤:S13211,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,对所述数据库访问操作构建计算流图;S1322,优化对所述数据库访问操作构建的计算流图。该S13211中,对所述数据库访问操作构建计算流图和上述步骤S120可以一并进行,即,可以解析SQL语句,根据解析后的SQL语句得知处理场景,并可以在处理场景为硬件平台场景时,根据解析过程中得到的语法树建立计算流图。
步骤S140:根据所述数据库访问操作的数据规模获取利用多个硬件平台中的每一个执行所述数据库访问操作的预估执行时间。
在一些实施例中,该步骤S140,即,根据所述数据库访问操作的数据规模获取利用多个硬件平台中的每一个执行所述数据库访问操作的预估执行时间,具体地,可包括步骤:S141,从预先存储的硬件平台和执行时间系数的对应关系中获取各硬件平台的执行时间系数;S142,根据所述数据库访问操作的数据规模和各硬件平台的执行时间系数,得到利用各硬件平台执行所述数据库访问操作的预估执行时间。
其中,执行时间系数可以是指具有一定配置参数(与实际配置参数相同)的硬件平台。该执行时间系数和数据规模相乘可以得到相应的所需执行时间。或者,执行时间系数可以是对应基本配置的系数,在此情况下,可以先根据该系数选出较优的平台。另外,该执行时间系数可以通过预先对硬件平台进行测试得到。
在其他实施例中,硬件平台的配置参数可根据需要配置,则执行时间系数可以是对应基本配置的系数。在此情况下,该步骤S142,更具体地,可包括步骤:根据各硬件平台的配置参数将所述数据库访问操作的数据规模分割为相应硬件平台的基本配置对应的数据规模;根据各硬件平台的执行时间系数和其基本配置对应的数据规模,计算得到利用各硬件平台执行所述数据库访问操作的预估执行时间;其中,各硬件平台的执行时间系数为其基本配置对应的执行时间系数。
其中,例如,配置参数可以为几个线程,基本配置为单个线程,则执行时间系数可以为单个线程对应的执行时间系数。再例如,配置参数可以为核数,基本配置为单核,则执行时间系数可以为单核对应的执行时间系数。该实施例中,可以更精细地确定不同平台的执行效率。
示例性地,预估执行时间是通过系数得到的,例如,CPU平台的数值为0.25,GPU平台的数值为0.05,这个系数可以通过测试工程进行大数据集测试得出的。在得出系数的数值之后,便可以进行预估执行时间,即,数据量(数据规模)和对应硬件平台执行时间系数的乘积,若是涉及多线程(例如,GPU平台、其他硬件平台等)则可将数据进行分割后再计算乘积,这是因为并行计算也可以显著提高运算速度,不过该乘积可以是一个无量纲的值,仅用于比较不同平台,不需有物理意义。若要获取较为精确的运算时间,可需要在选出较优的几个平台之后,再通过本地的另一个存储对应平台配置的表单获取具体配置进行计算,这么做是因为首先进行粗略的估计筛出较优平台,再进行精确估计能够最大程度上地节省时间并且获取尽可能精确的数值。因此,预估执行时间可以是一个根据"预先测试系数"和"当前数据规模"进行计算所得出的值筛选出较优的几个平台,然后获取对应平台的具体参数,例如,CPU平台的核数和主频,再计算更为精确的运算时间,最后获得这些较优平台的较为准确的计算运行时间。
步骤S150:根据各所述硬件平台执行所述数据库访问操作的预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的预估总执行开销。
该步骤S150之前,图1所示方法,还可包括步骤:从预先存储的硬件平台和预估数据传输时间对应关系中获取各硬件平台的预估数据传输时间。其中,预估数据传输时间可包括传输时间和/或通信延迟。更具体地,通信延迟可以通过对本地和特定平台进行测试得到,传输时间可以根据数据规模除以带宽得到,本地处理时可忽略传输时间。
本地(如CPU端)与硬件平台之间可能存在传输时延,且对于某一硬件平台而言传输实验基本是固定的,即,不同通信方式(例如,本地通信、局域网通信、网络通信)的通信延迟也是可以预先得知的。例如,通过光纤进行网络通信,通信时延约每100公里是14毫秒左右。所以传输时延可以是在每次新硬件平台接入本地期间通过通信测试得到,然后写入本地存储。因为本地的计算平台(包括CPU、硬件平台)相对来说是比较固定的,即平台的增加和修改频度较低,所以可以以此操作。例如,在接入平台A时,就测试与其之间的通信延迟,计入本地的表单,当需要计算的时候可以取出并进行比较。获得传输时延之后,还需要获得传输时间,即数据量(数据规模)除以带宽,本地通信的话可以忽略该项,因为是直接从本地取数据的。
得到了数据规模(访问数据库),也得到了对应平台的运行系数(执行时间系数)(可以用于计算时间的系数因子,可以是越小代表速度越快),也可通过设备标识知道了去哪里访问,那么可以根据数据规模乘以计算因子,得出所有设备预估执行时间,但这是一个无量纲的值,可只用于排名,然后取排名靠前的若干个硬件平台进行精确时间估计获取较为精确的运行时间(这是因为一般计算时间都会远大于传输时间),最后将本时间加上传输时延和传输时间就是最终的评定参数,即总体时间。
该步骤S150中,根据得到的预估执行时间和数据传输时间,可以通过求和得到预估总执行开销。
步骤S160:发送所述数据库访问操作,以利用预估总执行开销最小的硬件平台处理所述数据库访问操作。
该步骤S160中,可以通过预取数据标识获取硬件平台的地址信息,并可根据地址信息发送数据库访问操作至相应硬件平台。
预取数据标识是存储对应平台的一种方式,可以通过该方式获得对应平台的具体地址,例如,该平台是本地的话就获取本地端口,是局域网内的话就获取局域网IP地址和端口号,网络通信也是如此。而获取标识和获取预估时间可以是分开的,获取标识可以明白将数据访问操作的数据发送到底去执行。不同访问方式之间通信时间不同,是因为在该执行平台(CPU、GPU等各种平台)接入时期就进行通信测试,并将结果保存起来的。例如,某些GPU平台可能因为主频高,因此得到的系数可能较低(即运算更快),但是因为是通过网络通信,可能虽然计算速度快了很多,但是传输速度会稍微慢一点;再例如,某个局域网的CPU平台,系数较高(执行速度较慢一点)但是因为在局域网内,可能传输时延就比较低。获得传输时延之后,将其加上数据规模/传输带宽即可得到传输时间,二者相加则是总体传输时间,若为本地计算则可以忽略该项,因为可以直接本地读取数据。
在另一些实施例中,步骤S140包括上述步骤S141和步骤S142,可以通过上述步骤S120~S150粗选硬件平台后,再精细筛选硬件平台。示例性地,步骤S160,即发送所述数据库访问操作之前,图1所示方法还可包括步骤:选取预估总执行开销较小的多个硬件平台;根据各硬件平台的配置参数将所述数据库访问操作的数据规模分割为相应硬件平台的基本配置对应的数据规模;根据各硬件平台的执行时间系数和其基本配置对应的数据规模,计算得到利用各硬件平台执行所述数据库访问操作的精细预估执行时间;其中,各硬件平台的执行时间系数为其基本配置对应的执行时间系数;根据各所述硬件平台执行所述数据库访问操作的精细预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的精细预估总执行开销;从选取的多个硬件平台中选择精细预估总执行开销最小的硬件平台,作为预估总执行开销最小的硬件平台。
另外,本发明实施例还提供了一种数据库访问方法,如图2所示,该数据库访问方法,可包括:
步骤S210:接收SQL语句,并根据所述SQL语句得到数据库访问操作;
步骤S220:利用本发明任一实施例所述的数据库访问操作部署方法选取硬件平台;
步骤S230:发送所述数据库访问操作至选取的硬件平台进行处理;
步骤S240:接收选取的硬件平台处理所述数据库访问操作的结果;
步骤S250:根据处理所述数据库访问操作的结果输出所述SQL语句的执行结果。
该步骤S210中,可以直接将SQL语句作为数据库访问操作,而在数据库访问操作部署方法的流程中解析SQL语句,且解析过程可以获知操作的处理场景,还可构建计算流图。或者,该步骤S210中,仅进行基本解析,在数据库访问操作部署方法的流程中再做进一步场景/操作内容分析、构建等处理。该步骤S220具体参见上述实施例的数据库访问操作部署方法,故不赘述。该步骤S230至步骤S250可参见现有技术实施。
基于上述各实施例所述的数据库访问操作部署方法或上述各实施例所述的数据库访问方法,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述的数据库访问操作部署方法或任一实施例所述的数据库访问方法的步骤。该电子设备可以为一CPU端的设备,可以是计算机、服务器等。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述的数据库访问操作部署方法或任一实施例所述的数据库访问方法的步骤。
为使本领域技术人员更好地了解本发明,下面将以具体实施例说明本发明的实施方式。
在一具体实施例的数据库访问的异构执行方法(数据库访问操作部署方法),在引入计算流图的情况下,根据在数据库访问时输入命令的处理场景作为首要判断标准,若处理场景可达成一致,通过计算输入SQL(结构化查询语言,一种用于管理关系型数据库的语言)语句在各平台的预估执行时间作为判断标准。图3是本发明一具体实施例的数据库访问操作部署方法的流程示意图,图4是本发明一具体实施例的数据库访问操作部署方法的代码示例,参见图3和图4,该方法可包括以下步骤S1~S6。
S1.获得(例如通过上层模块调度)此次数据库访问的具体操作。
S2.判断本次操作的处理场景。举例来说,以数据库访问作为处理场景,可以判断是否涉及数据库中“库”或者“表”的添加或者删除;若涉及,则说明需要交付CPU处理这类较复杂的关系操作,执行S3步骤;若本次操作为对于现有的库信息或者表信息所进行的增、删、改、查等能够进行批量、并行的数据库访问操作,则执行S4步骤。如图5所示,获取数据库操作输入“CREATE TABLE User(…)”(SQL语句),其中,Create Table操作涉及数据库的表创建,需要处理表关系,根据处理场景需要交付CPU进行执行。如图7所示,获取一条新的SQL语句输入“Select name From BigData”,其中,Select操作涉及从原库中查询数据,不涉及处理表关系。
S3.交付CPU执行,获取操作结果。如图6所示,对于图5所示输入,判断操作适用场景(平台/设备)Create操作适合CPU执行。
S4.对本次操作构建计算流图,通过图优化、图划分等方式获得优化后的执行流程。
S5.估计本次操作的数据规模,通过获取KLIB Predefine(预取设备标识/内核设备标识(identifier of kernel device type),可用于获取当前可访问的硬件列表),得到具体设备的访问方式,并取得各平台执行本次操作的预估执行时间,进行比较。如图8所示,对于图7所示的输入,估计该操作在各个硬件平台上的执行开销和传输开销。
S6.通过将预估执行时间加上对应平台数据传输时间,得到最终的估计执行开销,选取总体时间开销最低的平台交付数据运行,获取操作结果。如图9和图10所示,对于图7所示输入,将执行开销和传输开销累加求和获取整体开销,比较各平台的整体开销得到最优硬件平台来执行本次操作。
本实施例在引进计算流图来表示数据库访问这个基础之上,提出了一种基于计算流图的数据库访问的异构执行方法,以此来提高计算流图的运行效率。针对数据库平台的大数据、高并发的特点,通过异构决策(硬件部署),提高数据库访问所生成的计算流图的总体执行效率。利用提前评估各平台操作时间外加传输开销,进行综合考虑的方法进行决策,最终选取当前最优方案来部署操作。
进一步地,获取优化后的计算流图,对优化后的计算流图进行的异构执行决策(硬件部署),具体地,估计计算流图的执行时间和平台传输时长,将二者相加后比较各个平台执行开销,最终决定操作的执行平台,完成异构部署,从而通过部署数据库操作到当前执行效率最高的硬件平台上来降低总体执行时间。
综上所述,本发明实施例的数据库访问操作部署方法、数据库访问方法、电子设备及计算机可读存储介质,在对数据库访问的执行过程之中,根据处理场景的需求不同,来决定运算硬件,并通过估算各硬件的总体执行开销,选择总体执行开销最小的硬件执行操作,能够提高数据库访问操作的整体处理效率。进一步地,通过基于优化后的操作的计算流图估算总体执行开销,并选取最优硬件平台,完成异构部署,从而可以进一步降低总体执行时间。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据库访问操作部署方法,其特征在于,包括:
获取数据库访问操作;
确认所述数据库访问操作的处理场景;
在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模;
根据所述数据库访问操作的数据规模获取利用多个硬件平台中的每一个执行所述数据库访问操作的预估执行时间;
根据各所述硬件平台执行所述数据库访问操作的预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的预估总执行开销;
发送所述数据库访问操作,以利用预估总执行开销最小的硬件平台处理所述数据库访问操作;
根据所述数据库访问操作的数据规模获取利用多个硬件平台中的每一个执行所述数据库访问操作的预估执行时间,包括:
从预先存储的硬件平台和执行时间系数的对应关系中获取各硬件平台的执行时间系数;
根据所述数据库访问操作的数据规模和各硬件平台的执行时间系数,得到利用各硬件平台执行所述数据库访问操作的预估执行时间;
发送所述数据库访问操作之前,所述方法,还包括:
选取预估总执行开销较小的多个硬件平台;
根据各硬件平台的配置参数将所述数据库访问操作的数据规模分割为相应硬件平台的基本配置对应的数据规模;
根据各硬件平台的执行时间系数和其基本配置对应的数据规模,计算得到利用各硬件平台执行所述数据库访问操作的精细预估执行时间;其中,各硬件平台的执行时间系数为其基本配置对应的执行时间系数;
根据各所述硬件平台执行所述数据库访问操作的精细预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的精细预估总执行开销;
从选取的多个硬件平台中选择精细预估总执行开销最小的硬件平台,作为预估总执行开销最小的硬件平台。
2.如权利要求1所述的数据库访问操作部署方法,其特征在于,还包括:
在所述数据库访问操作的处理场景为CPU处理场景的情况下,利用CPU执行所述数据库访问操作。
3.如权利要求2所述的数据库访问操作部署方法,其特征在于,所述硬件平台处理场景包括对原库信息或原表信息的操作,所述CPU处理场景包括对库或表的关系操作。
4.如权利要求3所述的数据库访问操作部署方法,其特征在于,对原库信息或原表信息的操作包括对原库信息或原表信息进行增加、删除、修改或查询的操作;对库或表的关系操作包括对库或表的添加或删除的操作。
5.如权利要求1所述的数据库访问操作部署方法,其特征在于,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模,包括:
在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,优化对所述数据库访问操作构建的计算流图;
基于优化后的计算流图,估计所述数据库访问操作的数据规模。
6.如权利要求5所述的数据库访问操作部署方法,其特征在于,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,优化对所述数据库访问操作构建的计算流图,包括:
在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,对所述数据库访问操作构建计算流图;
优化对所述数据库访问操作构建的计算流图。
7.如权利要求1所述的数据库访问操作部署方法,其特征在于,在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,估计所述数据库访问操作的数据规模,包括:
在所述数据库访问操作的处理场景为硬件平台处理场景的情况下,对所述数据库访问操作构建计算流图;
基于对所述数据库访问操作构建的计算流图,估计所述数据库访问操作的数据规模。
8.如权利要求1所述的数据库访问操作部署方法,其特征在于,根据所述数据库访问操作的数据规模和各硬件平台的执行时间系数,得到利用各硬件平台执行所述数据库访问操作的预估执行时间,包括:
根据各硬件平台的配置参数将所述数据库访问操作的数据规模分割为相应硬件平台的基本配置对应的数据规模;
根据各硬件平台的执行时间系数和其基本配置对应的数据规模,计算得到利用各硬件平台执行所述数据库访问操作的预估执行时间;其中,各硬件平台的执行时间系数为其基本配置对应的执行时间系数。
9.如权利要求1所述的数据库访问操作部署方法,其特征在于,根据各所述硬件平台执行所述数据库访问操作的预估执行时间和相应的预估数据传输时间得到相应硬件平台执行所述数据库访问操作的预估总执行开销之前,还包括:
从预先存储的硬件平台和预估数据传输时间对应关系中获取各硬件平台的预估数据传输时间。
10.如权利要求9所述的数据库访问操作部署方法,其特征在于,预估数据传输时间包括传输时间和/或通信延迟。
11.一种数据库访问方法,其特征在于,包括:
接收SQL语句,并根据所述SQL语句得到数据库访问操作;
利用如权利要求1至10任一项所述的数据库访问操作部署方法选取硬件平台;
发送所述数据库访问操作至选取的硬件平台进行处理;
接收选取的硬件平台处理所述数据库访问操作的结果;
根据处理所述数据库访问操作的结果输出所述SQL语句的执行结果。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至11任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至11任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008481.6A CN111198766B (zh) | 2020-01-06 | 2020-01-06 | 数据库访问操作部署方法、数据库访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010008481.6A CN111198766B (zh) | 2020-01-06 | 2020-01-06 | 数据库访问操作部署方法、数据库访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111198766A CN111198766A (zh) | 2020-05-26 |
CN111198766B true CN111198766B (zh) | 2021-02-05 |
Family
ID=70744481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010008481.6A Active CN111198766B (zh) | 2020-01-06 | 2020-01-06 | 数据库访问操作部署方法、数据库访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111198766B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114221964B (zh) * | 2021-12-13 | 2023-10-03 | 中国平安财产保险股份有限公司 | 一种访问请求处理方法、装置、计算机设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169725A (zh) * | 2006-10-23 | 2008-04-30 | 国际商业机器公司 | 随需个人计算机供应系统和方法 |
CN103136334A (zh) * | 2013-01-29 | 2013-06-05 | 北京航空航天大学 | 基于图的遍历的同步数据流系统节点参数快速处理方法 |
CN103870320A (zh) * | 2012-12-17 | 2014-06-18 | 联想(北京)有限公司 | 信息处理的方法及移动终端 |
US8935201B1 (en) * | 2014-03-18 | 2015-01-13 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
CN104346433A (zh) * | 2013-08-07 | 2015-02-11 | 国际商业机器公司 | 用于数据库查询操作的可缩放加速的方法和系统 |
CN104408134A (zh) * | 2013-11-28 | 2015-03-11 | 中国科学院计算技术研究所 | 一种sql到云环境的映射方法及系统 |
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
CN105868388A (zh) * | 2016-04-14 | 2016-08-17 | 中国人民大学 | 一种基于fpga的内存olap查询优化方法 |
CN105900064A (zh) * | 2014-11-19 | 2016-08-24 | 华为技术有限公司 | 调度数据流任务的方法和装置 |
CN107133096A (zh) * | 2017-04-13 | 2017-09-05 | 新华三技术有限公司 | 一种资源分配方法及装置 |
CN109597818A (zh) * | 2018-11-28 | 2019-04-09 | 优刻得科技股份有限公司 | 数据更新方法、装置、存储介质和设备 |
CN110275716A (zh) * | 2019-06-27 | 2019-09-24 | 深圳开立生物医疗科技股份有限公司 | 设备部署方法及装置、设备运行方法及电子设备 |
CN110362404A (zh) * | 2019-06-28 | 2019-10-22 | 北京淇瑀信息科技有限公司 | 一种基于sql的资源分配方法、装置和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180114137A1 (en) * | 2016-10-26 | 2018-04-26 | International Business Machines Corporation | Smart sensing: a system and a method for distributed and fault tolerant hierarchical autonomous cognitive instrumentation |
-
2020
- 2020-01-06 CN CN202010008481.6A patent/CN111198766B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169725A (zh) * | 2006-10-23 | 2008-04-30 | 国际商业机器公司 | 随需个人计算机供应系统和方法 |
CN103870320A (zh) * | 2012-12-17 | 2014-06-18 | 联想(北京)有限公司 | 信息处理的方法及移动终端 |
CN103136334A (zh) * | 2013-01-29 | 2013-06-05 | 北京航空航天大学 | 基于图的遍历的同步数据流系统节点参数快速处理方法 |
CN104346433A (zh) * | 2013-08-07 | 2015-02-11 | 国际商业机器公司 | 用于数据库查询操作的可缩放加速的方法和系统 |
CN104408134A (zh) * | 2013-11-28 | 2015-03-11 | 中国科学院计算技术研究所 | 一种sql到云环境的映射方法及系统 |
US8935201B1 (en) * | 2014-03-18 | 2015-01-13 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
CN105900064A (zh) * | 2014-11-19 | 2016-08-24 | 华为技术有限公司 | 调度数据流任务的方法和装置 |
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
CN105868388A (zh) * | 2016-04-14 | 2016-08-17 | 中国人民大学 | 一种基于fpga的内存olap查询优化方法 |
CN107133096A (zh) * | 2017-04-13 | 2017-09-05 | 新华三技术有限公司 | 一种资源分配方法及装置 |
CN109597818A (zh) * | 2018-11-28 | 2019-04-09 | 优刻得科技股份有限公司 | 数据更新方法、装置、存储介质和设备 |
CN110275716A (zh) * | 2019-06-27 | 2019-09-24 | 深圳开立生物医疗科技股份有限公司 | 设备部署方法及装置、设备运行方法及电子设备 |
CN110362404A (zh) * | 2019-06-28 | 2019-10-22 | 北京淇瑀信息科技有限公司 | 一种基于sql的资源分配方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111198766A (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239335B (zh) | 分布式系统的作业调度系统及方法 | |
US7370039B2 (en) | Method and system for optimizing configuration classification of software | |
CN109886859B (zh) | 数据处理方法、系统、电子设备和计算机可读存储介质 | |
CN109359115B (zh) | 基于图数据库的分布式存储方法、装置及系统 | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
US10606867B2 (en) | Data mining method and apparatus | |
US20070299835A1 (en) | Search engine for software components and a search program for software components | |
CN110706015B (zh) | 一种面向广告点击率预测的特征选取方法 | |
CN113128143B (zh) | Ai处理器的仿真方法、装置、计算机设备及存储介质 | |
CN110019551A (zh) | 一种数据仓库构建方法及装置 | |
US20180165333A1 (en) | Big data calculation method and system | |
CN116560984A (zh) | 一种基于调用依赖图的测试用例聚类分组方法 | |
CN111198766B (zh) | 数据库访问操作部署方法、数据库访问方法及装置 | |
US8667008B2 (en) | Search request control apparatus and search request control method | |
CN112860736A (zh) | 大数据查询优化方法、设备及可读存储介质 | |
CN112445746B (zh) | 一种基于机器学习的集群配置自动优化方法和系统 | |
CN111858366A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
US20060026187A1 (en) | Apparatus, method, and program for processing data | |
CN112948188A (zh) | 一种日志文件筛查方法、系统及介质 | |
US20150142712A1 (en) | Rule discovery system, method, apparatus, and program | |
CN111209302A (zh) | 数据库访问的并行执行方法及装置 | |
KR101906678B1 (ko) | 효율적인 혼합 시뮬레이티드 어닐링 기반의 데이터 클러스터링 방법 및 시스템 | |
KR100884889B1 (ko) | 검색 데이터베이스의 자동 색인어 추가 방법 및 시스템 | |
Smyk et al. | Distributed application global states monitoring in PEGASUS DA applied to parallel graph partitioning | |
Mazaheri Soudani et al. | PPR-partitioning: a distributed graph partitioning algorithm based on the personalized PageRank vectors in vertex-centric systems |
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 |